mybatis plush
时间: 2024-07-17 10:01:32 浏览: 103
MyBatis Plus是一个基于MyBatis的超体框架,它对MyBatis进行了增强和封装,简化了开发者在实际开发过程中对数据库操作的配置和编写,提供了一些便捷的功能如ORM映射、代码生成、CRUD操作等,极大地提高了开发效率。它的核心理念是“不侵入”MyBatis,即在保持MyBatis原生API的同时,增加了许多实用的工具方法和注解。
MyBatis Plus主要特性包括:
1. SQL构建助手:通过一些注解,自动生成动态SQL,减少了手写SQL的工作量。
2. ORM映射:支持一对多、多对一、一对一等复杂关联关系的自动映射。
3. API链式调用:提供了丰富的API,可以方便地进行数据库操作,并返回结果。
4. 表单校验:支持全局统一的字段验证规则。
5. 自动刷新缓存:在修改数据后能自动更新缓存,提高性能。
相关问题
mybatis-plush 多数据源
Mybatis-Plus 是 Mybatis 的增强工具,在 Mybatis 的基础上加入了许多实用的功能,如分页、逻辑删除、自动填充等。Mybatis-Plus 支持多数据源的配置,可以方便地实现多个数据源的切换。
具体实现方式如下:
1. 在 application.yml 文件中配置多个数据源:
```yaml
# 数据源1
spring:
datasource:
datasource1:
url: jdbc:mysql://localhost:3306/db1
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
# 数据源2
datasource2:
url: jdbc:mysql://localhost:3306/db2
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
```
2. 在 Mybatis-Plus 的配置类中配置多个数据源:
```java
@Configuration
public class MybatisPlusConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource.datasource1")
public DataSource dataSource1() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix = "spring.datasource.datasource2")
public DataSource dataSource2() {
return DataSourceBuilder.create().build();
}
@Bean(name = "db1")
public SqlSessionFactory db1SqlSessionFactory(@Qualifier("dataSource1") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean sessionFactoryBean = new MybatisSqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/db1/*.xml"));
return sessionFactoryBean.getObject();
}
@Bean(name = "db2")
public SqlSessionFactory db2SqlSessionFactory(@Qualifier("dataSource2") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean sessionFactoryBean = new MybatisSqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/db2/*.xml"));
return sessionFactoryBean.getObject();
}
@Bean(name = "db1TransactionManager")
public DataSourceTransactionManager db1TransactionManager(@Qualifier("dataSource1") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "db2TransactionManager")
public DataSourceTransactionManager db2TransactionManager(@Qualifier("dataSource2") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "db1SqlSessionTemplate")
public SqlSessionTemplate db1SqlSessionTemplate(@Qualifier("db1") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
@Bean(name = "db2SqlSessionTemplate")
public SqlSessionTemplate db2SqlSessionTemplate(@Qualifier("db2") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
```
3. 在需要使用多数据源的地方,注入对应的 SqlSessionTemplate,并指定使用哪个数据源:
```java
@Service
public class UserService {
@Autowired
@Qualifier("db1SqlSessionTemplate")
private SqlSessionTemplate db1SqlSessionTemplate;
@Autowired
@Qualifier("db2SqlSessionTemplate")
private SqlSessionTemplate db2SqlSessionTemplate;
public List<User> getUserListFromDb1() {
return db1SqlSessionTemplate.selectList("com.example.mapper.db1.UserMapper.getUserList");
}
public List<User> getUserListFromDb2() {
return db2SqlSessionTemplate.selectList("com.example.mapper.db2.UserMapper.getUserList");
}
}
```
这样就可以方便地实现多数据源的配置和切换。
MyBatis Plus
MyBatis Plus是一个基于MyBatis的增强工具,提供了很多方便的功能和特性,如自动生成代码、配置简化、增强查询效率等。它基于MyBatis进行封装,使用更方便,功能更强大。
MyBatis Plus提供了以下主要功能:
1. 自动生成代码:MyBatis Plus提供了代码生成器,可以根据数据库表自动生成相应的实体类、Mapper接口和XML文件,减少了手动编写代码的工作量。
2. 配置简化:MyBatis Plus简化了配置文件,提供了更加方便的注解方式,使得配置更加简洁明了。
3. 缓存优化:MyBatis Plus对缓存进行了优化,支持一级缓存和二级缓存,可以提高查询效率。
4. 查询优化:MyBatis Plus提供了多种查询方式,如批量查询、分页查询、排序查询等,可以提高查询效率。
5. 插件机制:MyBatis Plus提供了插件机制,可以通过编写插件来扩展功能,如数据校验、日志记录等。
6. 数据库连接池管理:MyBatis Plus提供了数据库连接池管理功能,可以自动管理数据库连接,提高性能。
总之,MyBatis Plus是一个功能强大的ORM框架,它简化了开发过程,提高了开发效率,使得开发者能够更加专注于业务逻辑的实现。