【浅学 MyBatis 】

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介绍及快速入门

【浅学 MyBatis 】_第1张图片
引入依赖:
【浅学 MyBatis 】_第2张图片
写sql:
【浅学 MyBatis 】_第3张图片

<?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>

核心配置文件:
【浅学 MyBatis 】_第4张图片

<?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>

方法调用:
【浅学 MyBatis 】_第5张图片
结果输出:
【浅学 MyBatis 】_第6张图片

2. 相关API介绍

2.1 Resources

【浅学 MyBatis 】_第7张图片

本质还是类加载器的调用
在这里插入图片描述

2.2 SqlSessionFactory&&SqlSessionFactoryBuilder

【浅学 MyBatis 】_第8张图片

【浅学 MyBatis 】_第9张图片

2.3 SqlSession

【浅学 MyBatis 】_第10张图片

3. 映射配置文件

【浅学 MyBatis 】_第11张图片
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);
        }
    }
}

【浅学 MyBatis 】_第12张图片

4. 核心配置文件

【浅学 MyBatis 】_第13张图片

4.1 规范写法

【浅学 MyBatis 】_第14张图片
【浅学 MyBatis 】_第15张图片

4.2 参数和返回类型_起别名

核心配置中:
【浅学 MyBatis 】_第16张图片
mapper中:
【浅学 MyBatis 】_第17张图片
【浅学 MyBatis 】_第18张图片

5. 引入Log4j

【浅学 MyBatis 】_第19张图片

【浅学 MyBatis 】_第20张图片
【浅学 MyBatis 】_第21张图片
【浅学 MyBatis 】_第22张图片
输出:
【浅学 MyBatis 】_第23张图片

二、MyBatis进阶

1. 接口代理

【浅学 MyBatis 】_第24张图片

【浅学 MyBatis 】_第25张图片
mapper实现类去除,直接再实现层调用mapper对象
【浅学 MyBatis 】_第26张图片

2. 动态sql使用

【浅学 MyBatis 】_第27张图片

2.1 where&if

使用1:
【浅学 MyBatis 】_第28张图片

2.2 foreach

【浅学 MyBatis 】_第29张图片

2.3 片段抽取 include&sql

【浅学 MyBatis 】_第30张图片
【浅学 MyBatis 】_第31张图片

3. 分页使用

三、MyBatis高级

你可能感兴趣的:(mybatis,java,spring)