Mybatis的使用以及快速入门

一、思维导图

Mybatis的使用以及快速入门_第1张图片

二、基本配置

(1)mybatis-config.xml







    
        
        
    


    
        
        
    




    


    

    
        
            
            
                
                
                
                
            
        
    

    
      
    


 (2)db.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8

(3)MybatisUtils

package com.kuang.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;
                                    
//sqlSessionFactory -->sqlSession

public class MybatisUtils {
    private  static  SqlSessionFactory sqlSessionFactory;
    static {

        InputStream inputStream = null;
        try {
//            使用Mybatis第一步:获取sqlSessionFactory对象
            String resource = "mybatis-config.xml";
            inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
//        获取salSessionFactory,完全包含了面向数据库执行SQL命令所需的所有方法
    public static SqlSession getSqlSession(){
        SqlSession sqlSession = sqlSessionFactory.openSession();
        return sqlSession;
    }
}

(4)pom 文件



    4.0.0

    com.kuang
    Mybatis-Study
    pom
    1.0-SNAPSHOT
    
        Mybatis-01
        mybatis-02
        mybatis-03
        mybatis-06
        mybatis-08
        mybatis-09
        mybatis-10
        mybatis-15
    

    
    

        
            mysql
            mysql-connector-java
            5.1.47
        

        
        
            org.mybatis
            mybatis
            3.4.6
        

        
            junit
            junit
            4.12

        
    

        
            
                src/main/resources
                
                    **/*.properties
                    **/*.xml
                
                true
            
            
                src/main/java
                
                    **/*.properties
                    **/*.xml
                
                true
            
        
    

二、注解的方式(与SQL有关)

(1)CRUD

Mybatis的使用以及快速入门_第2张图片






    
    

UserMapper.xml文件。这里面主要写的是sql,现在我们来看一下,

namespace为所引用的接口,这里相当于UserMapper.

id,相当于这个UserMapper中方法的名字

resultType为返回的类型,parameterType为参数的类型

(2)多对一

(a)复杂环境的搭建

1)新建数据库 2)导入lomobok 3)新建实体类Teacher,Student 4)建立Mapper接口 5)建立Mapper.xml文件 6)在核心配置文件中绑定注册我们的Mapper接口或者文件 6)测试查询是否能够成功

(b)现在我们需要查询学生和老师的相关信息

 其次,是在student中把resultType="Student",改成resultMap="StudentTeacher"

再写reultMap里面的值。

Mybatis的使用以及快速入门_第3张图片

 (b)按照结果嵌套处理

Mybatis的使用以及快速入门_第4张图片

 (3)一对多处理

Mybatis的使用以及快速入门_第5张图片

(4)动态SQL

(a)什么是动态SQL

动态SQL就是根据不同的条件生成不同的SQL语句。

 (b)if

Mybatis的使用以及快速入门_第6张图片

 

(5)缓存

一级缓存也就本地缓存

1)工作机制:

(a)一个会话查询一条数据,这个数据就会被放在当前会话的一级缓存中,如果当前会话关闭了,这个会话对应的一级缓存就没了;但是我们想要的是,会话关闭了,一级缓存中的数据被保存到二级缓存中。

(b)新的会话查询信息,就可以从二级缓存中获取内容

(c)不同的mapper查出的数据会放在自己对应的缓存map中;

2)如何开启全局缓存

 

 (2)在要使用二级缓存的Mapper中开启

也可以自动参数

(3)测试

 (a)问题:我们需要将实体类序列化,否则会报错

 小结:

 (a)只有开启了二级缓存,在同一个Mapper下就有效

(b)所以的数据都会先放在一级缓存中

(c)只有当会话提交,或者关闭的时候,才会提交到二级缓存中。

Mybatis的使用以及快速入门_第7张图片

 

 

(6)Mybatis的核心

 Mybatis的使用以及快速入门_第8张图片

(7)Mybatis总结

通过这次Mybatis,我也终于了解了在项目开发中为什么将SQL和代码进行分离,以及各个参与的意思,xml文件怎么和接口向连接的,以及为什么实体类要进行实现序列化接口等等。

你可能感兴趣的:(【mysql】)