MyBatis开发步骤

91 阅读1分钟

一、使用MyBatis的开发步骤:

1、下载并部署MyBatis的jar包;

2、创建MyBatis的核心控制文件:mybatis-config.xml;

<?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><!--此文件的根节点,有且只能有一个 configuration:配置--> <!--property:属性 properties:复数形式,属性列表--> <!--加载数据库的配置文件--> <properties resource="database.properties"/> <!--对mybatis进行设置--> <settings> <!--设置日志实现方法为log4j--> <setting name="logImpl" value="LOG4J"/> </settings> <!--配置mybatis多套运行环境:开发、测试、生产--> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/><!--设置事务管理方式为jdbc--> <!--设置数据源信息--> <dataSource type="POOLED"><!--数据库连接池--> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${user}"/> <property name="password" value="${pwd}"/> </dataSource> </environment> </environments> <!--加载mybatis配置文件:告诉mybatis去那找sql文件--> <mappers> <mapper resource="com/ytzl/smbms/dao/userMapper.xml"/> </mappers> </configuration>

3、创建实体类pojo(Plain Old Java Object简单Java对象);

4、创建dao(Data-Access-Object)(数据访问层)层;

5、创建测试类:

5.1 读取核心(全局)配置文件mybatis-config.xml;

InputStream is = Resources.getResourceAsStream("mybatis-config.xml");

5.2 创建SqlSessionFactory(SQL会话工厂)对象;

SqlSessionFactory factory= new SqlSessionFactoryBuilder().build(is);

5.3 创建SqlSession对象;

sqlSession= factory.openSession(false);//关闭事务的自动提交

5.4 对应mapper(映射器)文件进行数据库操作;

List userList = sqlSession.getMapper(UserMapper.class).getUserListByName("孙");

[}OZ3VN(T8F0DFP(WO81]54.png

`ZDT2UQ2}}7JCQX33(3Y4DU.jpg

思路:

a) 读取配置文件;

b) 通过SqlSessionFactoryBuilder创建SqlSessionFactory会话工厂。

c) 通过SqlSessionFactory创建SqlSession。

d) 调用SqlSession的操作数据库方法。

e) 关闭SqlSession。

核心配置文件

<!--property:属性  properties:复数形式,属性列表-->
<!--加载数据库的配置文件-->
<!--<properties resource="database.properties"/>-->

<!--通过resource属性来引用外部的数据库配置文件-->
<!--通过property子标签来设置内部的数据库配置参数-->
<!--当两种方式同时存在,外部的resource属性的优先级最高-->
<properties>
    <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
    <!--注意:要将&转译为 &amp;-->
    <property name="url" value="jdbc:mysql://127.0.0.1:3308/smbms?useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=UTC"/>
    <property name="user" value="root"/>
    <property name="pwd" value="root"/>
</properties>

<!--对mybatis进行设置-->
<settings>
    <!--设置日志实现方法为log4j-->
    <setting name="logImpl" value="LOG4J"/>
    
    <!--设置mybatis的结果集==》实体类的自动映射级别-->
    <!--PARTIAL:局部的,开启自动映射(默认,但是对于association/collection不起作用)    NONE:关闭禁止自动映射-->
    <!--FULL:全部的,自动匹配所有属性,包含association/collection-->
    <setting name="autoMappingBehavior" value="FULL"/>
</settings>

<!--设置类型别名,跟SQL映射文件相关联     Aliases:类型别名-->
<typeAliases>
   <!-- <typeAlias type="com.ytzl.smbms.pogo.User" alias="User"/>
    <typeAlias type="com.ytzl.smbms.pogo.Bill" alias="Bill"/>
    <typeAlias type="com.ytzl.smbms.pogo.Provider" alias="Provider"/>
    <typeAlias type="com.ytzl.smbms.pogo.Role" alias="Role"/>
    <typeAlias type="com.ytzl.smbms.pogo.Address" alias="Address"/>-->
    
    <!--给包起别名,然后此包下的所有类可以直接用-->
    <package name="com.ytzl.smbms.pogo"/>
</typeAliases>

<!--配置mybatis多套运行环境:开发、测试、生产-->
<environments default="development">
    <environment id="development">
        <transactionManager type="JDBC"/><!--设置事务管理方式为jdbc-->
        <!--设置数据源信息-->
        <dataSource type="POOLED"><!--数据库连接池-->
            <property name="driver" value="${driver}"/>
            <property name="url" value="${url}"/>
            <property name="username" value="${user}"/>
            <property name="password" value="${pwd}"/>
        </dataSource>
    </environment>
</environments>

<!--加载mybatis配置文件:告诉mybatis去那找sql文件-->
<mappers>
    <mapper resource="com/ytzl/smbms/dao/user/userMapper.xml"/>
    <!--<mapper resource="com/ytzl/smbms/dao/bill/billMapper.xml"/>-->
    <!--第二种引用方式: 使用绝对路径  要加前缀:file:///-->
    <mapper url="file:///D:\IDEA-SSM\MyBatis02\src\com\ytzl\smbms\dao\bill\billMapper.xml"/>
    <mapper resource="com/ytzl/smbms/dao/provider/providerMapper.xml"/>
    <!--第三种  :使用相对路径  不建议使用-->
    <!--<mapper class="com.ytzl.smbms.dao.provider.ProviderMapper"/>-->
</mappers>