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

1 准备表和数据

  1. CREATE TABLE orders(
  2. order_id INT PRIMARY KEY AUTO_INCREMENT,
  3. order_no VARCHAR(20),
  4. order_price FLOAT
  5. );
  6. INSERT INTO orders(order_no, order_price) VALUES(‘aaaa‘, 23);
  7. INSERT INTO orders(order_no, order_price) VALUES(‘bbbb‘, 33);
  8. INSERT INTO orders(order_no, order_price) VALUES(‘cccc‘, 22);

2 定义实体类:表的字段和实体的属性不一致

  1. public class Order {
  2. private int id;
  3. private String orderNo;
  4. private float price;
  5. }

3 解决方法

3.1 通过查询的别名

  1. <!-- 通过查询字段的别名来对应 -->
  2. <select id="getOrder" parameterType="int" resultType="Order">
  3. SELECT order_id id, order_no orderNo, order_price price FROM orders WHERE order_id=#{id}
  4. </select>

测试

  1. @Test
  2. public void test1(){
  3. SqlSessionFactory factory = MybatisUtils.getFactory();
  4. SqlSession session = factory.openSession();
  5. String statement = "cn.imentors.mybatis.test4.orderMapper.getOrder";
  6. Order order = session.selectOne(statement , 2);
  7. System.out.println(order);
  8. }

3.2 通过resultMap

  1. <resultMap type="Order" id="getOrder2Map">
  2. <id property="id" column="order_id"/>
  3. <result property="orderNo" column="order_no"/>
  4. <result property="price" column="order_price"/>
  5. </resultMap>
  6. <select id="getOrder2" parameterType="int" resultMap="getOrder2Map">
  7. SELECT * FROM orders WHERE order_id=#{id}
  8. </select>
  • resultMap : 封装一些映射关系
  • id : 专门针对主键
  • result : 针对一般字段

测试

  1. @Test
  2. public void test2(){
  3. SqlSessionFactory factory = MybatisUtils.getFactory();
  4. SqlSession session = factory.openSession();
  5. String statement = "cn.imentors.mybatis.test4.orderMapper.getOrder2";
  6. Order order = session.selectOne(statement , 2);
  7. System.out.println(order);
  8. }

捐赠我们
    良师益友工作室一直在致力于帮助编程爱好更加快速方便地学习编程,如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。

时间: 2024-10-12 08:50:40

04_解决字段名与实体类属性名不相同的冲突的相关文章

MyBatis学习总结_04_解决字段名与实体类属性名不相同的冲突

一.准备演示需要使用的表和数据 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); INSER

MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突

在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突. 一.准备演示需要使用的表和数据 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'

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

原文:http://www.cnblogs.com/xdp-gacl/p/4264425.html 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突. 一.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT ); INSER

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

在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突. 一.准备演示需要使用的表和数据 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'

myBatis-- 字段名与实体类属性名冲突解决办法

一.创建订单表 order_id         order_name          order_price 1                        苹果                      6.5 2                        香蕉                        3 3.                       桔子                         2 二.定义实体类 public Order { private In

尚硅谷-mybatis-解决字段名与实体类属性名不相同的冲突

项目结构: 准备表和数据: 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

MyBatis学习总结4--解决字段名与实体类属性名不相同的冲突

在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定是完全相同的,如果直接在xml映射文件中使用sql进行映射,会造成返回值为空的情况,下面阐述解决方案: 测试所用表和数据 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('aaa

KO ------- 表中字段名和实体类属性名不一致

-----------------------siwuxie095 KO ------- 表中字段名和实体类属性名不一致 如果数据库表中的字段名和实体类的属性名不一致,那么在查询时, 相应字段的结果就会为空 (一)问题复现 1.先创建数据库 mybatis_db, 再创建表 t_user,并插入若干数据 注意:user_id 为主键,且为自动增长 2.创建实体类 User.java: package com.siwuxie095.entity; // 实体类 public class User

Mybatis学习二(字段名与实体类属性名不相同/关联查询)

1.在写项目的时候会遇到数据库字段名与实体类属性名不同的情况,可能是为了方便也可能是其他要求,whatever,我们现在来解决这个问题 准备一个数据库表如下 1 CREATE TABLE orders( 2 order_id INT PRIMARY KEY AUTO_INCREMENT, 3 order_no VARCHAR(20), 4 order_price FLOAT 5 ); 接下类定义一个实体类 1 public class Order { 2 private int id; 3 pr