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]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值