網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
目錄
1.準(zhǔn)備數(shù)據(jù)庫(kù)
2.創(chuàng)建項(xiàng)目,導(dǎo)入依賴
3.創(chuàng)建實(shí)體類
4.創(chuàng)建Mapper接口和Mapper.xml文件
5.MyBatis配置文件-通常命名為mybatis-config.xml
6.測(cè)試
1.準(zhǔn)備數(shù)據(jù)庫(kù)
CREATE DATABASE `mybatis-example`;
USE `mybatis-example`;
CREATE TABLE `t_emp`(
emp_id INT AUTO_INCREMENT,
emp_name CHAR(100),
emp_salary DOUBLE(10,5),
PRIMARY KEY(emp_id)
);
INSERT INTO `t_emp`(emp_name,emp_salary) VALUES("tom",200.33);
INSERT INTO `t_emp`(emp_name,emp_salary) VALUES("jerry",666.66);
INSERT INTO `t_emp`(emp_name,emp_salary) VALUES("andy",777.77);
2.創(chuàng)建項(xiàng)目,導(dǎo)入依賴
創(chuàng)建項(xiàng)目
導(dǎo)入依賴到pom.xml
<dependencies>
<!-- mybatis依賴 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.11</version>
</dependency>
<!-- MySQL驅(qū)動(dòng) mybatis底層依賴jdbc驅(qū)動(dòng)實(shí)現(xiàn),本次不需要導(dǎo)入連接池,mybatis自帶! -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
<!--junit5測(cè)試-->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.1</version>
</dependency>
</dependencies>
3.創(chuàng)建實(shí)體類
public class Employee {
private Integer empId;
private String empName;
private Double empSalary;
//getter | setter
}
4.創(chuàng)建Mapper接口和Mapper.xml文件
Mybatis 中的 Mapper 接口相當(dāng)于以前的 Dao。但是區(qū)別在于,Mapper 僅僅只是建接口即可,我們不需要提供實(shí)現(xiàn)類,具體的SQL寫(xiě)到對(duì)應(yīng)的Mapper文件,該用法的思路如下圖所示:
a.定義mapper接口
package com.atguigu.mapper;
import com.atguigu.pojo.Employee;
/**
* t_emp表對(duì)應(yīng)數(shù)據(jù)庫(kù)SQL語(yǔ)句映射接口!
* 接口只規(guī)定方法,參數(shù)和返回值!
* mapper.xml中編寫(xiě)具體SQL語(yǔ)句!
*/
public interface EmployeeMapper {
/**
* 根據(jù)員工id查詢員工數(shù)據(jù)方法
* @param empId 員工id
* @return 員工實(shí)體對(duì)象
*/
Employee selectEmployee(Integer empId);
}
b.定義mapper.xml文件
位置:resources/mappers/EmployeeMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace等于mapper接口類的全限定名,這樣實(shí)現(xiàn)對(duì)應(yīng) -->
<mapper namespace="com.atguigu.mapper.EmployeeMapper">
<!-- 查詢使用 select標(biāo)簽
id = 方法名
resultType = 返回值類型
標(biāo)簽內(nèi)編寫(xiě)SQL語(yǔ)句
-->
<select id="selectEmployee" resultType="com.atguigu.pojo.Employee">
<!-- #{empId}代表動(dòng)態(tài)傳入的參數(shù),并且進(jìn)行賦值!后面詳細(xì)講解 -->
select emp_id empId,emp_name empName, emp_salary empSalary from
t_emp where emp_id = #{empId}
</select>
</mapper>
注意:
- 方法名和SQL的id一致
- 方法返回值和resultType一致
- 方法的參數(shù)和SQL的參數(shù)一致
- 接口的全類名和映射配置文件的名稱空間一致
5.MyBatis配置文件-通常命名為mybatis-config.xml
mybatis框架配置文件: 數(shù)據(jù)庫(kù)連接信息,性能配置,mapper.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>
<!-- environments表示配置Mybatis的開(kāi)發(fā)環(huán)境,可以配置多個(gè)環(huán)境,在眾多具體環(huán)境中,使用default屬性指定實(shí)際運(yùn)行時(shí)使用的環(huán)境。default屬性的取值是environment標(biāo)簽的id屬性的值。 -->
<environments default="development">
<!-- environment表示配置Mybatis的一個(gè)具體的環(huán)境 -->
<environment id="development">
<!-- Mybatis的內(nèi)置的事務(wù)管理器 -->
<transactionManager type="JDBC"/>
<!-- 配置數(shù)據(jù)源 -->
<dataSource type="POOLED">
<!-- 建立數(shù)據(jù)庫(kù)連接的具體信息 -->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis-example"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- Mapper注冊(cè):指定Mybatis映射文件的具體位置 -->
<!-- mapper標(biāo)簽:配置一個(gè)具體的Mapper映射文件 -->
<!-- resource屬性:指定Mapper映射文件的實(shí)際存儲(chǔ)位置,這里需要使用一個(gè)以類路徑根目錄為基準(zhǔn)的相對(duì)路徑 -->
<!-- 對(duì)Maven工程的目錄結(jié)構(gòu)來(lái)說(shuō),resources目錄下的內(nèi)容會(huì)直接放入類路徑,所以這里我們可以以resources目錄為基準(zhǔn) -->
<mapper resource="mappers/EmployeeMapper.xml"/>
</mappers>
</configuration>
6.測(cè)試
/**
* projectName: com.atguigu.test
*
* description: 測(cè)試類
*/
public class MyBatisTest {
@Test
public void testSelectEmployee() throws IOException {
// 1.創(chuàng)建SqlSessionFactory對(duì)象
// ①聲明Mybatis全局配置文件的路徑
String mybatisConfigFilePath = "mybatis-config.xml";
// ②以輸入流的形式加載Mybatis配置文件
InputStream inputStream = Resources.getResourceAsStream(mybatisConfigFilePath);
// ③基于讀取Mybatis配置文件的輸入流創(chuàng)建SqlSessionFactory對(duì)象
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 2.使用SqlSessionFactory對(duì)象開(kāi)啟一個(gè)會(huì)話
SqlSession session = sessionFactory.openSession();
// 3.根據(jù)EmployeeMapper接口的Class對(duì)象獲取Mapper接口類型的對(duì)象(動(dòng)態(tài)代理技術(shù))
EmployeeMapper employeeMapper = session.getMapper(EmployeeMapper.class);
// 4. 調(diào)用代理類方法既可以觸發(fā)對(duì)應(yīng)的SQL語(yǔ)句
Employee employee = employeeMapper.selectEmployee(1);
System.out.println("employee = " + employee);
// 4.關(guān)閉SqlSession
session.commit(); //提交事務(wù) [DQL不需要,其他需要]
session.close(); //關(guān)閉會(huì)話
}
}
原文鏈接:https://blog.csdn.net/weixin_69134926/article/details/136479170
- 上一篇:沒(méi)有了
- 下一篇:沒(méi)有了
相關(guān)推薦
- 2022-07-11 UVM中uvm_config_db非直線的設(shè)置與獲取
- 2022-07-29 Golang學(xué)習(xí)之反射機(jī)制的用法詳解_Golang
- 2022-02-14 linux系統(tǒng)之進(jìn)程管理詳解_Linux
- 2022-07-11 PostgreSQL連接到數(shù)據(jù)庫(kù)增刪改查
- 2022-07-08 python?讀寫(xiě)csv文件方式(創(chuàng)建,追加,覆蓋)_python
- 2022-04-22 element的el-drawer預(yù)留操作欄問(wèn)題
- 2023-06-18 C#最小二乘法擬合曲線成直線的實(shí)例_C#教程
- 2023-04-02 python導(dǎo)出requirements.txt的幾種方法總結(jié)_python
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支