Mybatis快速上手2 字段名和属性名不一致问题
其他章节及开发包:https://blog.csdn.net/XIMAX/article/details/106255196
环境 :Eclipse+Tomcat9+JDK10+Mybatis-3.1.1、Navicat
test1~8分别对应八章,本章使用包test2、tool,文件config.xml、db.properties、log4j.properties
代码
建库,建表
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);
config.xml
<?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>
<typeAliases>
<package name="com.rjxy.test2"/>
<typeAliases>
<typeAliases>
<package name="com.rjxy.test2"/>
<typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/rjxy/test2/userMapper.xml"/>
<mappers>
</configuration>
userMapper.xml
<?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.rjxy.test2.userMapper">
<!--属性字段名不一致问题第一种方法 sql起别名方式 -->
<select id="selectOrder" parameterType="int" resultType="Order">
select order_id id, order_no orderNo,order_price price from orders where order_id=#{id}
</select>
<!--属性字段名不一致问题第二种方法 resultMap方式-->
<select id="selectOrderResultMap" parameterType="int" resultMap="orderResultMap">
select * from orders where order_id=#{id}
</select>
<resultMap type="Order" id="orderResultMap">
<id property="id" column="order_id"/>
<result property="orderNo" column="order_no"/>
<result property="price" column="order_price"/>
</resultMap>
</mapper>
Order.java
package com.rjxy.test2;
public class Order {
private int id;
private String orderNo;
private float price;
public Order() {
super();
}
public Order(int id,String orderNo, float price) {
super();
this.id = id;
this.orderNo = orderNo;
this.price = price;
}
//省略 set 、get 及toString方法
}
JTest.java
package com.rjxy.test2;
import java.io.IOException;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.jupiter.api.Test;
import com.rjxy.tool.MybatisUtils;
class JTest {
@Test
public void test() throws IOException {
SqlSessionFactory factory = MybatisUtils.getFactory();
SqlSession session = factory.openSession();
String statement = "com.rjxy.test2.userMapper.selectOrder";
Order order = session.selectOne(statement,2);
System.out.println(order);
}
@Test
public void test2() throws IOException {
SqlSessionFactory factory = MybatisUtils.getFactory();
SqlSession session = factory.openSession();
String statement = "com.rjxy.test2.userMapper.selectOrderResultMap";
Order order = session.selectOne(statement,2);
System.out.println("------------------");
System.out.println(order);
}
}
其它
其它文件与该系列第一篇相同 链接: https://blog.csdn.net/XIMAX/article/details/106244701
结果
2020-05-20 23:04:18,204 [main] DEBUG [com.rjxy.test2.userMapper.selectOrder] - ooo Using Connection [com.mysql.cj.jdbc.ConnectionImpl@37b70343]
2020-05-20 23:04:18,204 [main] DEBUG [com.rjxy.test2.userMapper.selectOrder] - ==> Preparing: select order_id id, order_no orderNo,order_price price from orders where order_id=?
2020-05-20 23:04:18,304 [main] DEBUG [com.rjxy.test2.userMapper.selectOrder] - ==> Parameters: 2(Integer)
Order [id=2, orderNo=bbbb, price=33.0]
2020-05-20 23:04:18,726 [main] DEBUG [com.rjxy.test2.userMapper.selectOrderResultMap] - ooo Using Connection [com.mysql.cj.jdbc.ConnectionImpl@25ddbbbb]
2020-05-20 23:04:18,726 [main] DEBUG [com.rjxy.test2.userMapper.selectOrderResultMap] - ==> Preparing: select * from orders where order_id=?
2020-05-20 23:04:18,726 [main] DEBUG [com.rjxy.test2.userMapper.selectOrderResultMap] - ==> Parameters: 2(Integer)
------------------
Order [id=2, orderNo=bbbb, price=33.0]