Spring Boot 中的 MyBatis 是什么,如何使用
簡介
MyBatis 是一種流行的 Java 持久化框架,可以將 SQL 查詢映射到對(duì)象上,并提供了簡單易用的 API 來執(zhí)行 CRUD 操作。Spring Boot 可以與 MyBatis 集成,提供了簡化配置和自動(dòng)化配置的功能,使得使用 MyBatis 變得更加容易。
在本文中,我們將介紹 Spring Boot 中的 MyBatis,包括如何配置和使用 MyBatis,以及如何使用 MyBatis 進(jìn)行常見的 CRUD 操作。同時(shí),我們還將介紹如何使用 MyBatis 的注解和 XML 配置文件來編寫 SQL 查詢。
配置 MyBatis
在 Spring Boot 中使用 MyBatis,我們需要在 pom.xml
文件中添加 MyBatis 和 MyBatis-Spring 的依賴,如下所示:
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
</dependencies>
接下來,我們需要配置數(shù)據(jù)庫連接信息和 MyBatis 的配置信息。我們可以在 application.properties
文件中指定數(shù)據(jù)庫連接信息,如下所示:
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=123456
在 application.properties
文件中,我們還可以指定 MyBatis 的配置信息,如下所示:
mybatis.config-location=classpath:mybatis-config.xml
在上面的配置中,我們指定了 MyBatis 的配置文件路徑為 classpath:mybatis-config.xml
。在 MyBatis 的配置文件中,我們可以定義一些 MyBatis 的全局配置,例如是否開啟緩存、是否開啟延遲加載等。
MyBatis 的基本操作
在配置好 MyBatis 后,我們可以開始使用 MyBatis 進(jìn)行數(shù)據(jù)庫操作了。MyBatis 提供了兩種方式來執(zhí)行 SQL 查詢:XML 配置文件和注解。在下面的示例中,我們將演示如何使用這兩種方式來執(zhí)行 CRUD 操作。
使用 XML 配置文件執(zhí)行 CRUD 操作
首先,我們需要?jiǎng)?chuàng)建一個(gè) Plain Old Java Object(POJO)類,用來表示數(shù)據(jù)庫中的一條記錄。在這個(gè)示例中,我們使用 User
類來表示用戶信息,如下所示:
public class User {
private Long id;
private String name;
private Integer age;
// getters and setters
}
接下來,我們需要?jiǎng)?chuàng)建一個(gè) XML 配置文件,用來定義 SQL 查詢和映射關(guān)系。在這個(gè)示例中,我們創(chuàng)建了一個(gè) UserMapper.xml
文件,定義了一些基本的 SQL 查詢和映射關(guān)系,如下所示:
<?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.example.mapper.UserMapper">
<resultMap id="userMap" type="User">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="age" property="age"/>
</resultMap>
<select id="getUserById" resultMap="userMap">
SELECT * FROM user WHERE id = #{id}
</select>
<select id="getAllUsers" resultMap="userMap">
SELECT * FROM user
</select>
<insert id="insertUser">
INSERT INTO user (name, age) VALUES (#{name}, #{age})
</insert>
<update id="updateUserById">
UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}
</update>
<delete id="deleteUserById">
DELETE FROM user WHERE id = #{id}
</delete>
</xml>
在上面的 XML 配置文件中,我們定義了一個(gè) UserMapper
命名空間,并定義了一個(gè) resultMap
元素,用來映射查詢結(jié)果到 User
對(duì)象上。然后,我們定義了一些 SQL 查詢和映射關(guān)系,包括 getUserById
、getAllUsers
、insertUser
、updateUserById
和 deleteUserById
。這些 SQL 查詢可以通過 MyBatis 的 API 進(jìn)行調(diào)用,從而執(zhí)行相應(yīng)的操作。
接下來,我們需要?jiǎng)?chuàng)建一個(gè) Mapper 接口,用來定義訪問數(shù)據(jù)庫的 API。在這個(gè)示例中,我們創(chuàng)建了一個(gè) UserMapper
接口,包含了上述 SQL 查詢對(duì)應(yīng)的方法,如下所示:
public interface UserMapper {
User getUserById(Long id);
List<User> getAllUsers();
void insertUser(User user);
void updateUserById(User user);
void deleteUserById(Long id);
}
在上面的 Mapper 接口中,我們定義了五個(gè)方法,分別對(duì)應(yīng)上述 SQL 查詢。這些方法的名稱和參數(shù)類型需要與 XML 配置文件中的 SQL 查詢對(duì)應(yīng)。
最后,我們可以在 Service 層中調(diào)用 Mapper 接口來執(zhí)行 CRUD 操作。以下是一個(gè)簡單的示例:
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public User getUserById(Long id) {
return userMapper.getUserById(id);
}
public List<User> getAllUsers() {
return userMapper.getAllUsers();
}
public void insertUser(User user) {
userMapper.insertUser(user);
}
public void updateUserById(User user) {
userMapper.updateUserById(user);
}
public void deleteUserById(Long id) {
userMapper.deleteUserById(id);
}
}
在上面的 Service 中,我們注入了 UserMapper
接口,并調(diào)用相應(yīng)的方法來執(zhí)行 CRUD 操作。
使用注解執(zhí)行 CRUD 操作
除了 XML 配置文件之外,MyBatis 還支持使用注解來定義 SQL 查詢。以下是一個(gè)使用注解定義 SQL 查詢的示例:
@Mapper
public interface UserMapper {
@Select("SELECT * FROM user WHERE id = #{id}")
User getUserById(Long id);
@Select("SELECT * FROM user")
List<User> getAllUsers();
@Insert("INSERT INTO user (name, age) VALUES (#{name}, #{age})")
void insertUser(User user);
@Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}")
void updateUserById(User user);
@Delete("DELETE FROM user WHERE id = #{id}")
void deleteUserById(Long id);
}
在上面的代碼中,我們使用注解來定義 SQL 查詢,并將 @Mapper
注解用于標(biāo)記這個(gè)接口為 MyBatis 的 Mapper 接口。這些 SQL 查詢可以直接通過接口的方法調(diào)用來執(zhí)行。
使用注解定義 SQL 查詢可以使代碼更加簡潔和易讀,但是相對(duì)于 XML 配置文件,注解的可維護(hù)性較差,而且難以復(fù)用查詢語句。文章來源:http://www.zghlxwxcb.cn/news/detail-579144.html
總結(jié)
在本文中,我們介紹了 Spring Boot 中如何集成 MyBatis,并演示了如何使用 XML 配置文件和注解來執(zhí)行 CRUD 操作。MyBatis 是一種流行的 Java 持久化框架,可以將 SQL 查詢映射到對(duì)象上,并提供了簡單易用的 API 來執(zhí)行 CRUD 操作。通過 Spring Boot 的自動(dòng)化配置和簡化配置,使用 MyBatis 變得更加容易和便捷。使用 MyBatis 可以使數(shù)據(jù)庫操作變得更加簡單和高效,同時(shí)也可以使代碼更加易讀和易維護(hù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-579144.html
到了這里,關(guān)于Spring Boot 中的 MyBatis 是什么,如何使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!