• 之前写的mybatis对象的bean对象和数据库的对象名称是对应的,然而再实际开发的过程有很多不一一对应的情况。就需要解决。
    bean对象:
package com.test.bean;
/** javabean 对象*/
public class order {private int id;private String no;private float price;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getOrderNo() {return no;}public void setOrderNo(String orderNo) {this.no = orderNo;}public float getPrice() {return price;}public void setPrice(float price) {this.price = price;}@Overridepublic String toString() {return "Order [id=" id ", orderNo=" no ", price=" price "]";}
}

而mysql的对象为

再xml中的配置为:


-<mapper namespace="ordermapper"><!-- 根据id查询得到一个order对象,使用这个查询是查询不到我们想要的结果的,这主要是因为实体类的属性名和数据库的字段名对应不上的原因,因此无法查询出对应的记录 --><select resultType="com.test.bean.order" parameterType="int" id="getorderbyid">select * from orders where order_id=#{id} </select><!-- 第一种方法根据id查询得到一个order对象,使用这个查询是可以正常查询到我们想要的结果的,这是因为我们将查询的字段名都起一个和实体类属性名相同的别名,这样实体类的属性名和查询结果中的字段名就可以一一对应上 --><select resultType="com.test.bean.order" parameterType="int" id="getorderbyid2">select order_id id,order_no no,order_price price from orders where order_id=#{id} </select><select parameterType="int" id="getorderbymap" resultMap="orderResultMap">select * from orders where order_id=#{id} </select>-<resultMap id="orderResultMap" type="com.test.bean.order"><!-- 用id属性来映射主键字段 --><id column="order_id" property="id"/><!-- 用result属性来映射非主键字段 --><result column="order_no" property="no"/><result column="order_price" property="price"/></resultMap><!-- 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 --><select id="getUserCount" statementType="CALLABLE" parameterMap="getUserCountMap">CALL mybits.ges_user_count(?,?) </select><!--parameterMap.put("sexid", 0);parameterMap.put("usercount", -1); -->-<parameterMap id="getUserCountMap" type="java.util.Map"><parameter property="sexid" jdbcType="INTEGER" mode="IN"/><parameter property="usercount" jdbcType="INTEGER" mode="OUT"/></parameterMap></mapper>

test实例(先封装一下)

import java.io.InputStream;import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class returnsqlsession {public static SqlSessionFactory getSqlSessionFactory(){String resource="conf.xml";InputStream in=returnsqlsession.class.getClassLoader().getResourceAsStream(resource);SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(in);return factory;}public static SqlSession getSqlSession(){//返回sqlsessionreturn getSqlSessionFactory().openSession(); }/*** 获取SqlSession* @param isAutoCommit * true 表示创建的SqlSession对象在执行完SQL之后会自动提交事务* false 表示创建的SqlSession对象在执行完SQL之后不会自动提交事务,这时就需要我们手动调用sqlSession.commit()提交事务* @return SqlSession*/public static SqlSession getSqlSession(boolean isAutoCommit) {return getSqlSessionFactory().openSession(isAutoCommit);}
}
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;import org.apache.ibatis.session.SqlSession;import com.test.bean.order;public class test1 {public static void testselect1() throws IOException{SqlSession sqlsession=returnsqlsession.getsqlsession(true);//String statement="ordermapper.getorderbyid1";//String statement="ordermapper.getorderbyid2";String statement="ordermapper.getorderbymap";order order=sqlsession.selectOne(statement, 2);sqlsession.close();System.out.println(order);}public static void main(String[] args) throws IOException {// TODO Auto-generated method stubtestselect1();   }
}

两种基本的解决方式,如果用到的较少,可以选择第一种,如果用到较多较复杂,可以选择第二种。

mybatis学习笔记(3)—数据库和bean名称不一样处理方案相关推荐

  1. Mybatis学习笔记(二) 之实现数据库的增删改查

    开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...

  2. mybatis学习笔记(3)-入门程序一

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(3)-入门程序一 标签: mybatis [TOC] 工程结构 在IDEA中新建了一个普通的java项 ...

  3. 超详细Mybatis学习笔记(可供下载)

    文章目录 1.简介 2.第一个Mybatis程序 搭建环境 编写代码 测试 3.CRUD(增删改查) 3.1.几个属性 3.2.select 3.3.insert 3.4.delete 3.5.upd ...

  4. Mybatis学习笔记【part03】增删改查

    Mybatis 学习笔记 Part03 1.传入参数与返回参数设置(查) <!-- 根据 id 查询 --> <select id="findById" resu ...

  5. [MyBatis学习笔记] 二、Mybatis基本操作及相关标签介绍

    [MyBatis学习笔记] 二.Mybatis基本操作及相关标签介绍 一.Mybatis简介 二.简单的CRUD操作 1.构建SqlSessionFactory (1)编辑mybatis-config ...

  6. MyBatis学习笔记(二)根据配置文件优化

    上一篇:MyBatis学习笔记(一)完整查询数据库流程+增删改查 mybatis_config.xml文件中可以包含以下部分 本文接下来的优化都是针对于mybatis_config.xml文件,并且每 ...

  7. mybatis学习笔记(13)-延迟加载

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用asso ...

  8. mybatis学习笔记--常见的错误

    原文来自:<mybatis学习笔记--常见的错误> 昨天刚学了下mybatis,用的是3.2.2的版本,在使用过程中遇到了些小问题,现总结如下,会不断更新. 1.没有在configurat ...

  9. mybatis学习笔记(1)-对原生jdbc程序中的问题总结

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(1)-对原生jdbc程序中的问题总结 标签:mybatis [TOC] 本文总结jdbc编程的一般步骤 ...

最新文章

  1. C# in depth 阅读笔记-- 委托
  2. excel合并计算_【Excel】合并计算和模拟分析的应用
  3. getvalue参数计数不匹配_OpenCV开发笔记(六十八):红胖子8分钟带你使用特征点Flann最邻近差值匹配识别...
  4. 【JEECG技术文档】表单配置-树形表单
  5. vue cli脚手架详解_vue-cli脚手架搭建vue项目搭建
  6. 动态创建form传参
  7. Lync 小技巧-14-为用户启用统一的联系人存储库-Lync-无联系人
  8. PCB中 D-Subminiature(DB接口) 连接器系列分类及带有3D封装绘制
  9. c++中struct构造函数
  10. Python列表基础--仅index()获取元素全部索引
  11. 蓝叠模拟器的adb程序位置
  12. [转]多普达818、828+升级中文WM6.1及必装软件全过程讲解
  13. TF卡里删掉文件后内存没变大_双11,TF卡,SD卡,读卡器如何选,看这篇就够了...
  14. 决定迭代次数的两种效应
  15. ffmpeg安装教程(支持10bit编码)
  16. MonkeyEye电影售票系统--活动图
  17. linux下打补丁和生成补丁
  18. 测试新版Android Studio的手机镜像效果
  19. linux相关函数,linux相关常用函数参考
  20. OpenBlas API整理

热门文章

  1. Kubernetes中部署Docker registry2.7.1并通过containerd实现拉取镜像到应用Pod的部署
  2. 【Python翻屏软件】英文1秒翻,水准堪比专九,这下考级有救了。
  3. buuctf 二维码
  4. [专题目录]-CA/TA development导读目录
  5. 剖析boot.img的制作流程
  6. 网络适配器有感叹号不能上网_笔记本电脑显示无internet安全,不能无线上网怎么办...
  7. printf()详解
  8. 1125 Chain the Ropes (25 分)【难度: 一般 / 贪心 哈夫曼树】
  9. Shell中常用的系统函数basename和dirname
  10. uni-app小程序v-show内容始终不显示