1. typeHandlers 标签
无论是MyBatis 在预处理语句(PreparedStatement )中设置一个参数时,还是从结果集中取出一个值时,都会用类型处理器将获取的值以合适的方式转换成Java 类型。
一些默认的类型处理器(截取部分)
重写类型处理器或创建自定义的类型处理器来处理不支持的或非标准的类型。
具体实现:实现 org.apache.ibatis.type.TypeHandler 接口, 或继承一个很便利的类 org.apache.ibatis.type.baseTypeHandler, 然后可以选择性地将它映射到一个JDBC类型。
开发步骤:
(1)定义转换类继承类 baseTypeHandler
(2)覆盖4个未实现的方法,其中setNonNullParameter 为java程序设置数据到数据库的回调方法,getNullableResult 为查询时 mysql 的字符串类型转换成 java 的Type 类型的方法
(3)在MyBatis 核心配置文件中进行注册
(1)定义转换类继承类 baseTypeHandler
public class DateTypeHandler extends baseTypeHandler{ //将java类型 转换成 数据库需要的类型 public void setNonNullParameter(PreparedStatement preparedStatement, int i, Date date, JdbcType jdbcType) throws SQLException { long time = date.getTime(); preparedStatement.setLong(i,time); } //将数据库中类型 转换成java类型 //String参数 要转换的字段名称 //ResultSet 查询出的结果集 public Date getNullableResult(ResultSet resultSet, String s) throws SQLException { //获得结果集中需要的数据(long) 转换成Date类型 返回 long aLong = resultSet.getLong(s); Date date = new Date(aLong); return date; } //将数据库中类型 转换成java类型 public Date getNullableResult(ResultSet resultSet, int i) throws SQLException { long aLong = resultSet.getLong(i); Date date = new Date(aLong); return date; } //将数据库中类型 转换成java类型 public Date getNullableResult(CallableStatement callableStatement, int i) throws SQLException { long aLong = callableStatement.getLong(i); Date date = new Date(aLong); return date; } }
(3)在MyBatis 核心配置文件中进行注册
1. plugins 标签
MyBatis 可以使用第三方的插件来对功能进行扩展,分页助手PageHelper 是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据
开发步骤:
(1)导入通用PageHelper 的坐标
(2)在MyBatis 核心配置文件中配置PageHelper 插件
(3)测试分页数据获取
(1)导入通用PageHelper 的坐标
com.github.pagehelper pagehelper3.7.5 com.github.jsqlparser jsqlparser0.9.1
(2)在MyBatis 核心配置文件中配置PageHelper 插件
(3)测试分页数据获取
@Test public void testPageHelper(){ //设置分页相关参数 当前页+每页显示的条数 PageHelper.startPage(3,3); ListuserList = mapper.findAll(); for (User user : userList) { System.out.println(user); } //获得与分页相关参数 PageInfo pageInfo = new PageInfo (userList); System.out.println("当前页:"+pageInfo.getPageNum()); System.out.println("每页显示条数:"+pageInfo.getPageSize()); System.out.println("总条数:"+pageInfo.getTotal()); System.out.println("总页数:"+pageInfo.getPages()); System.out.println("上一页:"+pageInfo.getPrePage()); System.out.println("下一页:"+pageInfo.getNextPage()); System.out.println("是否是第一个:"+pageInfo.isIsFirstPage()); System.out.println("是否是最后一个:"+pageInfo.isIsLastPage()); }
MyBatis核心配置文件常用标签:
1、properties标签:该标签可以加载外部的properties文件
2、typeAliases标签:设置类型别名
3、environments标签:数据源环境配置标签
4、typeHandlers标签:配置自定义类型处理器
5、plugins标签:配置MyBatis的插件



