解决字段名与实体类属性名不相同的冲突

解决字段名与实体类属性名不相同的冲突

<?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.hous.day4.orderMapper">

	<!-- 解决字段名与实体类属性名不相同的冲突 -->
	<!-- 方式一 通过在 sql 语句中定义别名-->
	<select id="getOrder" parameterType="int" resultType="_Order">
		select order_id id, order_name orderName, order_price price
			from orders where order_id=#{id}
	</select>
	
	<!-- 方式二 通过<resultMap>映射-->
	<select id="getAllOrders" resultMap="orderResultMap">
		select order_id, order_name, order_price from orders
	</select>
	
	<resultMap type="_Order" id="orderResultMap">
		<id property="id" column="order_id"/>
		<result property="orderName" column="order_name"/>
		<result property="price" column="order_price"/>
	</resultMap>
	
</mapper>
package com.hous.day4;

import java.io.InputStream;
import java.util.List;
import java.util.Random;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;

public class MyTest {

	private SqlSession session = null;

	@Before
	public void setUp() throws Exception {
		String resource = "day4/config.xml";
		InputStream config = MyTest.class.getClassLoader().getResourceAsStream(resource);
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(config);
		// openSession可以设置为true自动提交,false手工提交
		session = factory.openSession();
	}

	@Test
	public void testGetOrder() {
		String statement = "com.hous.day4.orderMapper.getOrder";
		Order order = session.selectOne(statement, 2);
		System.out.println("查询单个用户" + order.toString());
		session.commit();
		session.close();
	}
	
	@Test
	public void testGetAllOrders() {
		String statement = "com.hous.day4.orderMapper.getAllOrders";
		List<Order> orders = session.selectList(statement);
		System.out.println("查询单个用户" + orders.toString());
		session.commit();
		session.close();
	}

}
create table orders(
	order_id int(6) primary key auto_increment,
	order_name varchar(200),
	order_price float
);
insert into orders(order_name, order_price) values('v8',300),('p9',700),('r6',3200);

猜你喜欢

转载自shuizhongyue.iteye.com/blog/2298198