mybatis-plus工具类
时间: 2023-11-17 18:41:05 浏览: 80
MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上进行了一系列的封装,简化了 MyBatis 的开发,提高了开发效率。MyBatis-Plus 提供了常用的增删改查操作的封装,还提供了代码生成器等辅助开发工具。使用 MyBatis-Plus 可以让我们更轻松地实现数据访问层的开发。
相关问题
Mybatis-Plus工具类
Mybatis-Plus是一个优秀的Mybatis增强工具,它可以极大地简化Mybatis的开发流程,提高开发效率。下面是一个基于Mybatis-Plus的工具类示例:
```java
public class MybatisPlusUtils {
/**
* 获取MybatisPlus的全局配置对象
* @return GlobalConfig对象
*/
public static GlobalConfig getGlobalConfig() {
GlobalConfig globalConfig = new GlobalConfig();
//设置主键自增策略
globalConfig.setSqlInjector(new AutoSqlInjector());
globalConfig.setDbConfig(new GlobalConfig.DbConfig()
.setLogicDeleteValue("1")
.setLogicNotDeleteValue("0")
.setIdType(IdType.AUTO));
return globalConfig;
}
/**
* 获取MybatisPlus的数据源对象
* @param driver 数据库驱动
* @param url 数据库连接URL
* @param username 数据库用户名
* @param password 数据库密码
* @return DataSource对象
*/
public static DataSource getDataSource(String driver, String url, String username, String password) {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driver);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
/**
* 获取MybatisPlus的SqlSessionFactory对象
* @param dataSource 数据源对象
* @param globalConfig 全局配置对象
* @return SqlSessionFactory对象
*/
public static SqlSessionFactory getSqlSessionFactory(DataSource dataSource, GlobalConfig globalConfig) {
MybatisConfiguration configuration = new MybatisConfiguration();
//开启驼峰命名规则
configuration.setMapUnderscoreToCamelCase(true);
//将全局配置对象添加到Mybatis配置对象中
configuration.setGlobalConfig(globalConfig);
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
return builder.build(configuration, new MybatisPlusInterceptor[]{new PaginationInterceptor()}, dataSource);
}
/**
* 获取MybatisPlus的SqlSession对象
* @param sqlSessionFactory SqlSessionFactory对象
* @return SqlSession对象
*/
public static SqlSession getSqlSession(SqlSessionFactory sqlSessionFactory) {
return sqlSessionFactory.openSession();
}
}
```
使用该工具类,可以方便地获取Mybatis-Plus所需的全局配置、数据源、SqlSessionFactory和SqlSession对象。在使用时,只需要传入相应的参数即可。
mybatis-plus工具类save or update
MyBatis-Plus提供了方便的工具类来执行save or update操作。你可以使用`saveOrUpdate`方法来实现。
下面是一个示例代码:
```java
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
public class YourService extends ServiceImpl<YourMapper, YourEntity> {
public boolean saveOrUpdate(YourEntity entity) {
if (entity.getId() != null) {
// 如果实体对象的id不为空,则执行update操作
return updateById(entity);
} else {
// 如果实体对象的id为空,则执行save操作
return save(entity);
}
}
public boolean saveOrUpdateByWrapper(YourEntity entity) {
if (entity.getId() != null) {
// 如果实体对象的id不为空,则执行update操作
return update(entity, new UpdateWrapper<YourEntity>().eq("id", entity.getId()));
} else {
// 如果实体对象的id为空,则执行save操作
return save(entity);
}
}
}
```
上述代码中,`YourEntity`是你的实体类,`YourMapper`是你的Mapper接口。`YourService`继承自`ServiceImpl`,它提供了一些方便的方法来操作数据库。
使用`saveOrUpdate`方法时,如果实体对象的id不为空,则执行update操作;否则执行save操作。
另外,你还可以使用带有`UpdateWrapper`参数的`saveOrUpdateByWrapper`方法,通过设置条件来执行update操作。
这样你就可以使用MyBatis-Plus的工具类来执行save or update操作了。