解决方式way1:resultMap

(1)studentMapper.xml

  1. <!-- 当数据库的字段名 和 类的属性名 不一致的时候的解决方式:2种 way1-->
  2. <select id="selectOneNotPipeiWay1" resultMap="aaa" parameterType="int">
  3. select * from student where id = #{id}
  4. </select>
  5. <resultMap id="aaa" type="susu.demo.Student">
  6. <result property="grade" column="gradenews"/><!-- property: 类的属性名 column:数据库的字段名 -->
  7. </resultMap>

  

(2)studentManager.java动态代理接口(接口中的方法默认都是public  abstract ,可以不写)

  1. //数据库的字段名 和 类的属性名不一致的时候 的解决方式之一
  2. Student selectOneNotPipeiWay1(int id);

  (3)测试方法

  1. /**
  2. * column 和 property不匹配的时候的解决方式之一: resultMap
  3. */
  4. public static void notPipeiWay01() throws IOException
  5. {
  6. Reader reader = Resources.getResourceAsReader("conf.xml");
  7.  
  8. SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
  9.  
  10. SqlSession session = sessionFactory.openSession();//就是session名字即可
  11.  
  12. StudentManager studentManager = session.getMapper(StudentManager.class);
  13. Student s = studentManager.selectOneNotPipeiWay1(2);
  14.  
  15. System.out.println(s.toString());
  16. session.close();
  17.  
  18. }//notPipeiWay01()

  

解决方式way2:resultType+HashMap

(1)studentMapper.xml

  1. <!-- way2 -->
  2. <select id="selectOneNotPipeiWay2" resultType="susu.demo.Student" parameterType="int">
  3. select id, gradenews "grade" from student where id = #{id}
  4. </select>

  

(2)studentManager.java动态代理接口(接口中的方法默认都是public  abstract ,可以不写)

  1. //数据库的字段名 和 类的属性名不一致的时候 的解决方式之二
  2. Student selectOneNotPipeiWay2(int id);

  

  (3)测试方法

  1. /**
  2. * column 和 property不匹配的时候的解决方式之二: resultType+HashMap
  3. */
  4. public static void notPipeiWay02() throws IOException
  5. {
  6. Reader reader = Resources.getResourceAsReader("conf.xml");
  7.  
  8. SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
  9.  
  10. SqlSession session = sessionFactory.openSession();//就是session名字即可
  11.  
  12. StudentManager studentManager = session.getMapper(StudentManager.class);
  13. Student s = studentManager.selectOneNotPipeiWay2(1);
  14.  
  15. System.out.println(s.toString());
  16. session.close();
  17.  
  18. }//notPipeiWay02()

解决mybatis中 数据库column 和 类的属性名property 不一致的两种方式的更多相关文章

  1. [Android]解决3gwap联网失败:联网请求在设置代理与直连两种方式的切换

    [Android]解决3gwap联网失败:联网请求在设置代理与直连两种方式的切换 问题现象: 碰到一个问题,UI交互表现为:联通号码在3gwap网络环境下资源一直无法下载成功. 查看Log日志,打印出 ...

  2. 解决layui表单ajax提交回调函数不起作用问题的两种方式

    最近想用layui开发一个论坛模板用的是fly-ui,才接触layui对其还不太熟悉.一个简单的登录就困扰了我很久.登录的form通过ajax提交回调函数老是不起作用.经过浪费了N多时间的调试,发现l ...

  3. SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法

    软件152 尹以操 首先谢谢大佬的简书文章:http://www.jianshu.com/p/45ad65690e33# 这篇文章中讲的是spring中使用spring data jpa,使用了xml ...

  4. K:java中序列化的两种方式—Serializable或Externalizable

    在java中,对一个对象进行序列化操作,其有如下两种方式: 第一种: 通过实现java.io.Serializable接口,该接口是一个标志接口,其没有任何抽象方法需要进行重写,实现了Serializ ...

  5. MyBatis中---数据库配置的属性名冲突问题

    一.db.properties 属性文件中 最好加特殊的标志前缀  jdbc.username ,如果单纯的username有可能影响到 mapper.xml中的 ${username}; 举例   ...

  6. 解决mybatis中转义字符的问题

    xml格式中不允许出现类似“>”这样的字符,有如下两种解决方法 方法一:使用转义字符 SELECT * FROM test WHERE 1 = 1 AND start_date <= CU ...

  7. 在springboot中使用Mybatis Generator的两种方式

    介绍 Mybatis Generator(MBG)是Mybatis的一个代码生成工具.MBG解决了对数据库操作有最大影响的一些CRUD操作,很大程度上提升开发效率.如果需要联合查询仍然需要手写sql. ...

  8. ibernate学习笔记5---实体类或属性名与数据库关键字冲突、hql命名参数、hql实现通用分页

    一.实体类或属性名与数据库关键字冲突问题1.实体类名与数据库中的关键字冲突比如:实体表User与oracle中的系统表冲突解决方式1:在xml中添加table属性,指定表名,使其不与name默认相等 ...

  9. .Net 中读写Oracle数据库常用两种方式

    .net中连接Oracle 的两种方式:OracleClient,OleDb转载 2015年04月24日 00:00:24 10820.Net 中读写Oracle数据库常用两种方式:OracleCli ...

随机推荐

  1. C语言-查找一个元素在数组中的位置

    #include<stdio.h> #include <stdlib.h> #include <time.h> int search(int key, int a[ ...

  2. 安装VMworkstation和Centos虚拟机

    1.安装VMware workstation. 2.下一步. 3.可以选择安装位置,下面选项不选. 4.这两个选项不需要选. 5.下一步 6.安装 7. 8.点击许可证输入密钥,密钥在网上搜,然后就完 ...

  3. MySQL基础(五)常见运算符

    MySQL常见运算符 运算符连接表达式中各个操作数,其作用是用来指明对操作数所进行的运算.常见的运算有数学计算.比较运算.位运算以及逻辑运算.运用运算符可以更加灵活地使用表中的数据,常见的运算符类型有 ...

  4. Ubuntu Qt5.13 无法输入中文和中文显示乱码问题

    无法输入中文: sudo apt-get install libfcitx-qt5-dev cd /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminput ...

  5. Redis原理篇

    Redis原理篇 1.发布 订阅模式 1.1列表 的局限 ​ 前面我们说通过队列的 rpush 和 lpop 可以实现消息队列(队尾进队头出),但是消费者需要不停地调用 lpop 查看 List 中是 ...

  6. Display 1 No cameras rendering

    解决: 点击Main Camera ,

  7. Circle Problem From 3Blue1Brown (分圆问题)

    Background\text{Background}Background Last night, lots of students from primary school came to our c ...

  8. SpringBoot 2.0整合阿里云OSS,实现动静分离架构

    前言 相信大部分开发者对下面这张架构图并不陌生吧,现在很多网站/应用都采用了动静分离的架构进行部署.博主的博客也不例外,主机采用的是阿里云的 ECS,使用 CDN 做静态内容分发,不过静态文件还是存储 ...

  9. Redis中是如何实现分布式锁的?

    分布式锁常见的三种实现方式: 数据库乐观锁: 基于Redis的分布式锁: 基于ZooKeeper的分布式锁. 本地面试考点是,你对Redis使用熟悉吗?Redis中是如何实现分布式锁的. 要点 Red ...

  10. jmeter基本组件介绍

    常用术语统一:元件-jmeter工具菜单的一个子菜单(功能)  组件-一组元件的集合.如http请求与取样器的的关系  jmeter测试计划要素: (1)脚本中测试计划只能有一个: (2)测试计划中至 ...