MyBatis 笔记记录
- 一、MyBatis基础
- 1. MyBatis介绍及快速入门
- 2. 相关API介绍
- 2.1 Resources
- 2.2 SqlSessionFactory&&SqlSessionFactoryBuilder
- 2.3 SqlSession
- 3. 映射配置文件
- 4. 核心配置文件
- 4.1 规范写法
- 4.2 参数和返回类型_起别名
- 5. 引入Log4j
- 二、MyBatis进阶
- 1. 接口代理
- 2. 动态sql使用
- 2.1 where&if
- 2.2 foreach
- 2.3 片段抽取 include&sql
- 3. 分页使用
- 三、MyBatis高级
一、MyBatis基础
1. MyBatis介绍及快速入门
引入依赖:
写sql:
<?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="StudentMapper">
<select id="find" resultType="com.jou.domain.Student">
select * from student
</select>
</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">
<configuration>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/db1"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="StudentMapper.xml"></mapper>
</mappers>
</configuration>
方法调用:
结果输出:
2. 相关API介绍
2.1 Resources
本质还是类加载器的调用
2.2 SqlSessionFactory&&SqlSessionFactoryBuilder
2.3 SqlSession
3. 映射配置文件
xml的使用
import com.jou.domain.Student;
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.InputStream;
import java.util.List;
public class StudentTest {
@Test
public void findAll() throws Exception {
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession = sessionFactory.openSession();
List<Student> students = sqlSession.selectList("StudentMapper.find");
for (Student student : students) {
System.out.println(student);
}
}
}
4. 核心配置文件
4.1 规范写法
4.2 参数和返回类型_起别名
核心配置中:
mapper中:
5. 引入Log4j
输出:
二、MyBatis进阶
1. 接口代理
mapper实现类去除,直接再实现层调用mapper对象
2. 动态sql使用
2.1 where&if
使用1:
2.2 foreach
2.3 片段抽取 include&sql