当前位置: 首页 > news >正文

网站正能量破解版下载大全安装优秀的产品设计与分析

网站正能量破解版下载大全安装,优秀的产品设计与分析,wordpress点击图片弹出,太原市网站建设网站在 MyBatis 中#xff0c;TypeHandler 是实现 Java 类型与数据库类型双向转换 的核心组件。无论是处理基础数据类型还是复杂的 JSON、枚举或自定义对象#xff0c;它都能通过灵活的扩展机制满足开发需求。本文将通过一个 将数据库 JSON 字符串转换为 ListUser 的案例…在 MyBatis 中TypeHandler 是实现 Java 类型与数据库类型双向转换 的核心组件。无论是处理基础数据类型还是复杂的 JSON、枚举或自定义对象它都能通过灵活的扩展机制满足开发需求。本文将通过一个 将数据库 JSON 字符串转换为 ListUser 的案例详解 TypeHandler 的原理与实践。 一、TypeHandler 的作用与原理 1. 核心功能 类型转换桥梁将 Java 对象属性转换为 JDBC 参数如 PreparedStatement 设置值结果集映射将数据库查询结果如 ResultSet转换为 Java 对象属性空值处理统一处理 Java 对象与数据库字段的 NULL 值逻辑。 2. 应用场景 内置类型处理MyBatis 已支持 String、Integer、Date 等常见类型的转换复杂类型处理如 JSON 字符串与对象互转、枚举值与数据库标记映射、CSV 字符串与集合转换等。 二、TypeHandler 的配置与扩展 1. 内置 TypeHandler MyBatis 默认提供多种 TypeHandler例如 StringTypeHandler处理 VARCHAR 与 StringEnumTypeHandler处理枚举与数据库标记如 disabled 转 0DateTypeHandler处理日期类型与 TIMESTAMP 的转换。 2. 自定义 TypeHandler 步骤 继承 BaseTypeHandler实现 setNonNullParameterJava→JDBC和 getNullableResultJDBC→Java方法注册处理器 全局注册在 mybatis-config.xml 中通过 typeHandlers 标签配置局部指定在 Mapper XML 或注解中通过 typeHandler 属性标记 应用转换逻辑在实体类字段或 SQL 映射中声明使用自定义 TypeHandler。 三、实战FastJson 实现 JSON 字符串与 List 转换 1. 场景描述 假设数据库表 user_group 的 users 字段存储 JSON 字符串需在 Java 中映射为 ListUser 对象 CREATE TABLE user_group (id BIGINT PRIMARY KEY,users VARCHAR(2048) -- 存储格式[{id:1,name:Alice,age:25},...] );2. 实现步骤 ① 引入依赖 dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.83/version /dependency② 定义 User 实体 public class User {private Long id;private String name;private Integer age;// getters/setters }③ 自定义 TypeHandler public class ListUserTypeHandler extends BaseTypeHandlerListUser {Overridepublic void setNonNullParameter(PreparedStatement ps, int i, ListUser users, JdbcType jdbcType) throws SQLException {ps.setString(i, JSON.toJSONString(users)); // Java→JSON字符串}Overridepublic ListUser getNullableResult(ResultSet rs, String columnName) throws SQLException {String json rs.getString(columnName);return parseJson(json);}private ListUser parseJson(String json) {return json null ? null : JSON.parseObject(json, new TypeReferenceListUser(){});}// 其他重写方法略... }④ 全局注册 TypeHandler !-- mybatis-config.xml -- typeHandlerstypeHandler handlercom.example.ListUserTypeHandler javaTypejava.util.List jdbcTypeVARCHAR/ /typeHandlers⑤ 实体类与 Mapper 映射 public class UserGroup {private Long id;TableField(typeHandler ListUserTypeHandler.class)private ListUser users;// getters/setters }!-- UserGroupMapper.xml -- select idselectUserGroup resultTypeUserGroupSELECT * FROM user_group WHERE id #{id} /select四、测试与验证 UserGroup group sqlSession.selectOne(selectUserGroup, 1L); System.out.println(group.getUsers()); // 输出[User{id1, nameAlice, age25}, User{id2, nameBob, age30}]五、总结与扩展 优势 解耦业务与持久化逻辑将类型转换代码集中管理提升可维护性支持复杂场景通过自定义逻辑处理加密数据、多语言字段等特殊需求。 扩展方向 泛型支持抽象通用 JSON TypeHandler通过 TypeReference 适配不同泛型类性能优化针对高频转换类型缓存解析结果减少重复计算。 通过合理使用 TypeHandler开发者可以显著提升 MyBatis 在处理复杂数据类型时的灵活性与代码整洁度是高效 ORM 实践的重要工具。
http://www.w-s-a.com/news/373190/

相关文章:

  • 海城网站制作建设精准营销的营销方式
  • 北京短视频拍摄公司重庆网站seo推广公司
  • 广州免费推广网站建设4399网页游戏大全
  • 网站的构架与组成建站公司兴田德润
  • php网站部署步骤邯郸哪有做网站的
  • 做设计什么设计比较好的网站南充市住房和城乡建设局考试网站
  • 郑州做系统集成的公司网站龙岩
  • 厦门SEO_厦门网站建设网络营销课程视频
  • vs 2015 网站开发开网店在线咨询
  • 前端如何优化网站性能大学学校类网站设计
  • 中国铁路建设投资公司网站熊学军中国it外包公司排名前50
  • 房产网站的建设广州推广排名
  • 湟源县网站建设wordpress删除未分类
  • 营销型网站开发推广厦门百度seo公司
  • 遵义网站开发培训上海中高风险地区名单最新
  • 禹州市门户网站建设做网站可以申请个体户么
  • 大良营销网站建设效果彩票网站搭建 做网站
  • 做网站的公司为什么人少了在中国如何推广外贸平台
  • 盘锦网站制作工业电商网站怎么配色
  • 白云企业网站建设seo排名点击软件
  • wordpress跨站脚本攻击漏洞国外注册的域名国内能用吗
  • 西部数码网站管理助手2工信部资质查询网站
  • 公司网站哪个建的好吉林网站制作
  • 视频网站怎么引流wordpress私人玩物
  • 我的家乡湛江网站设计新钥匙网站建设
  • 辽宁网站推广爱前端wordpress5.0.3主题
  • python怎么做网站贵阳网站制作
  • 深圳网站的优化seo网络推广有哪些
  • 网站建设实习报告范文荆州市城市建设档案馆网站
  • 网站开发信息平台项目总结企业网站如何推广