1. 程式人生 > 其它 >我的第一個mybatis--mybatis的配置和建立

我的第一個mybatis--mybatis的配置和建立

mybatis下載和配置過程

maven倉庫:

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>

下載地址:

Guihub: https://github.com/mybatis/mybatis-3/releases

中文文件:https://mybatis.org/mybatis-3/zh/getting-started.html

新建專案

1.新建一個普通的maven專案

2.刪除Maven專案中的src目錄

3.在pom.xml中匯入maven依賴包

<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>

<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>


</dependencies>

4.建立一個模組

.xml檔案中的轉義符號為amp;

1)編寫mybatis的核心配置檔案:

在resources中新建一個xml檔案:mybatis-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>
<!--環境配置:資料庫的連線資訊
default:必須和某個environment的id值一致,用來告訴mybatis使用哪個資料庫的連線資訊,也就是訪問哪個資料庫。
-->
<environments default="development">
<!--environment:一個數據庫資訊的配置,環境
id:一個唯一值,自定義,表示環境的名稱。
-->
<environment id="development">
<!--transactionManger:mybatis的事務型別
type:JDBC(表示使用JDBC中的connection物件的commit,rollback做事務處理
-->
<transactionManager type="JDBC"/>
<!--dataSource:表示資料來源,連線資料庫的
type:表示資料來源型別,pooled表示使用連線池
-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis_study?useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--mappers:用來指定sql對映檔案的位置-->
<mappers>
<mapper resource="com/hao/dao/userMapper.xml"/>
</mappers>
</configuration>
<!--
mybatis的主配置檔案:主要定義了資料庫的配置資訊,sql對映檔案的位置
1.約束檔案
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
mybatis-3-config.dtd:約束檔案的名稱
-->

2)編寫mybatis工具類

在java資料夾下新建一個utils包,包中新建MybatisUtils類

public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
//使用Mybatis第一步:獲取sqlSessionFactory物件
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//既然有了 SqlSessionFactory,顧名思義,我們可以從中獲得 SqlSession 的例項。
// SqlSession 提供了在資料庫執行 SQL 命令所需的所有方法。
public static SqlSession getSquSession(){
SqlSession sqlSession=sqlSessionFactory.openSession();
return sqlSession;
}

}

3.編寫程式碼

  • 實體類

package com.hao.pojo;

public class user {
private int id;
private String name;
private String pwd;

public user() {
}

public user(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPwd() {
return pwd;
}

public void setPwd(String pwd) {
this.pwd = pwd;
}

@Override
public String toString() {
return "user{" +
"id=" + id +
", name='" + name + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
}
  • 實現類(Dao介面)

public interface userDao {
List<user> getUserList();
}
  • 介面實現類(由原來的userDaoImpl轉變為一個Mapper配置檔案)

<?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.hao.dao.userDao">
<!--查詢語句-->
<select id="getUserList" resultType="com.hao.pojo.user">
select * from mybatis.user
</select>
</mapper>

<!--
這個xml檔案是sql對映檔案,用來寫sql語句的,mybatis會執行這些sql
1.指定的約束檔案:
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
mybatis-3-mapper.dtd是約束檔案的名稱,副檔名是是dtd的
2.約束檔案作用:定義和限制當前檔案中可以使用的標籤和屬性,以及標籤出現的順序,屬性必須符合mybits的要求
3.mapper是當前檔案的根標籤,是必須的
namespace是名稱空間,是唯一值,可以是自定義的字串,推薦使用dao介面的全限定方法名稱。它的作用是參與識別sql語句的作用。
4.在當前檔案中,可以使用特定的標籤,表示資料庫的特定操作。
<select>:表示執行查詢,select語句
<update>:表示更新資料庫的操作
<insert>:表示插入語句
<delete>:表示刪除語句
5.<select id="getUserList" resultType="com.hao.pojo.user">
select * from mybatis.user
</select>
select:表示查詢操作
id:你要執行的sql語法的唯一標識,mybatis會使用這個id的值來找到要執行的sql語句,可以自定義,(最好寫介面中的方法名稱)
resultType:表示結果型別的,是sql語句執行後得到ResultSet,遍歷這個ResultSet得到java物件的型別。值寫型別的全限定名稱。

-->

4.測試

注意點:

junit測試:

記得在pom中配置build

 <build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>

<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>

</resources>
</build>

實現步驟

1.新建student表

2.加入maven的mybatis座標,mysql驅動的座標

3.建立實體類Student用來儲存表中一行資料

4.建立持久層的Dao介面,定義操作資料庫的方法

5.建立一個mybatis使用的配置檔案

叫做sql對映檔案:寫sql語句的,一般一個表一個sql對映檔案,這個檔案是xml檔案

1)這個xml檔案寫在介面所在的目錄中

2)檔名稱和介面保持一致

6.建立mybatis的主配置檔案:

一個專案就一個主配置檔案,主配置檔案提供了資料庫的連線資訊和sql對映檔案的位置資訊

7.建立使用mybatis類,通過mybatis類訪問資料庫。