一、初步认识
1.mybatis-config.xml 配置文件
为整合Spring 只是单纯的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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
当前为加载所有的mapper文件
<mapper resource="EmployeeMapper.xml" />
</mappers>
</configuration>
2.mybatis mapper.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="com.xx.mybatis.empMapper">
<select id="selectEmp" resultType="com.xx.mybatis.bean">
select * from Blog where id = #{id}
</select>
</mapper>
3.测试(如何调用Mybatis)
public void test() throws Exception {
//流的方式读取配置文件
InputStream is =Resources.getResourceAsStream("mybatis-config.xml");
//获取mybatis的SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//获取 SqlSession
SqlSession session = sqlSessionFactory.openSession();
//获取
Object selectOne = session.selectOne("com.xx.mybatis.empMapper.selectEmp", 1);
session.close();
}
其中SqlSessionFacory 与 SqlSession 解释如下 摘抄(解释)
二、mybatis面向接口编程
1.创建接口
public interface EmployeeDAO {
public Object selectEmpById(Integer id);
}
2.修改一下上面的mapper
(注意 namespace属性与 标签的ID 与刚才上面接口的关系)
<?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="com.xx.dao.EmployeeDAO">
<select id="selectEmpById" resultType="com.xx.mybatis.bean">
select * from Blog where id = #{id}
</select>
</mapper>
3.看一下上面的测试类
public void test() throws Exception {
//流的方式读取配置文件
InputStream is =Resources.getResourceAsStream("mybatis-config.xml");
//获取mybatis的SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//获取 SqlSession
SqlSession session = sqlSessionFactory.openSession();
// //获取
// Object selectOne = session.selectOne("com.xx.mybatis.empMapper.selectEmp", 1);
EmployeeDAO mapper = session.getMapper(EmployeeDAO.class);
Object obj = mapper.selectEmpById(1);
session.close();
}
三、mybatis-config.xml全局配置文件讲解
1. properties标签
引入数据库配置文件
<?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>
引入点!!!!
<properties resource="XXXXjdbc.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
当前为加载所有的mapper文件
<mapper resource="EmployeeMapper.xml" />
</mappers>
</configuration>
2.setting 配置文件
举几个例子 其余的属性请见
https://blog.csdn.net/shicuicui1234/article/details/78811939
<?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>
引入点!!!!
<setting>
//举例 驼峰命名规则的配置
<setting name="mapUnderscoreToCamelCaseEnables" value="true"></setting>
</setting>
<properties resource="XXXXjdbc.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
当前为加载所有的mapper文件
<mapper resource="EmployeeMapper.xml" />
</mappers>
</configuration>
3.别名处理器 其别名用的
<?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>
引入点
<typeAliases>
<typeAlias type="com.xx.mybatis.bean" alias = "be" />
或者批量起别名(自动起名)
<package name="com.xx.mybatis"/>
mybatis 包下的名字所有的名字都为当前类的名字即
mapper 中的resultType = "com.xx.mybatis.bean" 为 resultType="bean"
</typeAliases>
<setting>
<setting name="mapUnderscoreToCamelCaseEnables" value="true"> </setting>
</setting>
<properties resource="XXXXjdbc.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
当前为加载所有的mapper文件
<mapper resource="EmployeeMapper.xml" />
</mappers>
</configuration>
作用点
<?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="com.xx.dao.EmployeeDAO">
<select id="selectEmpById" resultType="be"> 看好当前这行与上面那行
select * from Blog where id = #{id}
</select>
</mapper>
或者使用注解: @Alias(“emp”) 即mapper.xml文件中的 resultType = “emp”
4. enviroments(环境 mybatis 可以配置多种环境)
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
<environment id="test">
<transactionManager type=""></transactionManager > 事物管理器
<dataSource type=""></dataSource>
</environment>
</environments>