6 Star 18 Fork 8

半仙 / jfinal-orm-spring-boot-starter

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

jfinal-orm-spring-boot-starter

介绍

  • JFinal的SpringBoot启动器,独立引用ActiveRecord模块。
  • 支持多数据源、分库分表、多数据源事务管理。
  • 只需要简单配置即可自动完成装配。
  • 使用SpringBoot的时候,感觉没有很顺手的ORM。
  • 支持JFinal,为JFinal生态尽绵薄之力。
  • 行业清退导致的失业,又赶上特殊时期导致的待业,让人可以心境复杂的宅。

功能说明

  • 单数据源
  • 多数据源
  • 多数据源XA事务
  • 分库分表

技术选型

  • JFinal ActiveRecord
  • SpringBoot
  • Sharding-Jdbc(可选)
  • JTA+Atomikos(可选)

模块说明

  • core : 自动配置核心包
  • example : demo
  • example->single-datasource : 单数据源
  • example->multi-datasource :多数据源
  • example->multi-datasource-xa : 多数据源+XA事务支持
  • example->sharding-multi-datasource-xa : sharding-jdbc分库分表+XA事务
  • example->model-gener : Model的生成工具

配置说明

- 配置文件

参数 说明 例子
jfinal.orm.model-scan-package 需要扫描Model的包路径,多个包用英文逗号分隔 blingking.model1,blingking.model2
jfinal.orm.is-scan-child 是否扫描子包 默认false
jfinal.orm.datasource-enable 是否使用JFinal ORM来自动配置数据源。开启的话设置为:true 默认false
jfinal.orm.template 如果当前只有一个数据源,配置template即可。多个数据源请参照使用说明。 xxx1.sql,xxx2.sql

- 注解

@JFinalTable(表示当前类为数据库映射类)

参数 说明 例子
name 数据库表名 name = "t_order"
dataSourceName 当前Model对应的数据源 dataSourceName = "ds1"
  • 使用在映射类上面
  • name的匹配规则为松散匹配:数据库表名,去掉下划线,再转小写和类名转小写相同,则不需要配置。
  • 分表后,name按照分表规则配置,如:order1,order2,order3,则name="order"。
  • dataSourceName可以不配置。
  • 如果name符合匹配规则,则可以不添加此注解

@JFinalORMTx(事务注解)

参数 说明 例子
txType 当前方法的事务类型,默认为:txType = TxTypeEnum.NATIVE txType = TxTypeEnum.XA
dataSources 当前操作牵扯的数据源 dataSources={"ds1","ds2"}
  • 使用在需要事务的方法上
  • 单个数据源事务管理,可不添加dataSources参数
  • 多数据库事务管理
    • 使用NATIVE管理事务(默认)
      • 如果方法内操作的是同一个数据库,则添加当前数据源,如:dataSources="ds1"
      • 如果方法内操作的是不同数数据库,则添加多个数据源 如:dataSources={"ds1","ds2"}
    • 使用XA管理事务
      • 不需要添加dataSources参数
      • 开启XA,如:txType = TxTypeEnum.XA
      • 添加JTA+Atomikos相关依赖

数据源配置

  • 可使用JFinal ORM自动装配数据源到JFinal ORM。只需开启JFinal ORM数据源支持,如:jfinal.orm.datasource-enable。
  • 也可以自己编写配置文件,并自行使用Java Config配置数据源,项目启动后,会自动把数据源装配进JFinal ORM。

分库分表

  • 使用Sharding Jdbc完成分库分表。
  • 编写配置文件即可,项目启动后会自动完成装配。
  • 简单demo,可参照example->sharding-multi-datasource-xa
  • 详细配置文件可参照Sharding Jdbc相关配置。
  • 需要添加相关依赖:sharding-jdbc-spring-boot-starter

事务支持

  • 通过@JFinalORMTx开启事务

  • NATIVE

    • 默认类型
    • 支持多数据源,但是提交和回滚是循环操作的,不保证可靠性
    • 适合对可靠性要求不高的系统
  • XA

    • 需要手动开启
    • 支持多数据源,使用JTA+Atomikos实现,可靠性高
    • 需要添加相关依赖:transactions-jdbc和jta

Enjoy Sql使用

  • 如果只有一个数据源直接使用template即可
    • 如:jfinal.orm.template=xxx1.sql,xxx2.sql
  • 如果多个数据源,则根据数据源名称,独立配置temlpate
    • 如:jfinal.orm.templates.ds1=xxx1.sql,xxx2.sql
      jfinal.orm.templates.ds2=xxx1.sql,xxx2.sql

使用步骤

  • 使用example->model-gener生成model
  • 使用core包
  • 导入相关依赖
MIT License Copyright (c) 2020 半仙 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

JFinal的ORM太好用了,独立引用JFinal的ActiveRecord模块,集成的SpringBoot启动器。可自动配置单数据源、多数据源、集成Sharding-Jdbc可实现分库分表。并使用JTA+Atomikos实现了对多数据源事务的管理。只需要简单配置即可自动完成装配。 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/blingking/jfinal-orm-spring-boot-starter.git
git@gitee.com:blingking/jfinal-orm-spring-boot-starter.git
blingking
jfinal-orm-spring-boot-starter
jfinal-orm-spring-boot-starter
master

搜索帮助