在实际开发中,字段名与实体类属性名不相同的问题,本章主要看一下解决方法
主要看第3个步骤中的操作说明,观察resultMap配置前后的结果
1、环境准备,建表
2、创建Pojo实体类,属性与数据库表中的column不一致
package nh.ui.automation.tools.Mybaits; /** * 项目 :UI自动化测试 Mybaits 类描述: * * @author Eric * @date 2017年3月4日 nh.ui.automation.tools.Mybaits */ public class Order { private int id; private String orderNo; private float price; /** * */ public Order() { super(); } /** * @param id * @param orderNo * @param price */ public Order(int id, String orderNo, float price) { super(); this.id = id; this.orderNo = orderNo; this.price = price; } /** * @return the id */ public int getId() { return id; } /** * @param id * the id to set */ public void setId(int id) { this.id = id; } /** * @return the orderNo */ public String getOrderNo() { return orderNo; } /** * @param orderNo * the orderNo to set */ public void setOrderNo(String orderNo) { this.orderNo = orderNo; } /** * @return the price */ public float getPrice() { return price; } /** * @param price * the price to set */ public void setPrice(float price) { this.price = price; } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { return "Order [id=" + id + ", orderNo=" + orderNo + ", price=" + price + "]"; } }
3、创建mapper文件
<?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="nh.ui.automation.tools.Mybaits.Order.orderMapper"> <select id="getOrder" parameterType="int" resultType="nh.ui.automation.tools.Mybaits.Order"> select * from orders where id=#{id} </select> <insert id="addOrder" parameterType="nh.ui.automation.tools.Mybaits.Order"> insert into orders(order_no,order_price) values(#{orderNo},#{price}) </insert> <select id="getAllOrder" resultType="nh.ui.automation.tools.Mybaits.Order" resultMap="orderResultMap"> select * from orders </select>
//第一次测试代码时可以不引用resultMap,观察执行结果。 <resultMap type="nh.ui.automation.tools.Mybaits.Order" id="orderResultMap"> <id property="id" column="id" /> <result property="orderNo" column="order_no" /> <result property="price" column="order_price" /> </resultMap> </mapper>
4、在Mybaits配置文件中注册orderMapper文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties resource="db.properties"></properties> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${db.driver}" /> <property name="url" value="${db.url}" /> <property name="username" value="${db.username}" /> <property name="password" value="${db.password}" /> </dataSource> </environment> </environments> <mappers> <mapper resource="Mappings/userMapper.xml"/> <mapper resource="Mappings/orderMapper.xml"/> <mapper class="nh.ui.automation.tools.mapper.UserMapper" /> </mappers> </configuration>
5、测试代码
String statement = "nh.ui.automation.tools.Mybaits.Order.orderMapper.getOrder"; Order order1 = sqlSession.selectOne(statement,1); System.out.println(order1); String statement1 = "nh.ui.automation.tools.Mybaits.Order.orderMapper.addOrder"; int insert = sqlSession.insert(statement1,new Order(1,"dsf",11)); System.out.println(insert); String statement2 = "nh.ui.automation.tools.Mybaits.Order.orderMapper.getAllOrder"; List<Object> selectList = sqlSession.selectList(statement2); System.out.println(selectList);