赞
踩
Spring Boot是一个用于快速构建独立、生产级别的Spring应用程序的框架。而MyBatis是一个开源的持久层框架,可以与Spring Boot无缝集成,提供强大的数据库访问能力。
本文将介绍如何在Spring Boot项目中集成MyBatis,并展示一些常用的操作示例。
首先,我们需要创建一个Spring Boot项目。你可以使用Spring Initializr(https://start.spring.io/)来快速生成一个基础的Spring Boot项目。
在项目的pom.xml
文件中添加以下依赖:
<dependencies> <!-- Spring Boot相关依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MyBatis依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <!-- 数据库驱动依赖,根据自己的数据库选择 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> <!-- 其他依赖... --> </dependencies>
在application.properties
(或application.yml
)文件中配置数据库连接信息,例如:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
在application.properties
(或application.yml
)文件中配置Mapper文件路径,例如:
#不配置此项 会提示绑定失败!
mybatis.mapper-locations=classpath:mapping/*.xml
创建一个实体类,用于映射数据库表的字段。例如,创建一个名为User
的实体类:
public class User {
private Long id;
private String username;
private String password;
// 其他字段...
// getter和setter方法...
}
创建一个Mapper接口,用于定义数据库操作的方法。例如,创建一个名为UserMapper
的接口:
public interface UserMapper {
void insert(User user);
void update(User user);
void delete(Long id);
User findById(Long id);
List<User> findAll();
}
在resources目录下创建一个与Mapper接口同名的XML文件,用于编写SQL语句。例如,创建一个名为UserMapper.xml
的文件:
<mapper namespace="com.example.mapper.UserMapper"> <insert id="insert" parameterType="com.example.entity.User"> INSERT INTO user (username, password) VALUES (#{username}, #{password}) </insert> <update id="update" parameterType="com.example.entity.User"> UPDATE user SET username=#{username}, password=#{password} WHERE id=#{id} </update> <delete id="delete" parameterType="java.lang.Long"> DELETE FROM user WHERE id=#{id} </delete> <select id="findById" parameterType="java.lang.Long" resultType="com.example.entity.User"> SELECT * FROM user WHERE id=#{id} </select> <select id="findAll" resultType="com.example.entity.User"> SELECT * FROM user </select> </mapper>
创建一个Service接口和实现类,用于调用Mapper接口中的方法。例如,创建一个名为UserService
的接口和实现类:
public interface UserService { void addUser(User user); void updateUser(User user); void deleteUser(Long id); User getUserById(Long id); List<User> getAllUsers(); } @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public void addUser(User user) { userMapper.insert(user); } @Override public void updateUser(User user) { userMapper.update(user); } @Override public void deleteUser(Long id) { userMapper.delete(id); } @Override public User getUserById(Long id) { return userMapper.findById(id); } @Override public List<User> getAllUsers() { return userMapper.findAll(); } }
创建一个Controller类,用于处理HTTP请求。例如,创建一个名为UserController
的类:
@RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @PostMapping public void addUser(@RequestBody User user) { userService.addUser(user); } @PutMapping("/{id}") public void updateUser(@PathVariable Long id, @RequestBody User user) { user.setId(id); userService.updateUser(user); } @DeleteMapping("/{id}") public void deleteUser(@PathVariable Long id) { userService.deleteUser(id); } @GetMapping("/{id}") public User getUserById(@PathVariable Long id) { return userService.getUserById(id); } @GetMapping public List<User> getAllUsers() { return userService.getAllUsers(); } }
SpringBoot入口配置@MapperScan
package com.demo; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; // 配置MapperScan 避免找不到Bean的异常 @MapperScan("com.demo.dao") @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication .class, args); } }
现在,你可以运行Spring Boot项目,并通过HTTP请求访问API接口了。
本文介绍了如何在Spring Boot项目中集成MyBatis,并展示了一些常用的操作示例。希望对你有帮助。如果你有任何问题或建议,欢迎留言讨论!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。