MyBatis最常用的增刪改查操作詳解
一、簡(jiǎn)介
MyBatis 是一款優(yōu)秀的持久層框架,它通過(guò) SQL 映射將對(duì)象與數(shù)據(jù)庫(kù)操作連接起來(lái),使得 Java 對(duì)象和數(shù)據(jù)庫(kù)表之間的映射更加清晰。MyBatis 通過(guò)映射文件來(lái)定義 SQL 語(yǔ)句,并自動(dòng)映射結(jié)果集到 Java 對(duì)象,同時(shí)也支持動(dòng)態(tài) SQL 的編寫(xiě),極大提高了數(shù)據(jù)庫(kù)操作的效率和靈活性。
本篇博客將詳細(xì)介紹 MyBatis 中最常用的操作:增、刪、改、查(CRUD)。我們將以一個(gè)簡(jiǎn)單的 User 表為例,通過(guò) MyBatis 執(zhí)行基本的增刪改查操作。
二、準(zhǔn)備工作
在使用 MyBatis 之前,我們首先需要引入 MyBatis 的核心依賴(lài)并進(jìn)行一些基礎(chǔ)配置。
1.Maven 依賴(lài)(pom.xml)
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version> <!-- 選擇適合你的版本 -->
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version> <!-- 選擇適合你的版本 -->
</dependency>
2.MyBatis 配置文件(mybatis-config.xml)
在 src/main/resources 目錄下創(chuàng)建 mybatis-config.xml 文件,用于配置 MyBatis 的基本信息。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/your_db"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
三、具體設(shè)計(jì)
1.數(shù)據(jù)庫(kù)表設(shè)計(jì)
為了演示 MyBatis 的增刪改查操作,我們需要一個(gè)數(shù)據(jù)庫(kù)表。在這里,我們使用一個(gè)簡(jiǎn)單的 user 表:
CREATE TABLE user (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL
);
2. Mapper 接口:UserMapper
創(chuàng)建 UserMapper 接口,定義增刪改查方法。
public interface UserMapper {
int insertUser(User user); // 插入用戶(hù)
int updateUser(User user); // 更新用戶(hù)
int deleteUser(Integer id); // 刪除用戶(hù)
User selectUserById(Integer id); // 根據(jù) ID 查詢(xún)用戶(hù)
List<User> selectAllUsers(); // 查詢(xún)所有用戶(hù)
}
3. Mapper 映射文件:UserMapper.xml
在 src/main/resources/com/example/mapper/ 目錄下創(chuàng)建 UserMapper.xml 文件,并編寫(xiě)相應(yīng)的 SQL 語(yǔ)句。
<?xml version="1.0" encoding="UTF-8" ?>
<mapper namespace="com.example.mapper.UserMapper">
<!-- 插入用戶(hù) -->
<insert id="insertUser" parameterType="com.example.model.User">
INSERT INTO user (username, password)
VALUES (#{username}, #{password})
</insert>
<!-- 更新用戶(hù) -->
<update id="updateUser" parameterType="com.example.model.User">
UPDATE user
SET username = #{username}, password = #{password}
WHERE id = #{id}
</update>
<!-- 刪除用戶(hù) -->
<delete id="deleteUser" parameterType="int">
DELETE FROM user WHERE id = #{id}
</delete>
<!-- 根據(jù) ID 查詢(xún)用戶(hù) -->
<select id="selectUserById" resultType="com.example.model.User" parameterType="int">
SELECT id, username, password FROM user WHERE id = #{id}
</select>
<!-- 查詢(xún)所有用戶(hù) -->
<select id="selectAllUsers" resultType="com.example.model.User">
SELECT id, username, password FROM user
</select>
</mapper>
四、MyBatis 的增刪改查操作
1. 插入數(shù)據(jù)(Insert)
插入數(shù)據(jù)使用 insert 標(biāo)簽,并通過(guò) insertUser 方法執(zhí)行。
public class UserService {
private SqlSession sqlSession;
public int addUser(User user) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
return userMapper.insertUser(user);
}
}
User user = new User();
user.setUsername("john");
user.setPassword("password");
userService.addUser(user);
2. 更新數(shù)據(jù)(Update)
更新數(shù)據(jù)使用 update 標(biāo)簽,通過(guò) updateUser 方法執(zhí)行。
public int updateUser(User user) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
return userMapper.updateUser(user);
}
User user = new User();
user.setId(1);
user.setUsername("john_updated");
user.setPassword("newpassword");
userService.updateUser(user);
3. 刪除數(shù)據(jù)(Delete)
刪除數(shù)據(jù)使用 delete 標(biāo)簽,通過(guò) deleteUser 方法執(zhí)行。
public int deleteUser(int id) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
return userMapper.deleteUser(id);
}
userService.deleteUser(1);
4. 查詢(xún)數(shù)據(jù)(Select)
查詢(xún)數(shù)據(jù)使用 select 標(biāo)簽,常用的有根據(jù) ID 查詢(xún)和查詢(xún)所有數(shù)據(jù)。
public User getUserById(int id) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
return userMapper.selectUserById(id);
}
查詢(xún)所有用戶(hù):
public List<User> getAllUsers() {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
return userMapper.selectAllUsers();
}
User user = userService.getUserById(1);
List<User> users = userService.getAllUsers();
五、小結(jié)
本文介紹了 MyBatis 中常見(jiàn)的增、刪、改、查操作。通過(guò)創(chuàng)建數(shù)據(jù)庫(kù)表、實(shí)體類(lèi)、Mapper 接口及映射文件,我們實(shí)現(xiàn)了對(duì) user 表的增刪改查操作。MyBatis 簡(jiǎn)化了數(shù)據(jù)庫(kù)操作,并通過(guò)映射文件和接口讓開(kāi)發(fā)者專(zhuān)注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。
在實(shí)際開(kāi)發(fā)中,MyBatis 還提供了豐富的功能,比如動(dòng)態(tài) SQL、分頁(yè)插件等,可以幫助開(kāi)發(fā)者處理更加復(fù)雜的業(yè)務(wù)需求。在下一篇博客中,我們將深入探討 MyBatis 中的動(dòng)態(tài) SQL 和常見(jiàn)的 SQL 注入防范技巧。
到此這篇關(guān)于MyBatis最常用的增刪改查操作的文章就介紹到這了,更多相關(guān)MyBatis增刪改查操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
實(shí)現(xiàn)java文章點(diǎn)擊量記錄實(shí)例
這篇文章主要為大家介紹了實(shí)現(xiàn)java文章點(diǎn)擊量記錄實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
java實(shí)現(xiàn)點(diǎn)擊按鈕事件彈出子窗口
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)點(diǎn)擊按鈕事件彈出子窗口,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
通過(guò)JDBC連接oracle數(shù)據(jù)庫(kù)的十大技巧
通過(guò)JDBC連接oracle數(shù)據(jù)庫(kù)的十大技巧...2006-12-12
詳解Java8合并兩個(gè)Map中元素的正確姿勢(shì)
這篇文章主要介紹了詳解Java8合并兩個(gè)Map中元素的正確姿勢(shì),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Java spring boot 實(shí)現(xiàn)支付寶支付功能的示例代碼
這篇文章主要介紹了Java spring boot 實(shí)現(xiàn)支付寶支付功能,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06

