mybatis框架下解决数据库中表的列的字段名和实体类属性不相同的问题

导包。。。。

实体类中的属性,getter,setter,tostring,构造等方法就不写了

private int id;
private String orderNo;
private float price;

数据库中表的字段名:

order_id INT PRIMARY KEY AUTO_INCREMENT,
order_no VARCHAR(20),
order_price FLOAT

src下的conf.xml文件中解决,有两种方法,一种方法是在sql语句中写入别名,另一种方法是使用<resultMap>这个标签

<?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="com.atguigu.mybatis.test1.orderMapper">
<!-- 解决字段名和实体类属性不相同的问题 --> <!-- 方法一:sql语句中加入别名 -->
<select id="getOrder" resultType="Order">
select order_id id,order_no orderNo,order_price price from orders where order_id=#{id}
</select> <!-- 方法二:通过<resultMap> ,需要注意的是 resultMap属性值 和 resultMap标签中id属性值相等
resultMap标签中的 id为数据表中主键的属性,result为其他属性,property为实体类属性名,column为数据表中的属性
-->
<select id="getOrder2" parameterType="int" resultMap="getOrder2Map">
select * from orders where order_id=#{id}
</select> <resultMap type="Order" id="getOrder2Map">
<id property="id" column="order_id"/>
<result property="orderNo" column="order_no"/>
<result property="price" column="order_price"/>
</resultMap> </mapper>
上一篇:横向技术分析C#、C++和Java优劣


下一篇:[随笔]_ELVE_git命令复习