# beetl-plus **Repository Path**: lcz-wj/beetl-plus ## Basic Information - **Project Name**: beetl-plus - **Description**: 一个基于 BeetlSQL、MyBatis、MyBatis-Plus 及 MyBatis-Plus-Join 开发的小巧工具,旨在**简化数据库操作,减少冗余代码** - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2025-07-01 - **Last Updated**: 2025-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, MySQL, Beetl ## README # Beetl-Plus ![Logo/Icon - 可选](https://foruda.gitee.com/avatar/1712901844009797908/1460989_lcz-wj_1712901843.png!avatar200) 一个基于 BeetlSQL、MyBatis、MyBatis-Plus 及 MyBatis-Plus-Join 开发的小巧工具,旨在**简化数据库操作,减少冗余代码**。 ## 🌟 项目简介 你是否厌倦了在项目中反复编写相似的 CRUD(增删改查)代码?你是否希望数据库操作能更智能、更简洁? 那么,这个工具或许正是你需要的!它**开箱即用**,通过巧妙的代码设计,能够自动判定目标数据库类型,并智能地拼接 SQL 语句,从而实现基本的数据库 CRUD 功能。让你的开发流程更加顺畅,代码更加精简! ## ✨ 核心特性 * **智能 SQL 拼接**:无需手动拼接 SQL,工具会根据代码逻辑自动生成,支持主流数据库。 * **减少代码量**:显著降低项目中与数据库交互相关的样板代码,提升开发效率。 * **开箱即用**:配置简单,快速集成到现有项目中。 * **自动数据库适配**:内置机制判定当前使用的数据库类型,自动调整 SQL 语法。 ## 🚀 快速开始 ```bash com.qen beetl-plus 1.0.0 ``` SQL执行时间记录:CustomLogInterceptor类 ```java import com.qen.interceptor.CustomLogInterceptor; @Bean public SqlManagerFactoryBean sqlManagerFactoryBean( @Qualifier("masterDataSource") DataSource masterDataSource, @Qualifier("slaveDataSources") List slaveDataSources, @Qualifier("dataSourceDruidProperties") DataSourceDruidProperties dataSourceDruidProperties) { SpringConnectionSource source = new SpringConnectionSource(); source.setMasterSource(masterDataSource); if (slaveDataSources != null && !slaveDataSources.isEmpty()) { source.setSlaveSource(slaveDataSources.toArray(new DataSource[0])); } SqlManagerFactoryBean factoryBean = new SqlManagerFactoryBean(); factoryBean.setCs(source); factoryBean.setNc(new UnderlinedNameConversion());//UnderlinedNameConversion,把下划线去掉,其后字母大写。最为常用,也符合数据库设计规范; factoryBean.setDbStyle(initDbStyle(dataSourceDruidProperties.getBeetlsql().getDbstyle())); factoryBean.setInterceptors(new Interceptor[]{new CustomLogInterceptor()}); return factoryBean; } ``` ```java @Table(name = "t_generic") @Data public class Generic { @Column("id") @AutoID private Long id; @Column("name") private String name; @Column("real_name") private String realName; @Column("del_flag") @LogicDel private Integer delFlag; } import com.qen.repository.BaseDao; public interface GenericDao extends BaseDao { } import com.qen.repository.BaseImpl; @Repository("testGenericDao") public class GenericDaoImpl extends BaseImpl implements GenericDao { } import com.qen.service.IService; public interface GenericService extends IService { } import com.qen.service.ServiceImpl; @Service public class GenericServiceImpl extends ServiceImpl implements GenericService { } @RestController @RequestMapping("/generic") public class GenericAction { @Autowired private GenericDao genericDao; @Autowired private GenericService genericService; @GetMapping("/{id}") public ResponseEntity get() { LambdaWrapper wrapper = Wrappers.lambdaJoin(Generic.class) .leftJoin(Users.class, Users::getId, Generic::getId) .eq(Generic::getId, 5) .eq(Users::getUsername, "admin") .selectAs(Generic::getId, GenericVo::getId) .selectAs(Generic::getRealName, GenericVo::getRealname) .selectAs(Generic::getName, GenericVo::getName) .selectAs(Generic::getDelFlag, GenericVo::getDelflag) .selectAs(Users::getUsername, GenericVo::getUsername); GenericVo genericVo = genericDao.selectJoinOne(GenericVo.class, wrapper); Wrapper wrapper = new LambdaQueryWrapper<>(Generic.class) .eq(Generic::getId, id) .like(Generic::getName, "2") .groupBy(Generic::getId) .orderByAsc(Generic::getId) .comment(" this is comment "); genericService.delete(wrapper); Wrapper wrapper = new LambdaUpdateWrapper() .set(Generic::getName, "NameUp") .set(Generic::getRealName, "RealNameUp") .eq(Generic::getId, 1); genericService.update(RoleResources.class, wrapper); return ResponseEntity.ok(ApiResponse.success(genericVo)); } } ``` ## 🛠️ 技术栈 * Java 8+ * BeetlSQL * MyBatis * MyBatis-Plus * MyBatis-Plus-Join ## 📜 版本信息 * **当前版本**: v1.0-SNAPSHOT (示例) * **兼容 JDK**: JDK 8 (当前版本) ## 🤝 贡献与反馈 欢迎社区贡献!无论是提交 Bug 报告、提出功能建议,还是直接参与代码开发,都请随时联系我们。 * **报告 Bug** / **提出建议**: [Issues](https://gitee.com/lcz-wj/beetl-plus/issues) * **参与贡献**: Fork 仓库,提交 Pull Request。 ## 📄 许可证 本项目采用 [Apache-2.0] 许可证。详情请参阅 [LICENSE](LICENSE) 文件。