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>
※PHP 刪除數組中的元素
※Canvas API詳解(Part 1)
TAG:程序員小新人學習 |