當前位置:
首頁 > 知識 > mybatis與spring整合:Dao層映射配置

mybatis與spring整合:Dao層映射配置

要想mybatis查詢資料庫後,數據自動映射到指定的entity里的pojo類里,這裡有三種方法,一種是通過XML文件里resultMap來建立對應關係、第二種是entity的類屬性與表欄位名字保持一致、第三種:其實原理是跟第二種一樣,只不過是開啟的mybatis的駝峰命名自動轉換,即資料庫欄位 user_id的會對應到類屬性里的userId,更符合java的命名規範。

第一種:通過resultMap來建立對應關係

UserDaoMapper.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.mavenssmlr.dao.UserDao">

<resultMap id="resultUser" type="com.mavenssmlr.entity.User">

<id property="id" column="id"/>

<result property="uname" column="uname" />

<result property="createTime" column="create_time" />

<result property="modifyTime" column="modify_time" />

</resultMap>

<select id="queryAll" resultMap="resultUser">

SELECT * FROM mavenssmlr.user

</select>

</mapper>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

說明:

type是指定實體類的路徑

  • property 指的是類屬性 column指的是欄位名
  • resultMap=「id名」

entity/User.java

package com.mavenssmlr.entity;

import java.io.Serializable;

import java.util.Date;

public class User implements Serializable{

private int id;

private String uname;

private Date createTime;

private Date modifyTime;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getUname() {

return uname;

}

public void setUname(String uname) {

this.uname = uname;

}

public Date getCreateTime() {

return createTime;

}

public void setCreateTime(Date createTime) {

this.createTime = createTime;

}

public Date getModifyTime() {

return modifyTime;

}

public void setModifyTime(Date modifyTime) {

this.modifyTime = modifyTime;

}

@Override

public String toString() {

return "User{" +

"id=" + id +

", uname="" + uname + """ +

", createTime=" + createTime +

", modifyTime=" + modifyTime +

"}";

}

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

測試:

@Test

public void queryAll() throws Exception {

List<User> userList = userDao.queryAll();

logger.info("____________userList={}", userList);

}

  • 1
  • 2
  • 3
  • 4
  • 5

也可以利用註解:即resultMap里不寫東西,在實體類里加上@Table @Id @Coulum等註解,進行關係映射

第二種:與資料庫欄位名保持一直或者開啟駝峰命名轉換

配置方法:

mbatis-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>

<!--配置全局屬性-->

<settings>

<!--使用jdbc的getGeneratedKeys 獲取資料庫自增主鍵值-->

<setting name="useGeneratedKeys" value="true"/>

<!--使用列別名替換列名 默認true-->

<setting name="useColumnLabel" value="true"/>

<!--開啟駝峰命名轉換-->

<setting name="mapUnderscoreToCamelCase" value="true"/>

</settings>

</configuration>

mybatis與spring整合:Dao層映射配置

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

PHP 刪除數組中的元素
Canvas API詳解(Part 1)

TAG:程序員小新人學習 |