动态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类型(如varchardate...)和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本身提供的一种扩展机制,只要符合它的规范,就可以给它添加功能。
使用第三方的分页插件