MyBatis映射配置文件

动态sql

if标签,可以指定条件进行判断

test属性

等价于SELECT * FROM user WHERE 1=1 AND id=? AND username=? AND password=?;

foreach标签,用于遍历集合或数组***

collection属性:collection="list"指定要遍历的集合

单个参数,类型为list集合。必须写list

单个参数,类型为数组。必须写array

要遍历的集合在某个map中,写map的key的名字

					open="id in("		sql语句字符串开始的部分
					close=")"		sql语句字符串结束的部分
					item="id"		任意指定一个遍历出的每个元素的变量名
					separator=",">		分隔符,用于分割每个元素

等价于SELECT * FROM user WHERE id IN(1,2,3);

核心配置文件typeHandler

处理JDBC类型(如varchar\date...)和Java类型(String、int...)之间的转换。默认情况下,Mybatis已经自带了很多常见类型的转换器。

自定义类型处理器步骤

写一个类继承BaseTypeHandler抽象类,实现其中的方法

set开头的方法时把Java类型数据转为数据库类型数据放入数据库时使用

setNonNullParameter(PreparedStatement preparedStatement, int i, Date date, JdbcType jdbcType)当我们的数据库的目标类型和Java中的类型无法处理时,mybatis会自动调用该方法交由我们来处理

get开头的方法是从数据库中把数据取出,然后封装为Java类型时使用

getNullableResult(ResultSet resultSet, String s)

getNullableResult(ResultSet resultSet, int i)

getNullableResult(CallableStatement callableStatement, int i)

在核心配置文件中,通过typeHandlers标签配置我们的类型处理器即可。

plugins

mybatis本身提供的一种扩展机制,只要符合它的规范,就可以给它添加功能。
使用第三方的分页插件

注册插件

不用改动sql的配置,只要是一个查询语句,都可以由分页插件自动改造成分页查询语句。在查询语句调用之前,使用PageHelper的startPage方法,跟在后面的第一句select语句就自动会变成分页查询。

分页时,实际返回的结果list类型是Page,如果想取出分页信息,需要强制转换为Page

public class Page extends ArrayList

posted @ 2020-02-16 15:08  卯毛  阅读(335)  评论(0编辑  收藏  举报