当前位置:首页 > Java技术 > MyBatis入门(二)MyBatis环境配置

MyBatis入门(二)MyBatis环境配置

2022年11月24日 23:27:12Java技术9

前言

      本章学习MyBatis的环境配置

方法

说明:Mybatis框架的相关源码讲解将继续使用之前改好的SMS

1.引入相关jar包

我们遵循一个原则,用多少jar包引多少jar包,因为我们还没有用maven来进行统一的管理!

首先我们导入MyBatis的核心jar包:

MyBatis入门(二)MyBatis环境配置 _ JavaClub全栈架构师技术笔记

 2.编写MyBatis的主要配置文件

按照官方文档的说法,我们将这个xml配置文件起个名字叫做:mybatis-config.xml

我们将其放入src路径下:

MyBatis入门(二)MyBatis环境配置 _ JavaClub全栈架构师技术笔记

那具体这个XML该写什么内容呢,我们来看官方文档:

MyBatis入门(二)MyBatis环境配置 _ JavaClub全栈架构师技术笔记

我们暂时没有必要将这些统统拷贝到mybatis-config.xml中,我们暂时只拷贝xml头以及相关的dtd即可:

MyBatis入门(二)MyBatis环境配置 _ JavaClub全栈架构师技术笔记

此刻我们发现将会有提示出现,根据文档写入如下配置:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- mybatis配置文件根路径 -->
<configuration>
    <!-- 数据库连接环境标签,可以配置多个数据库连接,default表示默认的连接,对应每个环境的id值 -->
    <environments default="development">
        <!-- 数据库连接环境配置标签,id唯一标识每个环境 -->
        <environment id="development">
            <!-- 声明使用的事务管理方式,这里采用原生的JDBC事务管理 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据源,采用数据库连接池技术 -->
            <dataSource type="POOLED">
                <!-- 定义数据库连接必备的属性 -->
                <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
                <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
                <property name="username" value="scott"/>
                <property name="password" value="tiger"/>
            </dataSource>
        </environment>
    </environments>
</configuration>

这样的话,我们最为基础的配置就结束了!

3.编写数据访问层实现的配置文件

注意:该处我们简单的理解为该配置文件是dao的实现类

按照官方给出的说法,这个配置文件一般命名为:实体类名+Mapper.xml,我们SMS就是UserMapper.xml和StudentMapper.xml

由于我们使用mybatis框架,原来的dao包改名为mapper包,并将指定的xml放入其中:

MyBatis入门(二)MyBatis环境配置 _ JavaClub全栈架构师技术笔记

那具体这个xml该如何写呢,我们看官方文档:

MyBatis入门(二)MyBatis环境配置 _ JavaClub全栈架构师技术笔记 

我们依然只是写出xml头和dtd,这样就会产生相关的提示信息:

MyBatis入门(二)MyBatis环境配置 _ JavaClub全栈架构师技术笔记 

根据官方的说法,编写如下xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- mapper配置文件的根路径,namespace代表实现类的全路径(包名+类名) -->
<mapper namespace="cn.edu.ccut.mapper.StudentMapper">
    <!-- 该处每一个标签代表一个方法(select、insert、delete、update等),
        id为方法名,
        parameterType为参数类型,
        resultType为返回值类型
    -->
    <select id="doLogin" parameterType="String" resultType="cn.edu.ccut.bo.User">
        select * from users
    </select>
</mapper>

我们先来弄个比较简单的查询语句进行练习!这样dao实现类就写完一部分了。

4.测试查询功能

这里我们采用JUnit技术进行测试:

编写测试类StudentTest.java,写入测试方法testLoginUser

package cn.edu.ccut.test;

import org.junit.Test;

public class StudentTest {

    @Test
    public void testLoginUser(){
        
    }
}

1)获取sqlSessionFactory对象

根据官方文档提示进行编写:

MyBatis入门(二)MyBatis环境配置 _ JavaClub全栈架构师技术笔记

编写如下代码获取sqlSessionFactory对象:

package cn.edu.ccut.test;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;

public class StudentTest {

    @Test
    public void testLoginUser(){

        try {
            //获取sqlSessionFactory对象
            InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            System.out.println(sqlSessionFactory);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 可以发现,我们成功的取到了sqlSessionFactoryd对象!

2)获取SqlSession对象

SqlSession session = sqlSessionFactory.openSession();

3)使用session对象执行之前写的doLogin方法

List<User> list = session.selectList("doLogin");

完整的Java代码如下:
 

package cn.edu.ccut.test;

import cn.edu.ccut.bo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class StudentTest {

    @Test
    public void testLoginUser(){
        SqlSession session = null;
        try {
            //获取sqlSessionFactory对象
            InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            //获取sqlSession对象
            session = sqlSessionFactory.openSession();
            //使用sqlSession对象进行查询操作
            List<User> list = session.selectList("doLogin");
            for (User user: list) {
                System.out.println(user);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //关闭连接
            session.close();
        }
    }
}

5.执行测试代码

右键运行该方法:

1)mapper关联失败bug

MyBatis入门(二)MyBatis环境配置 _ JavaClub全栈架构师技术笔记

解决:

这里我们再mybatis-config.xml中配置下mapper文件的关联:

完整的配置文件如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- mybatis配置文件根路径 -->
<configuration>
    <!-- 数据库连接环境标签,可以配置多个数据库连接,default表示默认的连接,对应每个环境的id值 -->
    <environments default="development">
        <!-- 数据库连接环境配置标签,id唯一标识每个环境 -->
        <environment id="development">
            <!-- 声明使用的事务管理方式,这里采用原生的JDBC事务管理 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据源,采用数据库连接池技术 -->
            <dataSource type="POOLED">
                <!-- 定义数据库连接必备的属性 -->
                <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
                <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
                <property name="username" value="scott"/>
                <property name="password" value="tiger"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 配置mapper文件关联 -->
    <mappers>
        <mapper resource="cn/edu/ccut/mapper/StudentMapper.xml"/>
    </mappers>
</configuration>

再次运行代码,发现没有错误,成功输出!

MyBatis入门(二)MyBatis环境配置 _ JavaClub全栈架构师技术笔记

这样,一个基本的配置流程就讲到这里了,是不是还可以呢! 

作者:程序猴jwang
来源链接:https://blog.csdn.net/qq_21046965/article/details/84841822

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/77802.html

标签: MyBatis
分享给朋友:

“MyBatis入门(二)MyBatis环境配置” 的相关文章

MyBatis配置的pom文件

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/200...

Mybatis分页插件PageHelper的配置和使用方法

Mybatis分页插件PageHelper的配置和使用方法

http://www.cnblogs.com/kangoroo/p/7998433.html   前言 在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页。 前端...

MyBatis配置下划线转驼峰

myBatis配置实现数据库字段下划线映射到java对象的驼峰式命名属性。 要实现上面的配置需要在mybatis-config.xml配置文件中添加如下设置: <?xml version="1.0" encoding="UTF-8" ?>...

SpringBoot整合Mybatis,application.properties里面mybatis.type-aliases-package配置失效

问题 正常情况下只要,在application.properties文件中作了一下配置: mybatis.type-aliases-package=com.nowcoder.community.entity 就可以在mabatis的映...

Mybatis配置文件http://mybatis.org/dtd/mybatis-3-config.dtd报错

异常信息:Multiple annotations found at this line:  - <?xml version="1.0" encoding="UTF-8> 删除重新写一下(Ctrl+c Ctrl+v) 确保你的计算机有网...

MyBatis环境配置及查询操作

MyBatis环境配置及查询操作

文章目录 2. 如何创建 MyBatis项目 2.1 新建项目添加 MyBatis 依赖 2.2 配置数据库连接字符串和 MyBatis 2.21 配置了数据库的连接信息...

springboot整合mybatis(xml配置文件方式)

springboot整合mybatis(xml配置文件方式)

1.编写javabean  2.编写springboot启动类  3.编写连接数据库的参数的yml文件  4.编写mybatis映射配置文件  5.编写mybatis配置接口...

springmvc配置mybatis与hibernate的不同点

springmvc配置mybatis与hibernate的不同点

相信每个人对springmvc+hibernate或者springmvc+mybatis都不会陌生,拿来一个项目也都会开发。但是自己配置的情况下却很少,即使自己配置过,长时间不写也会忘,在这里记录一下配置的过程以及遇到的问题。以maven项目为例,首先是springmvc+hibern...

第六章 初识MyBatis

单选题 1、使用ORM框架后,应用程序不再直接访问底层数据库,而是以()的方式来操作持久化对象(PO,即Persisent Object)。 A、面向业务 B、Hibernate C、面向对象 D、MyBatis 参考答案 :C 2、有关MyBatis工...

springmvc+mybatis的两种配置和应用方式

springmvc+mybatis的两种配置和应用方式

一、不用写dao层实现的方式 1、导入依赖包,我的pom.xml文件配置如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLS...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。