当前位置: 首页 > news >正文

SimplifyDb java快捷操作数据库发布啦


-- QQ群:136715345 --

SimplifyDb

在java 中我们有多种方式操作数据库,但是如果只是为了简单处理使用一些框架,在使用中还是显得麻烦。这里就整理一个简单快速操作数据库的一种方案

简介

SimplifyDb 是一个Java基于druid的一款Builder简化写sql语句操作的框架。本项目主要采用反射读写需要操作的实体和表,同时项目还是提供多种主键生成器和自定义主键生成器接口方便用户根据实际业务扩展主键生成器

项目特点

  1. 快速配置和操作多数据库
  2. 多数据源配置自动切换
  3. 提供多种主键生成器以及自定义主键生成器
  4. 全局统一记录数据创建人和修改人
  5. 快速配置逻辑删除功能
  6. 写操作支持异步执行

使用示例:src/test/java/cn/simplifydb

文档

参考文档

参考API

示例代码

博客专栏

安装

Maven

在项目的pom.xml的dependencies中加入以下内容:

<dependency>
    <groupId>cn.simplifydb</groupId>
    <artifactId>simplifydb</artifactId>
    <version>version</version>
</dependency>
复制代码

注:VERSION 请更换为公共maven库最新的版本号

mvnrepository.com/artifact/cn…

版本变更

  • Release版本变更说明
  • 1.x版本变更说明

提供bug反馈或建议

  • 码云
  • Github

项目特点描述:(使用druid 连接池)

1.支持多数据源

2.多数据源支持读写分离 和 随机落取

3.接口形式记录日志

4.接口形式获取当前操作用户

5.增 删 改 可以使用异步执行

6.对外提供 增 删 改 执行过程中的接口调用

7.自动记录当前最后修改数据人 创建数据人和时间

8.自动记录数据最后修改数据时间(和第5点不冲突)

欢迎━(

`∀´

)ノ亻!大家测评

cn.simplifydb.database.config.DataSourceConfig 工具使用配置类

cn.simplifydb.system.DbLog 工具日志为了各个项目适配,使用了接口形式来提供记录日志

cn.simplifydb.database.run.read.IsExists 判断是否存在

cn.simplifydb.database.run.read.Select 多种方式查询

cn.simplifydb.database.run.read.SelectFunction 查询函数

cn.simplifydb.database.run.read.SelectPage 分页查询

cn.simplifydb.database.run.write.Insert 添加数据

cn.simplifydb.database.run.write.Remove 删除数据

cn.simplifydb.database.run.write.Update 修改数据

cn.simplifydb.database.run.write.Transaction 事物操作

示例配置:(db.properties)

sourceTag=core
configPath=file:/test/read.properties
systemKey=com.yoke   
systemKeyColumn=url,username,password
#
lastModify.time=UNIX_TIMESTAMP(NOW())
lastModify.class=com.yoke.entity.EditOptBaseEntity,com.yoke.entity.AdminOptBaseEntity
lastModify.column.user=lastModifyUser
lastModify.column.time=lastModifyTime
#
create.class=com.yoke.entity.AdminOptBaseEntity
create.column.user=createUser
#
systemColumn.pwd=pwd
systemColumn.active=isDelete
systemColumn.active.value=0
systemColumn.inActive.value=1
#
systemColumn.modify.status=true
systemColumn.modify.column=modifyTime
systemColumn.modify.time=UNIX_TIMESTAMP(NOW())
#
systemColumn.notPutUpdate=modifyTime,isDelete,createTime,createUser,lastModifyUser,lastModifyTime,id
systemColumn.columnDefaultValue=modifyTime:UNIX_TIMESTAMP(NOW()),createTime:UNIX_TIMESTAMP(NOW())
systemColumn.writeDefaultRemove=createUser,lastModifyUser,lastModifyTime,id,isDelete
systemColumn.readDefaultRemove=pwd
systemColumn.selectDefaultColumns=*
#
systemColumn.defaultRefKeyName=id
systemColumn.defaultKeyName=id
复制代码

sourceTag,configPath 为必需字段

其他字段均根据自己实际情况配置

systemKey 为configPath 中加密的密钥

systemKeyColumn 为configPath 中哪些字段是为加密的字段

实例配置:(file:/test/read.properties)

core.driver=com.mysql.jdbc.Driver
core.url=1953342c4b
core.username=12b0ecd
core.password=9085ada2469
core.init=true
core.maxActive=10000
core.validationQuery=SELECT 'x'
core.testOnReturn=false
core.testOnBorrow=false
core.testWhileIdle=true
core.minIdle=30
core.initialSize=1
core.removeAbandoned=true
core.removeAbandonedTimeout=60
core.logAbandoned=true
复制代码

配置字段具体含义请 查看github.com/alibaba/dru…

#初始化

1.先设置日志接口

cn.simplifydb.system.DbLog.setDbLogInterface()

方法传入cn.simplifydb.system.DbLog.DbLogInterface 接口主要负责记录util 执行日志

2.开始初始化数据库连接

cn.simplifydb.database.config.DataSourceConfig.init() 参数为配置文件的路径

支持file: 、classpath: 、Properties

3.设置实体转换数据库接口(根据class 获取该实体存在的数据源中)

cn.simplifydb.database.DbWriteService.setWriteInterface()

方法传入cn.simplifydb.database.DbWriteService.WriteInterface 接口主要负责处理实体对应的数据源标记和实体数据库表名

更多使用示例:src/test/java/cn/simplifydb


转载于:https://juejin.im/post/5ba5eec2f265da0a972e1d6d

相关文章:

  • PHP7中我们应该学习会用的新特性
  • 用户认证--------------auth模块
  • 贪吃蛇小游戏-----C语言实现
  • php+xml有什么用
  • SpringBoot(六)-- 静态资源处理
  • django开发-定时任务的使用
  • VB6实现真正的继承【转】
  • WPF 窗口
  • 三菱数控CNC系统G代码M代码大全
  • Java 注释
  • ansible debug模块学习笔记
  • idea常用快捷键
  • MySql 用户管理 中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束):...
  • 迎双11十周年,OceanBase 2.0挑战新巅峰
  • PHP 字符串
  • [笔记] php常见简单功能及函数
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • HTML中设置input等文本框为不可操作
  • JavaScript 一些 DOM 的知识点
  • JavaScript对象详解
  • Java程序员幽默爆笑锦集
  • js
  • linux安装openssl、swoole等扩展的具体步骤
  • Making An Indicator With Pure CSS
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 简单易用的leetcode开发测试工具(npm)
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 小程序测试方案初探
  • 用Visual Studio开发以太坊智能合约
  • 栈实现走出迷宫(C++)
  • 回归生活:清理微信公众号
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (1)SpringCloud 整合Python
  • (ros//EnvironmentVariables)ros环境变量
  • (二)hibernate配置管理
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (三)c52学习之旅-点亮LED灯
  • (算法)求1到1亿间的质数或素数
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (轉貼) UML中文FAQ (OO) (UML)
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .net mvc部分视图
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .Net6使用WebSocket与前端进行通信
  • @Transactional 竟也能解决分布式事务?
  • [Android]通过PhoneLookup读取所有电话号码
  • [AX]AX2012开发新特性-禁止表或者表字段