下面是整合MyBatis的完整攻略:
1. 创建Spring Boot项目
首先,需要创建一个Spring Boot项目。我们可以通过Spring Initializr来创建一个基本的项目框架,包含MyBatis的依赖:
- 打开Spring Initializr,
- 选择“Maven Project”,选择“Spring Boot”版本和相关选项,点击下一步;
- 填写“Group”和“Artifact”信息,点击下一步;
- 在“Dependencies”中搜索“mybatis”,勾选“MyBatis Framework”和“MyBatis Spring Boot Starter”,点击“Generate”按钮。
然后,我们得到了一个基本的Spring Boot项目框架,可以开始整合MyBatis。
2. 配置MyBatis
2.1. 配置数据源
MyBatis需要连接数据库,所以需要先配置数据源。可以通过在application.properties文件中配置数据源的相关信息,在Spring Boot中,我们可以使用例如HikariCP这样的数据源来获取数据库连接池,然后通过application.properties文件进行配置:
spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
2.2. 配置MyBatis与SpringBoot整合
在配置完数据源之后,需要配置MyBatis与SpringBoot进行整合。SpringBoot提供了一个MybatisAutoConfiguration自动配置类,会自动加载MyBatis的相关配置,在application.properties中直接配置即可:
mybatis.type-aliases-package=com.example.demo.entity
这里我们指定了实体类所在的包名,让MyBatis可以自动扫描实体类。
3. 编写Mapper类
在MyBatis中,需要编写Mapper接口来实现对数据库的操作,可以使用注解或XML的形式进行配置。
3.1. 注解方式
在使用注解方式编写Mapper类时,需要在Mapper接口上添加@Mapper注解,同时在对应的方法上使用@Select、@Update等注解,来实现对数据库的操作:
@Mapper
public interface UserMapper {
@Select("SELECT * FROM user WHERE id = #{id}")
User getUserById(Integer id);
@Insert("INSERT INTO user(username, password) VALUES(#{username}, #{password})")
void addUser(User user);
@Update("UPDATE user SET username = #{username}, password = #{password} WHERE id = #{id}")
void updateUser(User user);
@Delete("DELETE FROM user WHERE id = #{id}")
void deleteUser(Integer id);
}
3.2. XML方式
在使用XML方式编写Mapper类时,需要在MyBatis的配置文件中进行配置,在application.properties中先配置Mapper接口所在的包名:
mybatis.mapper-locations=classpath:mapper/*.xml
接着,在resources/mapper目录下创建对应的XML文件,例如UserMapper.xml,然后在其中进行配置:
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="getUserById" parameterType="int" resultType="com.example.demo.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
<insert id="addUser" parameterType="com.example.demo.entity.User">
INSERT INTO user (username, password) VALUES (#{username}, #{password})
</insert>
<update id="updateUser" parameterType="com.example.demo.entity.User">
UPDATE user SET username = #{username}, password = #{password} WHERE id = #{id}
</update>
<delete id="deleteUser" parameterType="int">
DELETE FROM user WHERE id = #{id}
</delete>
</mapper>
4. 测试
完成了上面的步骤之后,就可以进行测试了。在Spring Boot的Controller或Service中注入刚才编写的Mapper接口,就可以直接进行数据库操作了。
在Controller中:
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/{id}")
public User getUserById(@PathVariable Integer id) {
return userMapper.getUserById(id);
}
@PostMapping
public void addUser(@RequestBody User user) {
userMapper.addUser(user);
}
@PutMapping("/{id}")
public void updateUser(@PathVariable Integer id, @RequestBody User user) {
user.setId(id);
userMapper.updateUser(user);
}
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Integer id) {
userMapper.deleteUser(id);
}
}
在Service中:
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public User getUserById(Integer id) {
return userMapper.getUserById(id);
}
public void addUser(User user) {
userMapper.addUser(user);
}
public void updateUser(User user) {
userMapper.updateUser(user);
}
public void deleteUser(Integer id) {
userMapper.deleteUser(id);
}
}
以上就是利用注解方式整合MyBatis的完整攻略,并附带了两个基本示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot 利用注解方式整合 MyBatis - Python技术站