一、使用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("孙");
思路:
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"/>
<!--注意:要将&转译为 &-->
<property name="url" value="jdbc:mysql://127.0.0.1:3308/smbms?useUnicode=true&characterEncoding=utf-8&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>