开源软件名称:spring-jba
开源软件地址:https://gitee.com/leo_xi/spring-jba
开源软件介绍:
spring-jbaJavaBeanAccess java对象访问,基于JDK1.8+目前仅支持MySql
maven依赖最新版本 注意:从1.7.0开始与之前版本不兼容 注意升级
<dependency> <groupId>xin.xihc</groupId> <artifactId>spring-jba</artifactId> <version>${jba.version}</version></dependency> SpringJbaDemo演示Demohttps://gitee.com/leo_xi/SpringJbaDemo 注解解释@EnableJba 开启spring-jba创建表功能
@Table 该注解是声明对象为表对象,属性包含如下:(不支持继承关系)
1. value 1.2.0以后支持自定义表名2. remark 表的备注3. order (1.5.0+新增)顺序,默认99994. ignore (1.5.0+新增)是否忽略表,默认false @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 @Index (1.5.7+新增)该注解是声明(单列索引)表字段索引的,属性包含如下:(支持继承关系,可以使用父类的属性)
1. value 索引名,用于分组,默认为idx_xxxx2. type 索引类型,默认为普通索引(Normal,Unique,FullText)3. remark (1.5.8+新增)索引的备注 @OnUpdateCurrentTimestamp (1.6.1+新增)该注解是声明表字段是否自动更新时间戳(java.util.Date/java.sql.Timestamp)(支持继承关系,可以使用父类的属性)
@Alias 属性对应的列名(1.7.6+新增)主要用于查询时,列名与属性名不一致的问题。
@GroupIndex 分组索引、复合索引(1.7.8+)用于创建复合索引、目前没有继承关系。
@JsonHandler (1.8.9+)使用Json序列化到数据库(查询时并反序列化成对象)、支持继承。
类型转换对应表Java 类型(建议使用包装类) | Mysql 类型 |
---|
String | (1-64)char (65-19999)varchar /length>20000的为text | Byte | tinyint(3) | Short | smallint(5) | Integer | int(10) | Long | bigint(19) | Double | double(length,precision) | Float | double(length,precision) | BigDecimal | decimal(length,precision) | Boolean | tinyint(3) | java.util.Date | datetime(precision) | java.sql.Date | date | java.sql.Timestamp | Timestamp(precision) | java.sql.Time | Time(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); 列表查询数据库--Select18、public <T> T queryOne(Select select, Class<T> clazz); 单个查询数据库--Select单个查询19、public boolean update(Update update); 执行sql语句 - Update对象
联系&交流QQ群号:340654726 更新时间:2020-05-27 |
请发表评论