Mybatis学习笔记-解决字段名与实体类属性名不相同的冲突
2017-10-12 08:18
351 查看
实际的开发过程中,数据库表字段不一定与实体类中的属性一一对应,这样的话在使用Mybatis开发过程中就必须解决字段名与属性名不一致的冲突,否则Mybatis框架在底层进行数据处理时会出现异常。
项目源码
项目结构
项目源码
创建测试表和数据
CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT ); INSERT INTO orders(order_no, order_price) VALUES('aaaa', 23); INSERT INTO orders(order_no, order_price) VALUES('bbbb', 33); INSERT INTO orders(order_no, order_price) VALUES('cccc', 22);
定义实体类
package com.taowd.mybatis.entry; public class Orders { private String id; private String no; private String price; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getNo() { return no; } public void setNo(String no) { this.no = no; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } }
解决冲突的方案1:通过在sql语句中定义别名
<?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="mapper.ordersMapper"> <!-- 根据id查询得到一个Orders对象 --> <select id="selectOrder" parameterType="int" resultType="_Orders"> select order_id id, order_no no,order_price price from orders where order_id=#{id} </select> </mapper>
解决冲突的方案2:使用resultMap进行映射
<!-- 解决方案2:使用resultMap进行映射 --> <select id="selectOrderResultMap" parameterType="int" resultMap="orderResultMap"> select * from orders where order_id=#{id} </select> <resultMap type="_Orders" id="orderResultMap"> <id property="id" column="order_id" /> <result property="no" column="order_no" /> <result property="price" column="order_price" /> </resultMap>
测试结果
相关文章推荐
- mybatis学习笔记(三) --- 解决字段名与实体类属性名不相同的冲突
- 【Mybatis学习总结三】Mybatis种解决字段名与实体类属性名不相同的冲突
- MyBatis入门学习教程-解决字段名与实体类属性名不相同的冲突
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- MyBatis学习教程(四)-如何快速解决字段名与实体类属性名不相同的冲突问题
- MyBatis学习总结4--解决字段名与实体类属性名不相同的冲突
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- MyBatis学习总结_04_解决字段名与实体类属性名不相同的冲突
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- 【转】MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- MyBatis学习总结(4)——解决字段名与实体类属性名不相同的冲突
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- MyBatis学习总结(四)——解决字段名是实体类属性名不相同冲突
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突