Mybatis 实体类和表字段不一致解决方案
来源:互联网 发布:调用外部js文件 编辑:程序博客网 时间:2024/05/23 13:39
http://www.cnblogs.com/xdp-gacl/p/4264425.html
使用MyBatis进行查询操作时无法查询出相应的结果的问题以及针对问题采用的两种办法:
解决办法一: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致,这样就可以表的字段名和实体类的属性名一一对应上了,这种方式是通过在sql语句中定义别名来解决字段名和属性名的映射关系的。
解决办法二: 通过来映射字段名和实体类属性名的一一对应关系。这种方式是使用MyBatis提供的解决方式来解决字段名和属性名的映射关系的。
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的例如namespace="me.gacl.mapping.orderMapper"就是me.gacl.mapping(包名)+orderMapper(orderMapper.xml文件去除后缀) --><mapper namespace="me.gacl.mapping.orderMapper"> <!-- 根据id查询得到一个order对象,使用这个查询是查询不到我们想要的结果的, 这主要是因为实体类的属性名和数据库的字段名对应不上的原因,因此无法查询出对应的记录 --> <select id="getOrderById" parameterType="int" resultType="me.gacl.domain.Order"> select * from orders where order_id=#{id} </select> <!-- 根据id查询得到一个order对象,使用这个查询是可以正常查询到我们想要的结果的, 这是因为我们将查询的字段名都起一个和实体类属性名相同的别名,这样实体类的属性名和查询结果中的字段名就可以一一对应上 --> <select id="selectOrder" parameterType="int" resultType="me.gacl.domain.Order"> select order_id id, order_no orderNo,order_price price from orders where order_id=#{id} </select> <!-- 根据id查询得到一个order对象,使用这个查询是可以正常查询到我们想要的结果的, 这是因为我们通过<resultMap>映射实体类属性名和表的字段名一一对应关系 --> <select id="selectOrderResultMap" parameterType="int" resultMap="orderResultMap"> select * from orders where order_id=#{id} </select> <!--通过<resultMap>映射实体类属性名和表的字段名对应关系 --> <resultMap type="me.gacl.domain.Order" id="orderResultMap"> <!-- 用id属性来映射主键字段 --> <id property="id" column="order_id"/> <!-- 用result属性来映射非主键字段 --> <result property="orderNo" column="order_no"/> <result property="price" column="order_price"/> </resultMap></mapper>
阅读全文
0 0
- Mybatis 实体类和表字段不一致解决方案
- MyBatis解决Java实体类和表字段不一致方法
- MyBatis由浅入深学习总结之二:MyBatis解决Java实体类和数据库表字段不一致方法总结
- MyBatis由浅入深学习总结之二:MyBatis解决Java实体类和数据库表字段不一致方法总结
- MyBatis由浅入深学习总结之二:MyBatis解决Java实体类和数据库表字段不一致方法总结
- MyBatis之实体类属性与表字段不一致的处理
- Mybatis属性和数据库表字段不一致处理
- Mybatis框架实体类字段与数据库表字段不一致导致查询该字段的值一直为null
- mybatis返回插入的id以及类属性和表字段不一致问题
- MyBatis 笔记(四)——实体类属性和表字段的映射
- 表字段名和实体类属性名不一致的处理
- MyBatis学习笔记:表字段名与实体类属性名不一致的解决方法
- 数据库表字段 实体类字段 命名不匹配
- 数据库的表字段自动转换为java实体类
- JPA设置表名和实体名,表字段与实体字段的对应
- 增加其它表字段解决方案
- Mybatis总结(3)--之数据库字段名和实体类属性名不一致
- 解决mybatis generator生成实体类和数据库字段名不一致
- 同样的sql语句在数据库中能查出结果,但是在java项目中,查不出来
- QT实现一个 “扯淡Universe” 单机问答系统,构建一个允许用户分享知识的平台
- 【面试】HTTP中get和post请求的区别
- 监听器、过滤器、拦截器的启动顺序
- rfid破解 BLE Hacking
- Mybatis 实体类和表字段不一致解决方案
- StringUtils.hasText(字符串)的作用
- MySQL之权限管理(mysql.user表详解)
- Python input 格式化输出
- 绿盟面试题
- JDK和JRE的区别
- 【Solidity】注意事项
- 最新版本sublime的注册码
- 内存按字节编址,地址从A4000H到CBFFFH,共有多少个字