下面是一份关于配置Spring Boot中MyBatis和事务管理的完整攻略,包含两个示例。
一、配置MyBatis和数据库
- 首先,需要在pom.xml文件中添加MyBatis和数据库依赖
<!-- MyBatis依赖 -->
<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>
<version>1.4.200</version>
</dependency>
- 在application.properties中配置数据库信息
# 数据库连接配置
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
# MyBatis 配置
mybatis.mapper-locations=classpath:mapper/*.xml
- 接下来,需要定义数据库表,并编写对应的Mapper接口和XML文件。这里以定义一个
user
表为例:
--定义user表
CREATE TABLE user (
id INTEGER PRIMARY KEY,
name VARCHAR(50),
age INTEGER
);
UserMapper.java
@Repository
public interface UserMapper {
@Select("SELECT * FROM user")
List<User> getAll();
}
UserMapper.xml
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="getAll" resultType="com.example.demo.model.User">
SELECT * FROM user;
</select>
</mapper>
- 编写
User
实体类,以及对应的测试用例
@Data
public class User {
private Integer id;
private String name;
private Integer age;
}
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class UserMapperTest {
@Autowired
private UserMapper userMapper;
@Test
public void testGetAllUsers() {
List<User> userList = userMapper.getAll();
Assert.assertEquals(0, userList.size());
}
}
二、配置事务管理
- 首先引入事务依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
- 在Spring Boot的启动类(例如
DemoApplication.java
)上添加事务管理注解
@SpringBootApplication
@EnableTransactionManagement
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
- 创建Service层,业务逻辑的实现,并添加事务注解
@Service
@Transactional(rollbackFor = Exception.class)
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> getAll() {
return userMapper.getAll();
}
@Override
public void addUser(User user) {
userMapper.addUser(user);
}
}
- 注意,在Mapper层也需要添加注解@Mapper,在启动类上使用@EnableAutoConfiguration,才能将Mybatis Mapper注册成Bean
@Mapper
@Repository
public interface UserMapper {
@Select("SELECT * FROM user")
List<User> getAll();
@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
void addUser(User user);
}
- 最后,编写Controller层,将业务逻辑暴露给外部调用
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/")
public List<User> getAllUsers() {
return userService.getAll();
}
@PostMapping("/")
public void addUser(@RequestBody User user) {
userService.addUser(user);
}
}
至此,我们已经完成了Spring Boot中MyBatis和事务管理的配置。
例如:
- 查询所有用户信息
请求路径:GET http://localhost:8080/users/
返回结果:
[
{
"id": 1,
"name": "张三",
"age": 18
},
{
"id": 2,
"name": "李四",
"age": 19
}
]
- 添加用户信息
请求路径:POST http://localhost:8080/users/
请求体:
{
"name": "王五",
"age": 20
}
返回结果:
请求成功,返回状态码200。
以上就是简单的示例,可以根据需要进行修改。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot配置mybatis和事务管理方式 - Python技术站