解决字段名与实体类属性名不相同的冲突
<?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);