下面是整合Spring Boot和Mybatis的方法步骤:
准备工作
- 安装Eclipse IDE,确保你已经安装了Eclipse插件“Spring Tools 4”,这个插件可以大大简化整合的过程。
- 创建一个基于Maven的Spring Boot项目,在pom.xml文件中添加如下依赖项:
<dependencies>
<!-- Spring Boot dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MyBatis dependencies -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
上面的依赖项中,我们使用了 Spring Boot Web 起步依赖和 Mybatis Spring Boot Starter 来集成 Mybatis。同时,我们添加了 H2 数据库作为运行时依赖项。
添加MyBatis配置
- 在项目的 src/main/resources 目录下,创建一个mybatis-config.xml文件,用于配置Mybatis,我们可以通过配置文件中设置 Mybatis 插件、类型别名、映射器等。以下是一个完整配置示例文件:
<?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>
<typeAliases>
<typeAlias alias="User" type="com.example.demo.domain.User"/>
</typeAliases>
<mappers>
<mapper resource="com/example/demo/mapper/UserMapper.xml"/>
</mappers>
</configuration>
- 然后在 Spring Boot 的 Configuration 类上添加 @MapperScan 扫描注解,指定 Mybatis 的 Mapper 接口所在的包,例如:
@Configuration
@MapperScan("com.example.demo.mapper")
public class AppConfig {
// ...
}
在这个示例中,我们指定Mapper接口所在的包是 “com.example.demo.mapper”。
添加Mapper映射器
- 首先,在src/main/java/com/example/demo/mapper目录下,创建一个UserMapper接口,例如:
public interface UserMapper {
@Select("SELECT * FROM user WHERE enabled = true")
List<User> findAllEnabled();
@Select("SELECT * FROM user WHERE id = #{id}")
User findById(Long id);
@Insert("INSERT INTO user(username, password, fullName, enabled) "
+ "VALUES(#{username}, #{password}, #{fullName}, #{enabled})")
@Options(useGeneratedKeys = true, keyProperty = "id")
void insert(User user);
@Update("UPDATE user SET username = #{username}, password = #{password}, "
+ "fullName = #{fullName}, enabled = #{enabled} WHERE id = #{id}")
void update(User user);
@Delete("DELETE FROM user WHERE id = #{id}")
void deleteById(Long id);
}
- 接着,我们需要在 src/main/resources 目录下,创建一个 UserMapper.xml 文件,用于配置使用 Mybatis 的 Mapper 接口,并指定具体的 SQL 语句。
<?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.demo.mapper.UserMapper">
<resultMap id="userMap" type="com.example.demo.domain.User">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
<result property="fullName" column="full_name"/>
<result property="enabled" column="enabled"/>
</resultMap>
<select id="findAllEnabled" resultMap="userMap">
SELECT * FROM user WHERE enabled = true
</select>
<select id="findById" resultMap="userMap">
SELECT * FROM user WHERE id = #{id}
</select>
<insert id="insert">
INSERT INTO user(username, password, fullName, enabled)
VALUES(#{username}, #{password}, #{fullName}, #{enabled})
</insert>
<update id="update">
UPDATE user SET username = #{username}, password = #{password},
fullName = #{fullName}, enabled = #{enabled} WHERE id = #{id}
</update>
<delete id="deleteById">
DELETE FROM user WHERE id = #{id}
</delete>
</mapper>
上面的 mapper 配置文件中,我们定义了一个2个查询方法、和一个新增、修改和删除方法。
示例
下面是两个使用 Mybatis 的示例:
SQL 查询方法示例
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> findAllEnabled() {
return userMapper.findAllEnabled();
}
public User findById(Long id) {
return userMapper.findById(id);
}
}
上面的示例中,我们使用UserService类中的findAllEnabled()和findById()方法来使用上面定义的SQL查询方法。
SQL 更新方法示例
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public void save(User user) {
if (user.getId() == null) {
userMapper.insert(user);
} else {
userMapper.update(user);
}
}
public void deleteById(Long id) {
userMapper.deleteById(id);
}
}
上面的示例中,我们使用UserService类中的save()和deleteById()方法来使用上面定义的SQL更新方法。
到此,我们已经使用 Mybatis 简单实现了一个 Spring Boot 项目中的 CRUD。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:eclipse下整合springboot和mybatis的方法步骤 - Python技术站