新闻详情

新闻详情

首页 / 资讯中心 / 详情

Mybatis核心配置文件

发布时间:2026/9/26 15:28:04来源:尧图网络
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博客
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Python机器学习零基础理解分类模型的准确性指标和评估 2026/9/26 15:28:00

Python机器学习零基础理解分类模型的准确性指标和评估

在机器学习和数据科学领域中,分类模型是一种广泛应用的算法,用于将数据点分配到预定义的类别或组。这种模型在许多实际应用中都有广泛的用途,从垃圾邮件过滤和客户流失预测,到医疗诊断和金融风险评估。然而一个经常被忽视但极其关键的问题是:如何准确地评估这些模型的性能…

阅读更多 →
用户终身价值利用XGBoost进行LTV预测 2026/9/26 15:27:53

用户终身价值利用XGBoost进行LTV预测

在理解用户价值这个概念时,一个不可忽视的方面是用户的生命周期价值(Lifetime Value,LTV)。这是衡量用户对业务长期贡献的关键指标,对于确保盈利至关重要。那么,如何准确识别和计算用户的生命周期价值呢? 用户的生命周期价值简化的计算方法可以通过一个时间窗口来实现,…

阅读更多 →
Oracle现金管理模块实践:从科目表映射到银行对账的排错指南 2026/9/26 15:27:27

Oracle现金管理模块实践:从科目表映射到银行对账的排错指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
多智能体权限失控复盘:从工具模糊授权到抱团劫持的完整链路 2026/9/26 15:27:27

多智能体权限失控复盘:从工具模糊授权到抱团劫持的完整链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
思考:什么样的 Skill 才是一个好 Skill?从 Agent 评估到 A/B 实验的落地框架 2026/9/26 15:27:13

思考:什么样的 Skill 才是一个好 Skill?从 Agent 评估到 A/B 实验的落地框架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Jira MCP 深度解析:用 TaoToken 统一 Key 打通配置链路 2026/9/26 15:27:13

Jira MCP 深度解析:用 TaoToken 统一 Key 打通配置链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉