mybatis jdbc java 字段类型转换

本文探讨了在Spring MVC和MyBatis整合的项目中,遇到的MySQL数据库字段类型与Java对象之间的转换问题,主要涉及数据表结构、XML配置以及可能的解决方案。
摘要由CSDN通过智能技术生成

在 spring mvc + mybatis + mysql

数据表

CREATE TABLE `test_jdbc_java_type` (
  `id` int(11) NOT NULL,
  `_char` char(50) DEFAULT NULL,
  `_varchar` varchar(200) DEFAULT NULL,
  `_numeric` decimal(10,2) DEFAULT NULL,
  `_decimal` decimal(10,2) DEFAULT NULL,
  `_bit` bit(1) DEFAULT NULL,
  `_tinyint` tinyint(4) DEFAULT NULL,
  `_smallint` smallint(6) DEFAULT NULL,
  `_integer` int(11) DEFAULT NULL,
  `_bigint` bigint(20) DEFAULT NULL,
  `_real` double DEFAULT NULL,
  `_float` float DEFAULT NULL,
  `_double` double DEFAULT NULL,
  `_binary` binary(255) DEFAULT NULL,
  `_varbinary` varbinary(255) DEFAULT NULL,
  `_date` date DEFAULT NULL,
  `_time` time DEFAULT NULL,
  `_timestamp` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `_blob` blob,
  PRIMARY KEY (`
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis-Plus 对于 SQL Server 的 XML 类型的处理需要特殊的配置。具体步骤如下: 1. 在 pom.xml 文件添加对 SQL Server 驱动的依赖: ```xml <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>${sqlserver.version}</version> </dependency> ``` 2. 在 mybatis-plus 的配置文件添加对 SQL Server 数据库方言的配置,如下所示: ```xml <bean id="mybatisPlusConfig" class="com.baomidou.mybatisplus.core.MybatisConfiguration"> <property name="mapUnderscoreToCamelCase" value="true"/> <property name="databaseIdProvider" ref="databaseIdProvider"/> <property name="dbConfig" ref="dbConfig"/> <property name="sqlParserConfig" ref="sqlParserConfig"/> <property name="typeHandlersPackage" value="com.baomidou.mybatisplus.extension.handlers"/> <property name="dialect" value="sqlserver"/> </bean> ``` 3. 定义一个 TypeHandler,用于将 XML 类型的数据换为字符串类型的数据,如下所示: ```java import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.SQLXML; import org.apache.ibatis.type.BaseTypeHandler; import org.apache.ibatis.type.JdbcType; public class SqlServerXmlTypeHandler extends BaseTypeHandler<String> { @Override public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException { SQLXML xml = ps.getConnection().createSQLXML(); xml.setString(parameter); ps.setSQLXML(i, xml); } @Override public String getNullableResult(ResultSet rs, String columnName) throws SQLException { SQLXML xml = rs.getSQLXML(columnName); if (xml == null) { return null; } return xml.getString(); } @Override public String getNullableResult(ResultSet rs, int columnIndex) throws SQLException { SQLXML xml = rs.getSQLXML(columnIndex); if (xml == null) { return null; } return xml.getString(); } @Override public String getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { SQLXML xml = cs.getSQLXML(columnIndex); if (xml == null) { return null; } return xml.getString(); } } ``` 4. 在 mybatis-plus 的配置文件注册该 TypeHandler,如下所示: ```xml <bean id="dbConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig.DbConfig"> <property name="typeHandler"> <util:list> <bean class="com.xxx.SqlServerXmlTypeHandler"/> </util:list> </property> </bean> ``` 完成以上配置后,就可以在 Mybatis-Plus 使用 XML 类型了。例如,查询 XML 类型的字段: ```java List<User> userList = userMapper.selectList(new QueryWrapper<User>() .lambda() .select(User::getId, User::getName, User::getXmlContent) .eq(User::getId, 1)); for (User user : userList) { String xmlContent = user.getXmlContent(); // 处理 XML 类型的数据 } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值