springboot 整合 mybatis-plus 添加数据操作成功但数据库没有数据
时间: 2023-12-18 16:05:08 浏览: 181
如果你已经成功添加了数据但是数据库中没有数据,那么可能是你没有提交事务。
在 Spring Boot 中,如果你没有显式地开启事务,那么默认情况下是自动提交事务的,即每次操作完数据库后都会自动提交事务。但是如果你显式地开启了事务,那么就需要手动提交事务。
可以尝试在操作数据库后手动提交事务,例如:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Transactional
@Override
public void addUser(User user) {
userMapper.insert(user);
// 手动提交事务
TransactionAspectSupport.currentTransactionStatus().flush();
}
}
```
`@Transactional` 注解用于开启事务,`TransactionAspectSupport.currentTransactionStatus().flush()` 用于手动提交事务。
如果还是无法解决问题,可以检查一下数据源配置是否正确,以及 mapper 是否正确配置等等。
相关问题
springboot整合mybatis-plus
Spring Boot整合MyBatis-Plus的步骤如下:
1.引入依赖
在pom.xml文件中加入以下依赖:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.x.x</version>
</dependency>
```
2.配置数据源
在application.properties配置文件中配置数据源信息:
```properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
```
3.配置MyBatis-Plus
在application.properties配置文件中加入以下配置:
```properties
# MyBatis-Plus配置
mybatis-plus.mapper-locations=classpath:mapper/*.xml
mybatis-plus.configuration.map-underscore-to-camel-case=true
mybatis-plus.configuration.cache-enabled=false
```
4.创建实体类
创建实体类,并使用`@TableName`注解指定表名,使用`@TableId`注解指定主键。
```java
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
private String email;
}
```
5.创建Mapper接口
创建Mapper接口,并继承`BaseMapper`接口,可以直接使用MyBatis-Plus提供的基本数据库操作方法。
```java
public interface UserMapper extends BaseMapper<User> {
}
```
6.使用Mapper接口
在业务逻辑层中使用Mapper接口进行数据库操作,如下所示:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> list() {
return userMapper.selectList(null);
}
@Override
public User getById(Long id) {
return userMapper.selectById(id);
}
@Override
public void save(User user) {
userMapper.insert(user);
}
@Override
public void update(User user) {
userMapper.updateById(user);
}
@Override
public void delete(Long id) {
userMapper.deleteById(id);
}
}
```
至此,Spring Boot整合MyBatis-Plus的步骤就完成了。
SpringBoot整合mybatis-plus示例
可以回答这个问题,以下是一个简单的SpringBoot整合mybatis-plus的示例:
1. 首先,在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
```
2. 在application.properties文件中添加以下配置:
```
# 数据库配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
# MyBatis-Plus配置
mybatis-plus.mapper-locations=classpath:/mapper/*.xml
mybatis-plus.type-aliases-package=com.example.demo.entity
```
3. 创建实体类和Mapper接口
```
// 实体类
@Data
public class User {
private Long id;
private String name;
private Integer age;
}
// Mapper接口
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
```
4. 编写Service层和Controller层
```
// Service层
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
// Controller层
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userService.getById(id);
}
@PostMapping("/")
public boolean addUser(@RequestBody User user) {
return userService.save(user);
}
}
```
以上就是一个简单的SpringBoot整合mybatis-plus的示例。
阅读全文