MyBatis(八) 数据库BLOB读写、批量更新操作、存储过程调用、分表、分页

数据库BLOB读写

Java字段类型定义为byte[],数据库表的字段类型为BLOB,常用的类型转换器是BlobTypeHandler

批量更新配置


还有一种方式是在获取sqlSession的时候进行设置

SqlSession session = factory.openSession(ExecutorType.BATCH)

或者在整合spring的时候配置


	
	
	

调用存储过程

* mysql中创建存储过程

DROP PROCEDURE IF EXISTS get_stuName;
DELIMITER $
create procedure get_stuName(in stuid int, out stuname varchar(50))
begin
select stu_name into stuname from student_info where stu_id = stuid ;
end $
DELIMITER ;

* 定义入参的pojo类型,其实就是Student类

* 定义查询语句

public void getStudentNameByProceDure(Student stu);

参数设置中对于存储过程的支持

mode: 可以设置 IN,OUT,INOUT

jdbcType: org.apache.ibatis.type.JdbcType 中的枚举类型

javaType和typeHandler都可以指定。

另外当返回的类型是游标jdbcType=CURSOR,还需要设置resultMap接受映射结果

接受游标结果

分表的应用

其实就是将查询参数,作为sql的一部分传进去。

select  *   from student_info_${year} m 

分页

Mybatis的分页支持类型RowBounds,缺点是会将结果全查询出来,在进行截取,适合数据量比较小的查询,大数据的查询不推荐使用

new RowBounds(int offset,int limit) offset索引,limit查询的数据量

public Student queryStudentInfoByStudent(@Param("id")Integer id, RowBounds rb);
 
mapper.queryStudentInfoByStudent(5, new RowBounds(0,10));




你可能感兴趣的:(MyBatis)