基于xml的Mybatis

1.依赖

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.42</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.13</version>
        </dependency>

2.配置Mybatis核心文件

<?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">
<configuration>
    <!-- 1.读取数据源配置(配置文件必须是properties) -->
    <properties resource="db.properties"/>
    <!-- 2.数据源配置 -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <!-- 数据库连接相关配置 ,db.properties文件中的内容-->
            <dataSource type="POOLED">
                <property name="driver"   value="${mysql.driver}"/>
                <property name="url"      value="${mysql.url}"/>
                <property name="username" value="${mysql.username}"/>
                <property name="password" value="${mysql.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 3.读取sql语句映射配置文件 -->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>



</configuration>

Mybatis核心配置文件所需要的其他配置文件

  1. 数据源配置文件

mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
mysql.username=root
mysql.password=123456
  1. sql语句映射文件

建议放置位置: src/main/resources/mapper 下

建议命名规则: XXXMapper.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>

3.应用程序使用

        //1.读取Mybatis-config.xml 配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
        //2.将配置文件交给SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //3.通过SqlSessionFactory打开会话
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //4.通过会话对象获取sql映射接口
        TestMapper mapper = sqlSession.getMapper(TestMapper.class);
        mapper.delete();
        //5.提交事务
        sqlSession.commit();
        //6.关闭会话
        sqlSession.close();

4.企业级使用规范

使用上面的mybatis操作有一些弊端:
每次创建Mapper.xml映射文件,都需要在mybatis核心配置文件增加对应xml文件
的扫描配置(<mapper resource="mapper/UserMapper.xml"/>)

企业级开发时,通常使用<package name="包"/>直接引入某包下所有接口的映射文件

如需使用快捷引入一个包,需要以下的步骤:

  1. 在mybatis-config.xml 中使用包名引用

<package name="映射接口所在包"/> 此配置可以将包下所有接口引入

  1. 保证接口及其映射xml文件结构一致

1.包名结构一致【注意resources下创建嵌套文件夹必须一个一个创建,不能一次性创建,否则会被视为一个文件夹】

2.文件名称一致

3.xml映射文件指定对应接口的namespace

  1. 应用程序使用

        //1.读取Mybatis-config.xml 配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
        //2.将配置文件交给SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //3.通过SqlSessionFactory打开会话
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //4.通过会话对象获取sql映射接口
        TestMapper mapper = sqlSession.getMapper(TestMapper.class);
        mapper.delete();
        //5.提交事务
        sqlSession.commit();
        //6.关闭会话
        sqlSession.close();

猜你喜欢

转载自blog.csdn.net/qq_46335546/article/details/129691158