springboot项目两个不同包下类,需要获取数据库中的数据,是直接调用某个类的mapper类好?还是调用公用的server类好?
时间: 2024-03-28 18:39:49 浏览: 14
如果两个不同包下的类都需要获取数据库中的数据,那么调用公用的server类是更好的选择。这样可以避免代码的重复,提高代码的复用性和可维护性。同时,也可以将数据库操作的逻辑集中在一个类中,方便统一管理和调试。在调用公用的server类时,可以通过依赖注入的方式将mapper类注入到server类中,这样可以保证mapper类的单一职责,也可以更好的进行解耦。
相关问题
springboot中一个service可以调用不同的实体类的mapper吗
可以。在Springboot中,我们可以使用@Autowired或@Resource来注入不同的Mapper对象,并在Service类中调用它们。例如:
```java
@Service
public class MyService {
@Autowired
private UserMapper userMapper;
@Autowired
private OrderMapper orderMapper;
public List<User> getAllUsers() {
return userMapper.getAll();
}
public List<Order> getAllOrders() {
return orderMapper.getAll();
}
}
```
上面的示例中,MyService类注入了UserMapper和OrderMapper对象,并通过它们实现了获取所有用户和获取所有订单的功能。在一个Service类中调用不同的实体类的Mapper是非常常见的情况。
用springboot加mybatisplus项目 建立一个含有controller、 mapper、 service、 domain层的获取数据库数据的接口测试
好的,下面是一个使用Spring Boot和Mybatis Plus的示例项目,包括Controller、Mapper、Service和Domain层,用于获取数据库中的数据。
首先,你需要在pom.xml文件中添加以下依赖:
```xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.6</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.20</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
</dependencies>
```
然后,你需要在application.properties中添加以下配置:
```properties
# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# Mybatis Plus配置
mybatis-plus.mapper-locations=classpath:mapper/*.xml
mybatis-plus.global-config.db-config.id-type=auto
mybatis-plus.global-config.db-config.field-strategy=not_empty
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
mybatis-plus.global-config.db-config.insert-fill=createTime
mybatis-plus.global-config.db-config.update-fill=updateTime
```
其中,test是你的数据库名称,root是你的数据库用户名和密码。
接下来,我们创建一个User类作为Domain层:
```java
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
private LocalDateTime createTime;
private LocalDateTime updateTime;
}
```
然后,我们创建一个UserMapper接口作为Mapper层:
```java
public interface UserMapper extends BaseMapper<User> {
}
```
注意,这里我们使用了Mybatis Plus的BaseMapper接口,它提供了许多常用的CRUD方法。
接下来,我们创建一个UserService接口作为Service层:
```java
public interface UserService {
List<User> list();
}
```
然后,我们创建一个UserServiceImpl类作为Service层的实现:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> list() {
return userMapper.selectList(null);
}
}
```
最后,我们创建一个UserController类作为Controller层:
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/list")
public List<User> list() {
return userService.list();
}
}
```
现在,我们就可以通过访问http://localhost:8080/user/list来获取数据库中的所有User数据了。
希望这个示例对你有所帮助!