下面我将详细讲解如何在Spring Boot中集成MyBatis,访问数据库的完整步骤。
第一步:引入相关依赖
在pom.xml文件中添加以下依赖,其中包括Spring Boot的启动器、MyBatis的启动器、MySQL数据库连接驱动、MyBatis的Spring Boot集成包以及数据库连接池依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
第二步:配置application.properties文件
在Spring Boot项目的src/main/resources目录下,创建application.properties文件,添加以下配置,其中包括MySQL数据库连接配置、MyBatis的mapper文件扫描路径配置、MyBatis的类型别名配置以及Druid连接池的配置。
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.demo.entity
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
spring.datasource.druid.test-on-borrow=true
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.test-on-return=true
spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.max-wait=60000
spring.datasource.druid.filters=stat,wall,log4j
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
第三步:创建实体类和Mapper接口
在我们的Java代码中,需要首先定义要操作的实体类,并实现与数据库中字段一一对应的映射关系。
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private Integer age;
// 省略 getter 和 setter 方法
}
接着,我们需要定义Mapper接口来访问数据库。此处采用注解方式实现,具体细节请参考官方文档。
@Mapper
public interface UserMapper {
@Select("select * from user")
List
@Insert("insert into user(name, age) values (#{name}, #{age})")
int save(User user);
@Update("update user set name=#{name}, age=#{age} where id=#{id}")
void update(User user);
@Delete("delete from user where id=#{id}")
void delete(Integer id);
}
第四步:创建Service层
在我们的业务逻辑中,需要调用Mapper接口来访问数据库,并在需要的时候对数据进行处理。为了使我们的代码更加清晰和易于维护,我们可以将Mapper的操作封装到Service层中。
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> findAll() {
return userMapper.findAll();
}
public boolean save(User user) {
return userMapper.save(user) > 0;
}
public boolean update(User user) {
userMapper.update(user);
return true;
}
public boolean delete(Integer id) {
userMapper.delete(id);
return true;
}
}
第五步:创建Controller层
在我们的控制器中,需要调用Service层来进行业务操作,并且根据用户的请求返回不同的响应。此处我们采用Restful风格的API,其中GET请求用于查询,POST请求用于新增,PUT请求用于修改,DELETE请求用于删除。
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("")
public List<User> findAll() {
return userService.findAll();
}
@PostMapping("")
public boolean save(@RequestBody User user) {
return userService.save(user);
}
@PutMapping("/{id}")
public boolean update(@PathVariable Integer id, @RequestBody User user) {
user.setId(id);
return userService.update(user);
}
@DeleteMapping("/{id}")
public boolean delete(@PathVariable Integer id) {
return userService.delete(id);
}
}
第六步:运行测试
在以上操作完成后,我们可以运行我们的应用程序来测试是否能正常访问我们的数据库。此处给出两个示例,分别测试查询所有用户和新增一个用户。
@Test
public void testFindAll() {
List
System.out.println(userList);
}
@Test
public void testSave() {
User user = new User();
user.setName("test");
user.setAge(18);
userService.save(user);
}
以上就是Spring Boot集成MyBatis访问数据库的方法的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot集成MyBatis访问数据库的方法 - Python技术站