MyBatis最常用的增刪改查操作詳解
一、簡介
MyBatis 是一款優(yōu)秀的持久層框架,它通過 SQL 映射將對象與數(shù)據(jù)庫操作連接起來,使得 Java 對象和數(shù)據(jù)庫表之間的映射更加清晰。MyBatis 通過映射文件來定義 SQL 語句,并自動映射結(jié)果集到 Java 對象,同時也支持動態(tài) SQL 的編寫,極大提高了數(shù)據(jù)庫操作的效率和靈活性。
本篇博客將詳細(xì)介紹 MyBatis 中最常用的操作:增、刪、改、查(CRUD)。我們將以一個簡單的 User 表為例,通過 MyBatis 執(zhí)行基本的增刪改查操作。
二、準(zhǔn)備工作
在使用 MyBatis 之前,我們首先需要引入 MyBatis 的核心依賴并進(jìn)行一些基礎(chǔ)配置。
1.Maven 依賴(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è)計
1.數(shù)據(jù)庫表設(shè)計
為了演示 MyBatis 的增刪改查操作,我們需要一個數(shù)據(jù)庫表。在這里,我們使用一個簡單的 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); // 插入用戶
int updateUser(User user); // 更新用戶
int deleteUser(Integer id); // 刪除用戶
User selectUserById(Integer id); // 根據(jù) ID 查詢用戶
List<User> selectAllUsers(); // 查詢所有用戶
}
3. Mapper 映射文件:UserMapper.xml
在 src/main/resources/com/example/mapper/ 目錄下創(chuàng)建 UserMapper.xml 文件,并編寫相應(yīng)的 SQL 語句。
<?xml version="1.0" encoding="UTF-8" ?>
<mapper namespace="com.example.mapper.UserMapper">
<!-- 插入用戶 -->
<insert id="insertUser" parameterType="com.example.model.User">
INSERT INTO user (username, password)
VALUES (#{username}, #{password})
</insert>
<!-- 更新用戶 -->
<update id="updateUser" parameterType="com.example.model.User">
UPDATE user
SET username = #{username}, password = #{password}
WHERE id = #{id}
</update>
<!-- 刪除用戶 -->
<delete id="deleteUser" parameterType="int">
DELETE FROM user WHERE id = #{id}
</delete>
<!-- 根據(jù) ID 查詢用戶 -->
<select id="selectUserById" resultType="com.example.model.User" parameterType="int">
SELECT id, username, password FROM user WHERE id = #{id}
</select>
<!-- 查詢所有用戶 -->
<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)簽,并通過 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)簽,通過 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)簽,通過 deleteUser 方法執(zhí)行。
public int deleteUser(int id) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
return userMapper.deleteUser(id);
}
userService.deleteUser(1);
4. 查詢數(shù)據(jù)(Select)
查詢數(shù)據(jù)使用 select 標(biāo)簽,常用的有根據(jù) ID 查詢和查詢所有數(shù)據(jù)。
public User getUserById(int id) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
return userMapper.selectUserById(id);
}
查詢所有用戶:
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 中常見的增、刪、改、查操作。通過創(chuàng)建數(shù)據(jù)庫表、實體類、Mapper 接口及映射文件,我們實現(xiàn)了對 user 表的增刪改查操作。MyBatis 簡化了數(shù)據(jù)庫操作,并通過映射文件和接口讓開發(fā)者專注于業(yè)務(wù)邏輯的實現(xiàn)。
在實際開發(fā)中,MyBatis 還提供了豐富的功能,比如動態(tài) SQL、分頁插件等,可以幫助開發(fā)者處理更加復(fù)雜的業(yè)務(wù)需求。在下一篇博客中,我們將深入探討 MyBatis 中的動態(tài) SQL 和常見的 SQL 注入防范技巧。
到此這篇關(guān)于MyBatis最常用的增刪改查操作的文章就介紹到這了,更多相關(guān)MyBatis增刪改查操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
通過JDBC連接oracle數(shù)據(jù)庫的十大技巧
通過JDBC連接oracle數(shù)據(jù)庫的十大技巧...2006-12-12
Java spring boot 實現(xiàn)支付寶支付功能的示例代碼
這篇文章主要介紹了Java spring boot 實現(xiàn)支付寶支付功能,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06

