Mybatis高级映射及动态加载及逆向工程

目录

1.多对一

2.一对多

3.⼀对多延迟加载

4.逆向工程


1.多对一

多种⽅式,常⻅的包括三种:

  • 第⼀种⽅式:⼀条SQL语句,级联属性映射。
  • 第⼆种⽅式:⼀条SQL语句,association。
  • 第三种⽅式:两条SQL语句,分步查询。(这种⽅式常⽤:优点⼀是可复⽤。优点⼆是⽀持懒加载。)

多对一    多个员工对应一个部门           查找部门的所有员工

 
        
        
        
        
        
        

    
    


在association的column是第一步查出来的结果 然后传给下一步查询  查出来全部的empoyee 返回resultmap 然后使用返回的dept_tid 值  传给 第二步select 


    
    


    

要想⽀持延迟加载,⾮常简单,只需要在association标签中添加fetchType="lazy"即可。 修改StudentMapper.xml⽂件:

2.一对多

⼀对多的实现,通常是在⼀的⼀⽅中有List集合属性。

一为部门表是主表

 
         
         
       
        
     
    

员工表xml


        
        
        
        

    
    


 

3.⼀对多延迟加载

⼀对多延迟加载机制和多对⼀是⼀样的。同样是通过两种⽅式:

第⼀种:fetchType="lazy"

第⼆种:修改全局的配置setting,lazyLoadingEnabled=true,如果开启全局延迟加载,想让某个 sql不使⽤延迟加载:fetchType="eager"

4.逆向工程

所谓的逆向⼯程是:根据数据库表逆向⽣成Java的pojo类,SqlMapper.xml⽂件,以及Mapper接⼝类 等。

使⽤这个插件的话,需要给这个插件配置哪些信息

pojo类名、包名以及⽣成位置。 SqlMapper.xml⽂件名以及⽣成位置。 Mapper接⼝名以及⽣成位置。 连接数据库的信息。 指定哪些表参与逆向⼯程。 ......

使用步骤

1.

第⼀步:基础环境准备

新建模块:RockyMaven

打包⽅式:jar

com.rocky.mybatis
    MyBatisDemo
    1.0-SNAPSHOT
    jar

第⼆步:在pom中添加逆向⼯程插件

 
    
    
        
        
            
            
                
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.4.2
                
                
                    true
                
                
                
                    
                    
                        mysql
                        mysql-connector-java
                        8.0.33
                    
                
            
        
    

第三步:配置generatorConfig.xml

该⽂件名必须叫做:generatorConfig.xml 该⽂件必须放在类的根路径下。




    
    
        
        

        
            
            
            
            
        
        
        
        
        
        
            
            
            
            
        
        
        
            
            
        
        
        
            
        
        
        

第四步:运⾏插件

Mybatis高级映射及动态加载及逆向工程_第1张图片

 

五测试逆向工程生成的是否好用

Example类的作用:一个用于筛选复杂条件的类,Example类中查询方法的介绍。

导入核心配置文件

QBC编程

  @Test
    public void selectTest() throws IOException {
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory build = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"));
        SqlSession sqlSession = build.openSession(true);
        CarMapper mapper = sqlSession.getMapper(CarMapper.class);

        //创建对象条件对象
        CarExample carExample = new CarExample();
        // carExample.createCriteria(); 创建查询条件 链式编程 QBC风格
        CarExample.Criteria haha = carExample.createCriteria().andBrandEqualTo("宝马E");
        //执行查询
        List cars = mapper.selectByExample(carExample);
       cars.forEach(new Consumer() {
           @Override
           public void accept(Car car) {
               System.out.println(car);
           }
       });
        sqlSession.close();

    }

你可能感兴趣的:(Mybatis,mybatis,sql,开发语言,数据库)