尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Mybatis核心配置文件

发布时间:2026/9/24 17:14:58

资讯中心
01
ARTICLE

Mybatis核心配置文件

Mybatis核心配置文件
一、TypeHandlers你可以重写类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。具体做法为实现 org.apache.ibatis.type.TypeHandler 接口 或继承一个很便利的类 org.apache.ibatis.type.BaseTypeHandler然后可以选择性地将它映射到一个 JDBC 类型。例如需求一个 Java 中的 Date 数据类型我想将之存到数据库的时候存成一个 1970 年至今的毫秒数取出来时转换成 java 的 Date即 java 的 Date 与数据库的 varchar 毫秒值之间转换。开发步骤① 定义转换类继承类 BaseTypeHandlerT② 覆盖 4 个未实现的方法其中 setNonNullParameter 为 java 程序设置数据到数据库的回调方法getNullableResult 为查询时 mysql 的字符串类型转换成 java 的 Type 类型的方法③ 在 MyBatis 核心配置文件中进行注册④ 测试转换是否正确sqlMapConfig.xml文件 !-- 注册类型处理器-- typeHandlers typeHandler handlercom.itheima.handler.DateTypeHandler/typeHandler /typeHandlerspublic interface UserMapper { public User save(User user); }package com.itheima.handler; import org.apache.ibatis.type.BaseTypeHandler; import org.apache.ibatis.type.JdbcType; import java.sql.*; import java.util.Date; public class DateTypeHandler extends BaseTypeHandlerDate { // 将java类型转换成 数据库需要 的类型 Override public void setNonNullParameter(PreparedStatement preparedStatement, int i, Date date, JdbcType jdbcType) throws SQLException { preparedStatement.setLong(i, date.getTime()); } //将数据库中的某些数据转换成 java类型 Override//resultset是查询结果集string是要转换的字段的名称 public Date getNullableResult(ResultSet resultSet, String s) throws SQLException { // 获得结果集合中的需要的数据long转换成Date类型 long aLong resultSet.getLong(s); Date date new Date(aLong); return date; } //将数据库中的某些数据转换成 java类型 Override public Date getNullableResult(ResultSet resultSet, int i) throws SQLException { long aLong resultSet.getLong(i); Date date new Date(aLong); return date; } //将数据库中的某些数据转换成 java类型 Override public Date getNullableResult(CallableStatement callableStatement, int i) throws SQLException { long aLong callableStatement.getLong(i); Date date new Date(aLong); return date; } }public class MyBatisTest { Test public void test1()throws Exception{ //获得核心配置文件 InputStream resourceAsStream Resources.getResourceAsStream(sqlMapConfig.xml); //2.获得sqlSession工厂对象 SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(resourceAsStream); //3.获得sqlSession回话对象 SqlSession sqlSession sqlSessionFactory.openSession(); UserMapper userMapper sqlSession.getMapper(UserMapper.class); User user new User(); user.setUsername(admin); user.setPassword(123456); user.setBirthday(new Date()); //6.释放资源 sqlSession.close(); } }二、plugins分页标签mybatis可以使用第三方插件来对功能进行拓展分页助手PageHelper是将分页的复杂操作进行封装使用简单的方式即可获得分页的相关数据开发步骤1. 导入使用PageHelper2. 在mybatis核心配置文件中配置PageHelper插件3. 测试分页数据获取dependency groupIdcom.github.pagehelper/groupId artifactIdpagehelper/artifactId version5.3.0/version /dependency dependency groupIdcom.github.jsqlparser/groupId artifactIdjsqlparser/artifactId version4.0/version /dependencyusermapper.xml mapper namespacecom.itheima.Mapper.UserMapper select idfindAll resultTypecom.itheima.domain.User select * from userlist /selectsqlMapConfig.xml !-- 配置分页助手插件-- plugins plugin interceptorcom.github.pagehelper.PageInterceptor property namehelperDialect valuemysql/ /plugin /pluginsTest public void test2()throws Exception{ //获得核心配置文件 InputStream resourceAsStream Resources.getResourceAsStream(sqlMapConfig.xml); //2.获得sqlSession工厂对象 SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(resourceAsStream); //3.获得sqlSession回话对象 SqlSession sqlSession sqlSessionFactory.openSession(); UserMapper userMapper sqlSession.getMapper(UserMapper.class); //设置分页相关参数当前页每页显示的条数 PageHelper.startPage(1,3); ListUser userList userMapper.findAll(); for (User user : userList) { System.out.println(user user); } //6.释放资源 sqlSession.close(); }public interface UserMapper { public User save(User user); // public User findById(Integer id); public ListUser findAll(); }三、其他配置文件见Mybatis快速入门-CSDN博客
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。