MyBatis第四章:專案案例mybatis主要配置解析
該系列為imooc Java資料庫開發與實戰應用中MyBatis課程筆記,跟隨課程加入自己見解,同時也為專案中碰到一些問題做了解答
本章會通過案例講解以下配置及操作
基礎操作—主配置解析
- properties配置載入
- environments環境配置
- settings引數設定配置
- typeAliases別名設定
- mapper對映載入
基礎操作—查詢資料
- 對映配置:sql片段
- 對映配置:select配置
- 特殊配置:欄位和屬性不一致時resultMap配置
步驟
步驟一:完善第三章專案案例的pom.xml檔案
引入mybatis、mysql資料庫連線驅動構件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.damu.mybatis</groupId>
<artifactId>mybatispro</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
</dependencies>
</project>
步驟二:在resources下新建mybatis配置檔案(主配置解析)
- resources>新建 mybatis-config.xml,配置檔案的資訊從官方文件中獲取,然後再根據專案完善(mybatis3.4.3文件連線)
- 複製進mybatis-config.xml
小心坑 http://mybatis.org/dtd/mybatis-3-config.dtd可能會報錯
IDEA中xml檔案頭報錯:URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)解決辦法
- mybatis配置檔案,我們在該檔案中是可以直接完善配置資訊,但是當該配置檔案需要配置的資訊比較多的時候,修改裡面的資訊就比較困難了,所以可以把配置資訊再單獨放入資原始檔中。
resources>新建db.properties,在資原始檔中,資訊是以鍵值對的資訊存在
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mydb
username=root
password=123456
- 在mybatis-config.xml中引入db.properties資原始檔(properties配置)
properties配置,用於載入外部的properties資原始檔
<properties resource="db.properties"></properties>
將該程式碼放入mybatis-config.xml中,resource就是資原始檔的名稱
<?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>
<!--
properties配置,用於載入外部的properties資原始檔
-->
<properties resource="db.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
- 配置多個資料來源,(environments配置、mapper配置)
- environments配置,用於進行多個資料來源的配置管理類,environments標籤下存在多個environment,一個environment標籤可配置一個具體資料來源
- 在environments標籤中通過default屬性指定單前專案執行過程中使用哪個資料來源,填入environment標籤id
- environment,用於配置一個具體的資料來源,id屬性用於給當前資料來源定義一個名稱,方便我們的專案指定
- transactionManager用於配置事物管理,預設情況下使用的是JDBC
- dataSource是配置資料來源的連結資訊,type屬性用於指定是否使用連線池(POOLED代表是使用連線池)
- mappers用於配置外部的對映配置檔案,讓mybatis識別到對映檔案
- mapper配置引入一個具體的對映檔案,resource進行路徑方式引入
<?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>
<!--
properties配置,用於載入外部的properties資原始檔
-->
<properties resource="db.properties"></properties>
<!--
- environments配置,用於進行多個資料來源的配置管理類,environments標籤下存在多個environment,一個environment標籤可配置一個具體資料來源
- 在environments標籤中通過default屬性指定單前專案執行過程中使用哪個資料來源,填入environment標籤id
-->
<environments default="development">
<!--
environment,用於配置一個具體的資料來源
id屬性用於給當前資料來源定義一個名稱,方便我們的專案指定
-->
<environment id="development">
<!--
transactionManager用於配置事物管理,預設情況下使用的是JDBC
-->
<transactionManager type="JDBC"/>
<!--
dataSource是配置資料來源的連結資訊,type屬性用於指定是否使用連線池(POOLED代表是使用連線池)
-->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
<environment id="product">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!--
mappers用於配置外部的對映配置檔案,讓mybatis識別到對映檔案
-->
<mappers>
<!--
mapper配置引入一個具體的對映檔案,resource進行路徑方式引入
-->
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
- resources>新建mapper資料夾>新建usesMapper.xml對映檔案配置檔案的資訊從官方文件中獲取,然後再根據專案完善(mybatis3.4.3文件連線)
複製進usesMapper.xml
- mapper 用於定義一個對映配置檔案的根節點
- namespace屬性是用來配置名稱空間,主要進行session級別的快取管理,名稱空間預設情況下,使用我們當前操作的實體類的全路徑
<?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屬性是用來配置名稱空間,主要進行session級別的快取管理
名稱空間預設情況下,使用我們當前操作的實體類的全路徑
-->
<mapper namespace="org.mybatis.example.BlogMapper">
</mapper>
由於我們現在還沒有實體類,所以對映檔案暫不完善
- 新建實體類,java>新建包com.damu.entity>新建Users實體類
package com.damu.entity;
import java.util.Date;
public class Users {
private Integer id; // 使用者編號
private String username; // 登入賬號
private String name; // 登入賬號
private String userpass; // 登入密碼
private String nickname; // 使用者暱稱
private Integer age; // 使用者年齡
private String gender; // 使用者性別
private String email; // 使用者郵箱
private String phone; // 聯絡方式
private Date createTime; // 建立時間
private Date updateTime; // 賬號最後修改時間
private Date lastLogin; // 使用者最後登入時間
private Integer userStatus; // 使用者賬號狀態 0 正常 1 鎖定 2 刪除
private String remark; // 使用者備註資訊
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUserpass() {
return userpass;
}
public void setUserpass(String userpass) {
this.userpass = userpass;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Date getLastLogin() {
return lastLogin;
}
public void setLastLogin(Date lastLogin) {
this.lastLogin = lastLogin;
}
public Integer getUserStatus() {
return userStatus;
}
public void setUserStatus(Integer userStatus) {
this.userStatus = userStatus;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}
- 完善mybatis-config.xml配置檔案中的mapper標籤
<mapper resource="mapper/usersMapper.xml"/>
- 完善usesMapper.xml對映檔案中的namespace屬性
<mapper namespace="com.damu.entity.Users">
</mapper>
相關文章
- MyBatis 配置解析MyBatis
- Mybatis配置解析MyBatis
- Mybatis基礎:Mybatis對映配置檔案,Mybatis核心配置檔案,Mybatis傳統方式開發MyBatis
- Mybatis:CRUD操作及配置解析MyBatis
- 深入Mybatis原始碼——配置解析MyBatis原始碼
- Mybatis深入解析之日誌配置MyBatis
- mybatis的全域性配置檔案SqlMapConfig.xml解析MyBatisSQLXML
- springboot專案整合mybatisSpring BootMyBatis
- MyBatis載入配置檔案MyBatis
- MyBatis配置檔案總結MyBatis
- mybatis原始碼配置檔案解析之五:解析mappers標籤流程圖MyBatis原始碼APP流程圖
- mybatis原始碼配置檔案解析之五:解析mappers標籤(解析XML對映檔案)MyBatis原始碼APPXML
- MyBatis 配置MyBatis
- SpringMvc+Spring+mybatis配置檔案SpringMVCMyBatis
- mybatis案例程式MyBatis
- MyBatis基於xml檔案的 CURD案例MyBatisXML
- MyBatis generator配置MyBatis
- mybatis的配置MyBatis
- 「Mybatis系列」Mybatis開發方式和配置MyBatis
- 深入淺出MyBatis:MyBatis的所有配置MyBatis
- MyBatis--主配置檔案詳解MyBatis
- spring和Mybatis的核心配置檔案SpringMyBatis
- 一文解析 MyBatis Generator 的使用及配置MyBatis
- mybatis mapper解析(4)MyBatisAPP
- MyBatis原理解析MyBatis
- MyBatis原始碼解析MyBatis原始碼
- MyBatis:使用MyBatis Generator快速完成Springboot專案資料層開發MyBatisSpring Boot
- Spring Boot + Mybatis + Spring MVC環境配置(二):Mybatis Generator配置Spring BootMyBatisMVC
- 深入淺出MyBatis:MyBatis解析和執行原理MyBatis
- SpringBoot + Mybatis + Redis 整合入門專案Spring BootMyBatisRedis
- Spring Boot+Mybatis專案總結Spring BootMyBatis
- MyBatis Spring MapperScannerConfigurer 配置MyBatisSpringAPP
- MyBatis Spring SqlSessionFactoryBean 配置MyBatisSpringSQLSessionBean
- MyBatis 配置詳解MyBatis
- Mybatis【配置檔案】就是這麼簡單MyBatis
- mybatis plugin原始碼解析MyBatisPlugin原始碼
- MyBatis原始碼窺探(一):MyBatis整體架構解析MyBatis原始碼架構
- Mybatis的基礎配置MyBatis