Mybatis:传参+提交事务(自动or手动)+sql多表关联查询(两种方法)

目录

一、参数两种类型:

二、传参的几种方法:

三、提交事务

四、sql多表关联查询(两种方法)


一、参数两种类型:

1.#{参数}:预编译方式,更安全,只用于向sql中传值;

select * from  admin where account=#{account} and password=#{password}

2.${参数}:将参数直接拼接到sql中 ,主要用来动态的向sql中传列名。

select  * from admin order by ${colum}

二、传参的几种方法:

1.基本类型不需要做任何处理;

2.多个参数使用:@Param("引用名")绑定;
  
3.传多个参数,使用类,传参使用属性名;
 
4.非基本类型需要@Param("colum") 绑定。

三、提交事务

由于mybatis默认是关闭事务自动提交的:

Mybatis:传参+提交事务(自动or手动)+sql多表关联查询(两种方法)_第1张图片

1.手动提交: 

如果进行了数据库的insert、update、delete操作,修改了数据库,必须必须调用sqlSession.commit()方法,手动提交。

2.自动提交:

将openSession方法中参数值改为true——sessionFactory.openSession(true);

四、sql多表关联查询(两种方法)

有student学生信息表、dorm宿舍信息表、admin管理员信息表,现已查询每个宿舍信息以及每个宿舍所住的学生为例:

相关类:

Mybatis:传参+提交事务(自动or手动)+sql多表关联查询(两种方法)_第2张图片

 Mybatis:传参+提交事务(自动or手动)+sql多表关联查询(两种方法)_第3张图片

 Mybatis:传参+提交事务(自动or手动)+sql多表关联查询(两种方法)_第4张图片

 表信息:

admin表

Mybatis:传参+提交事务(自动or手动)+sql多表关联查询(两种方法)_第5张图片

 dorm表

 Mybatis:传参+提交事务(自动or手动)+sql多表关联查询(两种方法)_第6张图片

 student表

Mybatis:传参+提交事务(自动or手动)+sql多表关联查询(两种方法)_第7张图片

 1.sql查询语句已关联表

        将需要的数据统一用一条sql语句关联表查询,再通过反射存储到相应的类中,由于有一对多的查询(一个宿舍有多个学生)结果,需要使用collection标签。

 
        
        
        
            
        

        
            
            
        
    
    
    

2.分步查询

多表关联查询可以分解为多个sql语句逐次查询出需要数据,每次查出的结果可以作为下次查询的条件。

    
        
        
        
        
    

    
    
    

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