Springboot整合Mybatis使用TypeHandler来转换数据库中的数据
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Springboot整合Mybatis使用TypeHandler来转换数据库中的数据,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3096字,纯文字阅读大概需要5分钟。
内容图文
![Springboot整合Mybatis使用TypeHandler来转换数据库中的数据](/upload/InfoBanner/zyjiaocheng/505/cff267048c314449bd6614116d083543.jpg)
一、数据库中的数据定义
这里的user_state和user_priority表示了一些状态信息(范围是整数0~5),接下来我们要将这个转化为枚举型
二、创建枚举Enum类
以User_state为例:
package com.snapshot2.demo.enumeration; public enum UserStateEnum { NORMAL(0,"正常状态"), FROZEN(1,"冻结"), BAN(2,"禁用"), MUTE(3,"禁言"), SENSITIVE(4,"敏感用户"), DYF(5,"这是创作者董一帆的"); private int stateCode; private String stateString; public static UserStateEnum getUserStateByCode(int stateCode){ for (UserStateEnum stateEnum: values()){ if(stateEnum.getStateCode() == stateCode){ return stateEnum; } } return null; } /* Constructor */ UserStateEnum(int stateCode, String stateString) { this.stateCode = stateCode; this.stateString = stateString; } /* Getter and Setter */ public int getStateCode() { return stateCode; } public void setStateCode(int stateCode) { this.stateCode = stateCode; } public String getStateString() { return stateString; } public void setStateString(String stateString) { this.stateString = stateString; } }
三、创建相应得TypeHandler类,继承于BaseTypeHandler<T>类,并重写相应得方法
1.这里的<T>是我们指定转化的类型
2.@MappedJdbcTypes注解声明数据库中对应数据类型
3.@MappedTypes(value = UserStateEnum.class)声明转化后的类型
package com.snapshot2.demo.typehandler; import com.snapshot2.demo.enumeration.UserStateEnum; import org.apache.ibatis.type.BaseTypeHandler; import org.apache.ibatis.type.JdbcType; import org.apache.ibatis.type.MappedJdbcTypes; import org.apache.ibatis.type.MappedTypes; import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /* 数据库中的数据类型 */ @MappedJdbcTypes(JdbcType.INTEGER) /* 转化后的数据类型 */ @MappedTypes(value = UserStateEnum.class) public class UserStateTypeHandler extends BaseTypeHandler<UserStateEnum> { @Override public void setNonNullParameter(PreparedStatement preparedStatement, int i, UserStateEnum userStateEnum, JdbcType jdbcType) throws SQLException { preparedStatement.setInt(i,userStateEnum.getStateCode()); } @Override public UserStateEnum getNullableResult(ResultSet resultSet, String s) throws SQLException { int code =resultSet.getInt(s); if(code>=0&&code<=5){ return UserStateEnum.getUserStateByCode(code); } return null; } @Override public UserStateEnum getNullableResult(ResultSet resultSet, int i) throws SQLException { int code = resultSet.getInt(i); if(code>=0&&code<=5){ return UserStateEnum.getUserStateByCode(code); } return null; } @Override public UserStateEnum getNullableResult(CallableStatement callableStatement, int i) throws SQLException { int code = callableStatement.getInt(i); if(code>=0&&code<=5){ return UserStateEnum.getUserStateByCode(code); } return null; } }
四、最后在application.properties配置文件中springboot指定TypeHandler所在的包
mybatis.type-handlers-package=com.snapshot2.demo.typehandler
Springboot整合Mybatis使用TypeHandler来转换数据库中的数据
标签:handle extends resultset null pre apache 信息 struct 转换
本文系统来源:https://www.cnblogs.com/dyf-stu/p/10162301.html
内容总结
以上是互联网集市为您收集整理的Springboot整合Mybatis使用TypeHandler来转换数据库中的数据全部内容,希望文章能够帮你解决Springboot整合Mybatis使用TypeHandler来转换数据库中的数据所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。