MyBatis框架学习笔记(1)——B站动力节点

001- 框架概述

1.1 软件开发常用结构

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 框架是什么

在这里插入图片描述
在这里插入图片描述

1.3 回顾JDBC编程

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

1.4 MyBatis框架概述

在这里插入图片描述

002- MyBatis框架快速入门

2.1 入门案例

在这里插入图片描述
在这里插入图片描述

mybatis官网

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

或者手动把主配置文件复制粘贴过去

2.2 MyBatis对象分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MyBatis底层是JDBC

2.3 创建工具类

首先创建一个新Maven模块:

在这里插入图片描述

创建mapper文件模板:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建主配置文件模板:

在这里插入图片描述
在这里插入图片描述


IDEA自动格式化快捷键:ctrl+alt+L

下面开始写工具类:
在这里插入图片描述

package com.bjpowernode.utils;

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 java.io.IOException;
import java.io.InputStream;

/**
 * 工具类:创建SqlSession对象
 */
public class MyBatisUtil {
    
    

    private static SqlSessionFactory factory = null;

    static {
    
    
        String config = "mybatis.xml";
        try {
    
    

            InputStream inputStream = Resources.getResourceAsStream(config);
            factory = new SqlSessionFactoryBuilder().build(inputStream);

        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }

    //创建方法 获取SqlSession对象
    public static SqlSession getSqlSession(){
    
    
        SqlSession session = null;
        if(factory != null){
    
    
            //openSession() 手动提交事务
            //openSession(true) 自动提交事务
            session = factory.openSession(true);
        }
        return session;
    }
}

测试:使用工具类

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4 MyBatis使用传统Dao开发方式

使用 Dao 的实现类,操作数据库

在这里插入图片描述

在这里插入图片描述

package com.bjpowernode.dao.Impl;

import com.bjpowernode.dao.StudentDao;
import com.bjpowernode.domain.Student;
import com.bjpowernode.utils.MyBatisUtil;
import org.apache.ibatis.session.SqlSession;

import java.util.List;

public class StudentDaoImpl implements StudentDao {
    
    
    @Override
    public Student selectById(Integer id) {
    
    
        //1.获取SqlSession对象
        SqlSession session = MyBatisUtil.getSqlSession();
        //2.指定sqlId
        String sqlId = "com.bjpowernode.dao.StudentDao.selectById";
        //3.执行SqlSession的方法,表示执行sql语句
        Student student = session.selectOne(sqlId, id);
        //4.关闭SqlSession对象
        session.close();

        return student;
    }

    @Override
    public List<Student> selectStudents() {
    
    
        //1.获取SqlSession对象
        SqlSession session = MyBatisUtil.getSqlSession();
        //2.指定sqlId
        String sqlId = "com.bjpowernode.dao.StudentDao.selectStudents";
        //3.执行SqlSession的方法,表示执行sql语句
        List<Student> students = session.selectList(sqlId);
        //4.关闭SqlSession对象
        session.close();
        return students;
    }

    @Override
    public int insertStudent(Student student) {
    
    
        //1.获取SqlSession对象
        SqlSession session = MyBatisUtil.getSqlSession();
        //2.指定sqlId
        String sqlId = "com.bjpowernode.dao.StudentDao.insertStudent";
        //3.执行SqlSession的方法,表示执行sql语句
        int rows = session.insert(sqlId, student);
        //4.关闭SqlSession对象
        session.close();
        return rows;
    }
}

在这里插入图片描述

package com.bjpowernode;

import com.bjpowernode.dao.Impl.StudentDaoImpl;
import com.bjpowernode.dao.StudentDao;
import com.bjpowernode.domain.Student;
import org.junit.Test;

import java.util.List;

public class MyTest02 {
    
    
    @Test
    public void testSelectOne(){
    
    
        StudentDao dao = new StudentDaoImpl();
        Student student = dao.selectById(1001);
        System.out.println(student);
    }
    @Test
    public void testSelectStudents(){
    
    
        StudentDao dao = new StudentDaoImpl();
        List<Student> students = dao.selectStudents();
        students.forEach(stu-> System.out.println(stu));
    }
    @Test
    public void testInsertStudent(){
    
    
        StudentDao dao = new StudentDaoImpl();
        Student student = new Student();
        student.setId(1005);
        student.setName("小红");
        student.setEmail("[email protected]");
        student.setAge(30);
        int rows = dao.insertStudent(student);
        System.out.println(rows);
    }

}


003- MyBatis dao代理 (简化写法)

3.1 分析

传统 Dao 开发方式的分析:
对上述方法进行进一步优化

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.2 dao代理的使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 深入理解参数

(1)parameterType

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

(2)一个简单参数(掌握)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)多个参数——使用@Param (掌握)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)多个参数——使用对象 (掌握)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

(5)多个参数——按位置 (了解)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

(6)多个参数——使用Map (了解)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(7)#和$

在这里插入图片描述在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


用$占位符表示表名或者列名 才是它的正确用法:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

用 #{}是不行的

在这里插入图片描述
在这里插入图片描述


#{} 和 ${} 组合使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


${} 用于表名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4 封装 MyBatis 输出结果

(1)resultType

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)resultMap

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)数据库表列名与java类的属性名不一致的解决方法

在这里插入图片描述

在这里插入图片描述

(4)模糊like

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_52041525/article/details/125683995