【SSM框架】MyBatis笔记 --- 表之间的关联关系;MyBatis事务;MyBatis缓存机制;ORM概述


一、表之间的关联关系:


  • 关联关系是有方向的。

1、四种关联关系:

1)一对多关联:一个老师可以教多个学生,多个学生只有一个老师来教,站在老师方,就是一对多关联。

2)多对一关联:一个老师可以教多个学生,多个学生只有一个老师来教,站在学生方,就是多对一关联。

3)一对一关联:一个老师辅导一个学生,一个学生只请教一个老师,学生和老师是一对一。

4)多对多关联:园区划线的车位和园区的每一辆车,任意一个车位可以停任意一辆车,任意一车辆车可以停在任意一个车位上。

 

2、一对多关联关系:

客户和订单就是典型的一对多关联关系;

一个客户名下可以有多个订单;

客户表是一方,订单表是多方.客户一中持有订单的集合;

使用一对多的关联关系,可以满足查询客户的同时查询该客户名下的所有订单.;

需求:根据客户的id查询客户所有信息并同时查询该客户名下的所有订单    



    
    
    
    
    

    
    
        
        
        
        
        
    

 

3、多对一关联关系:

订单和客户就是多对一关联;

站在订单的方向查询订单的同时将客户信息查出;

订单是多方,会持有一方的对象,客户是一方;
 

需求:根据订单的id查询订单所有信息并同时查询该订单对应的用户信息



    
        
        
        
        
        
        
        
            
            
            
        
    
    


总结:无论是什么关联关系,如果某方持有另一方的集合,则使用标签完成映射,如果某方持有另一方的对象,则使用标签完成映射。

二、事务:


  • 多个操作同时完成,或同时失败称为事务处理。事务有四个特性:一致性,持久性,原子性,隔离性.

  在MyBatis框架中设置事务:


 

  

//默认是手工提交事务,设置为false也是手工提交事务,如果设置为true,则为自动提交.
sqlSession = factory.openSession();  
//设置为自动提交,在增删改后不需要commit();
sqlSession = factory.openSession(true);  

三、缓存:


  • MyBatis框架提供两级缓存,一级缓存和二级缓存,默认开启一级缓存。缓存就是为了提交查询效率。

1、使用缓存后,查询的流程:

查询时先到缓存里查,如果没有则查询数据库,放缓存一份,再返回客户端,下次再查询的时候直接从缓存返回,不再访问数据库;

如果数据库中发生commit()操作,则清空缓存。

2、一级缓存使用的是SqlSession的作用域,同一个sqlSession共享一级缓存的数据。

二级缓存使用的是mapper的作用域,不同的sqlSession只要访问的同一个mapper.xml文件,则共享二级缓存作用域。

四、ORM:


  • ORM(Object Relational Mapping):对象关系映射

1、MyBatis框架是ORM非常优秀的框架。

     java语言中以对象的方式操作数据,存到数据库中是以表的方式进行存储,对象中的成员变量与表中的列之间的数据互换称为映射,整个这套操作就是ORM。

2、持久化的操作:将对象保存到关系型数据库中 ,将关系型数据库中的数据读取出来以对象的形式封装

     MyBatis是持久化层优秀的框架。