当前位置:   article > 正文

MyBatis使用resultMap映射结果集、MyBatis解决对象属性名和数据库字段名不一致_resultmap="baseresultmap

resultmap="baseresultmap

一、MyBatis自动映射功能

1.MyBatis提供了自动映射功能,只需要返回的SQL列名和Java实体对象属性一致就行了。在我们实际开发中,我的数据库列名规范大都是要求每个单词用下划线分隔,而JAVA实体则是用驼峰命名法,于是使用MyBatis自动映射,或直接在配置文件中开启驼峰命名方式。

2.例如

实体对象属性如下

  1. public class Account{
  2. private String id;
  3. private String name;
  4. private double money;
  5. private Date created = new Date();
  6. private Date updated = new Date();
  7. private Integer isdeleted = 0;
  8. public String getId() {
  9. return id;
  10. }
  11. public void setId(String id) {
  12. this.id = id;
  13. }
  14. public String getName() {
  15. return name;
  16. }
  17. public void setName(String name) {
  18. this.name = name;
  19. }
  20. public double getMoney() {
  21. return money;
  22. }
  23. public void setMoney(double money) {
  24. this.money = money;
  25. }
  26. public Date getCreated() {
  27. return created;
  28. }
  29. public void setCreated(Date created) {
  30. this.created = created;
  31. }
  32. public Date getUpdated() {
  33. return updated;
  34. }
  35. public void setUpdated(Date updated) {
  36. this.updated = updated;
  37. }
  38. public Integer getIsdeleted() {
  39. return isdeleted;
  40. }
  41. public void setIsdeleted(Integer isdeleted) {
  42. this.isdeleted = isdeleted;
  43. }
  44. @Override
  45. public String toString() {
  46. return "Account{" +
  47. "id='" + id + '\'' +
  48. ", name='" + name + '\'' +
  49. ", money=" + money +
  50. ", created=" + created +
  51. ", updated=" + updated +
  52. ", isdeleted=" + isdeleted +
  53. '}';
  54. }
  55. }

数据库表列名:

 mapper映射语句:

  1. <select id="sel" resultType="yuan.yuanmybatis.entity.Account">
  2. select id,name,created,updated,isdeleted from account where id = #{id}
  3. </select>

Dao接口:

  1. @Repository
  2. public interface AccountMapper {
  3. Account sel(String id);
  4. }

 测试:

  1. @Test
  2. public void testResultMap(){
  3. Account account= accountMapper.sel("1");
  4. System.out.println(account.toString());
  5. }

 

二、Mybatis使用resultMap映射结果集

1、当需要处理复杂的映射时,使用MyBatis的自动映射就力不从心了,这时候我们就可以使用resultMap了。

2、如下

  1. <resultMap id="BaseResultMap" type="yuan.yuanmybatis.entity.Account">
  2. <id column="id" jdbcType="VARCHAR" property="id" />
  3. <result column="name" jdbcType="VARCHAR" property="name" />
  4. <result column="money" jdbcType="DOUBLE" property="money" />
  5. </resultMap>
  6. <select id="sel" resultMap="accountResultMap">
  7. select id,name,money from account where id = #{id}
  8. </select>

解释一下resultMap的配置

2.1、id为定义了一个唯一标识,type对应的java实体对象

2.2、id表情定义java实体id即主键,result标签定义java实体对象其他属性,column属性为数据库列名,property属性为对应的java实体对象属性名

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/625690
推荐阅读
相关标签
  

闽ICP备14008679号