• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

spring-jba: JavaBeanAccessjava对象访问

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

spring-jba

开源软件地址:

https://gitee.com/leo_xi/spring-jba

开源软件介绍:

spring-jba

JavaBeanAccessjava对象访问,基于JDK1.8+目前仅支持MySql :grimacing:

maven依赖

最新版本

注意:从1.7.0开始与之前版本不兼容 注意升级

<dependency>    <groupId>xin.xihc</groupId>    <artifactId>spring-jba</artifactId>    <version>${jba.version}</version></dependency>

SpringJbaDemo演示Demo

https://gitee.com/leo_xi/SpringJbaDemo

注解解释

  1. @EnableJba 开启spring-jba创建表功能

  2. @Table 该注解是声明对象为表对象,属性包含如下:(不支持继承关系)

    1. value      1.2.0以后支持自定义表名2. remark     表的备注3. order      (1.5.0+新增)顺序,默认99994. ignore     (1.5.0+新增)是否忽略表,默认false
  3. @Column 声明字段属性包含如下:(支持继承关系,可以使用父类的属性)

    1. value           列名,1.7.6+支持自定义列名2. defaultValue    默认值3. notNull         是否允许为空(默认允许)4. primary         是否是主键(默认否)5. policy          主键生成策略(默认无)6. length          长度限制7. remark          备注8. precision       精度(小于length)(默认4)9. charset         (1.5.5+新增)设置表字符编码,默认utf810. order          (1.7.8+新增)对应表的列的顺序,默认0
  4. @Index (1.5.7+新增)该注解是声明(单列索引)表字段索引的,属性包含如下:(支持继承关系,可以使用父类的属性)

    1. value      索引名,用于分组,默认为idx_xxxx2. type       索引类型,默认为普通索引(Normal,Unique,FullText)3. remark     (1.5.8+新增)索引的备注
  5. @OnUpdateCurrentTimestamp (1.6.1+新增)该注解是声明表字段是否自动更新时间戳(java.util.Date/java.sql.Timestamp)(支持继承关系,可以使用父类的属性)

  6. @Alias 属性对应的列名(1.7.6+新增)主要用于查询时,列名与属性名不一致的问题。

  7. @GroupIndex 分组索引、复合索引(1.7.8+)用于创建复合索引、目前没有继承关系。

  8. @JsonHandler (1.8.9+)使用Json序列化到数据库(查询时并反序列化成对象)、支持继承。


类型转换对应表

Java类型(建议使用包装类)Mysql类型
String(1-64)char(65-19999)varchar/length>20000的为text
Bytetinyint(3)
Shortsmallint(5)
Integerint(10)
Longbigint(19)
Doubledouble(length,precision)
Floatdouble(length,precision)
BigDecimaldecimal(length,precision)
Booleantinyint(3)
java.util.Datedatetime(precision)
java.sql.Datedate
java.sql.TimestampTimestamp(precision)
java.sql.TimeTime(precision)
枚举类型varchar(length)
其他varchar(length)

使用教程

本项目为简易ORM,是基于spring-JdbcTemplate实现,支持事务管理,复杂操作则需要自己写SQL。

数据源连接池配置

#数据源配置spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://127.0.0.1:3306/testspring.datasource.username=rootspring.datasource.password=*****#使用阿里巴巴druid数据库连接池spring.datasource.type=com.alibaba.druid.pool.DruidDataSource#jba相关配置#jba表结构更新模式NONE-不操作,CREATE-只创建表,UPDATE-只更新表结构,ALL-所有,CREATE_DROP-启动时创建关闭时删除spring.jba.mode=NONE/ALL/CREATE/UPDATE/CREATE_DROP#打印sql执行记录,日志采用上slf4j记录logging.level.xin.xihc.jba.core.JbaTemplate=debug

初始化数据接口InitDataInterface

只需要实现如下方法:

void doInit(JbaTemplate jbaTemplate);

表对象的增删改查操作

实际使用:首先主类入口添加注解@EnableJba
再需要使用的地方引入:

@Autowiredprivate JbaTemplate jbaTemplate;

分页对象PageInfo中增加needTotalCount是否需要查询总数量(默认true)

即可使用JbaTemplate的方法。。具体方法解析如下:表对象(需要获取表名)-model,参数对象-params

1、public boolean insertModel(Object model); 插入单个对象INSERT INTO tblName (id,name) VALUES (:id,:name);

2、public void insertModels(Object... models); 批量插入多个相同表对象(建议一次性不超过50个)

3、public boolean updateModel(Object model, String... fieldNames) throws RuntimeException; 更新对象

4、public boolean deleteModel(Object model) throws RuntimeException; 删除对象

5、public <T> T queryColumn(String sql, Object params, Class<T> clazz); 只能查询某列的值,支持Map的params

6、public int queryCount(String sql, Object params); 查询数量,支持Map的params

7、public int queryCount(Object model); 查询某个对象的数量

8、public <T> T queryModelOne(Object model, Class<T> clazz, String... orderBy); 查询单个对象

9、public T queryMixModelOne queryOne(String sql, Object params, Class clazz); 查询单个混合(自定义)对象,支持Map的params

10、public <T> List<T> queryModelList(Object model, Class<T> clazz, PageInfo pageInfo, String... orderBy); 查询对象的列表

11、public List queryMixModelList queryList(String sql, Object params, Class clazz, PageInfo pageInfo); 查询混合对象的列表,支持Map的params

12、public boolean executeSQL(final String sql); 执行某个sql语句

13、public boolean executeSQL(final String sql, Object params); 执行某个带参数的sql语句,支持Map的params

14、public NamedParameterJdbcTemplate getJdbcOperations(); 可以使用更多内部原生方法(例如:BOLB字段的处理、储存过程的调用)

15、public void batchUpdate(final String sql, Map<String, ?>... params); 批量执行sql,插入INSERT、UPDATE都可以

16、public void batchUpdate(final String sql, Object[] models); 批量执行sql,插入INSERT、UPDATE都可以

1.8.6 新增方法

  • 17、public <T> List<T> queryList(Select select, Class<T> clazz, PageInfo pageInfo); 列表查询数据库--Select
  • 18、public <T> T queryOne(Select select, Class<T> clazz); 单个查询数据库--Select单个查询
  • 19、public boolean update(Update update); 执行sql语句 - Update对象

联系&交流

QQ群号:340654726Spring-Jba交流群

更新时间:2020-05-27


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap