MyBatis最常用的增刪改查操作詳解
一、簡介
MyBatis 是一款優(yōu)秀的持久層框架,它通過 SQL 映射將對象與數(shù)據(jù)庫操作連接起來,使得 Java 對象和數(shù)據(jù)庫表之間的映射更加清晰。MyBatis 通過映射文件來定義 SQL 語句,并自動映射結(jié)果集到 Java 對象,同時(shí)也支持動態(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è)計(jì)
1.數(shù)據(jù)庫表設(shè)計(jì)
為了演示 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ù)庫表、實(shí)體類、Mapper 接口及映射文件,我們實(shí)現(xiàn)了對 user
表的增刪改查操作。MyBatis 簡化了數(shù)據(jù)庫操作,并通過映射文件和接口讓開發(fā)者專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。
在實(shí)際開發(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)文章
實(shí)現(xiàn)java文章點(diǎn)擊量記錄實(shí)例
這篇文章主要為大家介紹了實(shí)現(xiàn)java文章點(diǎn)擊量記錄實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10java實(shí)現(xiàn)點(diǎn)擊按鈕事件彈出子窗口
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)點(diǎn)擊按鈕事件彈出子窗口,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07通過JDBC連接oracle數(shù)據(jù)庫的十大技巧
通過JDBC連接oracle數(shù)據(jù)庫的十大技巧...2006-12-12Java spring boot 實(shí)現(xiàn)支付寶支付功能的示例代碼
這篇文章主要介紹了Java spring boot 實(shí)現(xiàn)支付寶支付功能,本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06