> @todo
- JPA - 冗长命名推理 @ugly
- queryDSL - 黑化版JPA @minor @ignore
- MBG - 自动生成代码 @nice
- MybatisPlus/tk - 无侵入增强 @nice
- JOOQ - 链式正统 @nice @minor @pay @ignore
- BeetlSQL - 去XML化 @minor @ignore
- APIJSON - 反转业务控制权 @doubt @ignore
- serverless - 灵活组装 @nice ->>
自动生成代码 @nice
-
MyBatisCodeHelperPro/EasyCode --> IDEA插件 @nice
-
mybatis-generator @nice
-
mybatis-generator-gui
- github.com/zouzg/mybatis-generator-gui
-
auto-value
- github.com/google/auto/tree/master/value
-
immutables
- github.com/immutables/immutables
- easycode使用 @simple
好像和MyBatisCodeHelperPro插件差不多
1) 安装Easy Code插件
2) 连接数据库
2) 选中数据库表, 右键EasyCode生成
无侵入增强 @nice
-
mybatis-plus ->>
-
TKmybatis ->>
-
Ktorm
- 基于kotlin??
- @code github.com/vincentlauvlwj/Ktorm
- @doc ktorm.liuwj.me/
// @demo
val employees = Employees
.joinReferencesAndSelect()
.whereWithConditions {
if (someCondition) {
it += Employees.managerId.isNull()
}
if (otherCondition) {
it += Employees.departmentId eq 1
}
}
.orderBy(Employees.id.asc())
.limit(0, 10)
.map { Employees.createEntity(it) }
人道主义去XML
- beetlsql => markdown @minor
- 直接写在mybatis3的注解里?? @ignore --> 放弃
- Mybatis去xml化 @building
- @code github.com/wuhao000/mybatis-xmlless-spring-starter
@SelectedProperties(properties=["id", "name", "age"])
fun findSimpleInfoList(): List
反转业务控制权
> 通俗讲就是甩锅给前端, 自己变成一个处理平台
- APIJSON @ignore
- 目前不太好用, 生态也不算成熟, 找不到后台demo, 算一种思路吧 @myself
- 后端接口和文档自动化,前端(客户端) 定制返回JSON的数据和结构
- @code
- github.com/APIJSON/APIJSON
- github.com/TommyLemon/APIJSON
- github.com/APIJSON/APIJSON-Demo/blob/master/APIJSON-Java-Server
- @doc
- github.com/APIJSON/APIJSON/blob/master/document.md
// 发送JSON
{
"Moment": {
"id":12,
"@column":"content"
}
}
// 响应结构
{
"Moment": {
"content": "1111534034"
},
"code": 200,
"msg": "success"
}
@Select
@Insert
@Update
@Delete
// 高级注解
@SelectProvider
@InsertProvider
@UpdateProvider
@DeleteProvider
@Results 用于填写结果集的多个字段的映射关系.
@Result 用于填写结果集的单个字段的映射关系.
@ResultMap 根据ID关联XML里面.
// 快速生成映射结果集
public static String getResultsStr(Class origin) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("@Results({n");
for (Field field : origin.getDeclaredFields()) {
String property = field.getName();
//映射关系:对象属性(驼峰)->数据库字段(下划线)
String column = new PropertyNamingStrategy.SnakeCaseStrategy().translate(field.getName()).toUpperCase();
stringBuilder.append(String.format("@Result(property = "%s", column = "%s"),n", property, column));
}
stringBuilder.append("})");
return stringBuilder.toString();
}


![[18禁]增删改查大法(八荒篇) [18禁]增删改查大法(八荒篇)](http://www.mshxw.com/aiimages/31/237360.png)
