Skip to the content.

ORM_core

简介

设计初衷

为什么要用这款框架

  1. 支持标准 jsr220 persistence-api 的注解。
  2. 没有学习成本:只需要 引入 @TableInfo 注解就可以实现映射。
  3. 支持扩展,字段名与数据库名字对应关系可以自定义。是否初始化。
  4. 支持 Function 编程,FunctionfieldName 也进行了缓存。 例如:#getUserNameuserName 的对应关系。
  5. 快,无任何反射运行时的消耗!!!
  6. 不想引入其他的依赖,又不想使用便捷的 API,(你引入 spring-data-jpa ,就立马绑定上了,而且还没有 Function 与 column 的对应关系)
  7. 高扩展性,可以自定义实现 fieldNamecolumnName 对应关系,比如,你们的表明开头都有 “xxx_” 这种,也很容易做到。

Feature

Tips

例子

引入:

<dependency>
    <groupId>top.darian</groupId>
    <artifactId>orm-core-spring</artifactId>
</dependency>

Java使用

@SpringBootApplication
@TableInfoComponentScan("top.darian.orm.core.example")
public class OrmCoreExampleApplication {

  public static void main(String[] args) {
    SpringApplication.run(OrmCoreExampleApplication.class, args);
    // user_name
    System.out.println(
            BeanToDataBaseUtils.getColumnByFunctionName(
                    TestModule::getUserName,
                    TestModule.class));

    // user_name
    System.out.println(
            BeanToDataBaseUtils.getColumnBySBiConsumerName(
                    TestModule::setUserName,
                    TestModule.class));

    // test_module
    System.out.printf(BeanToDataBaseUtils.getTableNameByClazz(TestModule.class));

  }
}

@TableInfo
@Data
class TestModule {
  private String userName;
}

自定义扩展

# 系统启动的时候是否把 对应关系 初始化
#orm.core.earlyInitialization=true
orm.core.earlyInitialization=false
# 全局 fieldName 和 column 对应关系 默认策略: top.darian.orm.core.spring.util.module.mapping.SnakeCaseFieldNamingStrategy
orm.core.fieldNamingStrategy=classFullName
# 全局 entity.classSimpleName 和 tableName 对应关系 默认策略: top.darian.orm.core.spring.util.module.mapping.SnakeCaseFieldNamingStrategy
orm.core.tableNamingStrategy=classFullName

后续计划:

<TableInfo:annotation package="xxx.xxx.xx" />

版本迭代