SimplifyDb java快捷操作數(shù)據(jù)庫發(fā)布啦

SimplifyDb

在java 中我們有多種方式操作數(shù)據(jù)庫,但是如果只是為了簡單處理使用一些框架,在使用中還是顯得麻煩奸柬。這里就整理一個簡單快速操作數(shù)據(jù)庫的一種方案

簡介

SimplifyDb 是一個Java基于druid的一款簡化寫sql語句操作mysql的框架偎捎。本項目主要采用反射讀寫需要操作的實體和表,同時項目還是提供多種主鍵生成器和自定義主鍵生成器接口方便用戶根據(jù)實際業(yè)務擴展主鍵生成器

項目特點
1. 快速配置和操作多數(shù)據(jù)庫
2. 多數(shù)據(jù)源配置自動切換
3. 提供多種主鍵生成器以及自定義主鍵生成器
4. 全局統(tǒng)一記錄數(shù)據(jù)創(chuàng)建人和修改人
5. 快速配置邏輯刪除功能
6. 寫操作支持異步執(zhí)行

使用示例:https://gitee.com/jiangzeyin/simplifydb-demo

文檔

參考API

博客專欄

安裝

Maven

在項目的pom.xml的dependencies中加入以下內(nèi)容:

<dependency>
    <groupId>cn.simplifydb</groupId>
    <artifactId>simplifydb</artifactId>
    <version>version</version>
</dependency>

注:VERSION 請更換為公共maven庫最新的版本號

版本變更

提供bug反饋或建議

項目特點描述:(使用druid 連接池)

1.支持多數(shù)據(jù)源

2.多數(shù)據(jù)源支持讀寫分離 和 隨機落取

3.接口形式記錄日志

4.接口形式獲取當前操作用戶

5.增 刪 改 可以使用異步執(zhí)行

6.對外提供 增 刪 改 執(zhí)行過程中的接口調(diào)用

7.自動記錄當前最后修改數(shù)據(jù)人 創(chuàng)建數(shù)據(jù)人和時間

8.自動記錄數(shù)據(jù)最后修改數(shù)據(jù)時間(和第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 查詢函數(shù)

cn.simplifydb.database.run.read.SelectPage 分頁查詢

cn.simplifydb.database.run.write.Insert 添加數(shù)據(jù)

cn.simplifydb.database.run.write.Remove 刪除數(shù)據(jù)

cn.simplifydb.database.run.write.Update 修改數(shù)據(jù)

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 為必需字段

其他字段均根據(jù)自己實際情況配置

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

配置字段具體含義請 查看https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%BD%AE%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8

初始化

1.先設置日志接口

cn.simplifydb.system.DbLog.setDbLogInterface()

方法傳入cn.simplifydb.system.DbLog.DbLogInterface 接口主要負責記錄util 執(zhí)行日志

2.開始初始化數(shù)據(jù)庫連接

cn.simplifydb.database.config.DataSourceConfig.init() 參數(shù)為配置文件的路徑

支持file: 穿稳、classpath:

3.設置實體轉(zhuǎn)換數(shù)據(jù)庫接口(根據(jù)class 獲取該實體存在的數(shù)據(jù)源中)

cn.simplifydb.database.DbWriteService.setWriteInterface()

方法傳入cn.simplifydb.database.DbWriteService.WriteInterface 接口主要負責處理實體對應的數(shù)據(jù)源標記和實體數(shù)據(jù)庫表名

</pre>

<nav class="octotree_sidebar ui-resizable octotree_oschina_sidebar" style="box-sizing: border-box; overflow: visible; top: 0px; right: 0px; left: 0px; bottom: 0px; border-right: none; z-index: 1000001; transition: transform 0.2s ease; transform: translate3d(-100%, 0px, 0px); position: fixed !important; padding-top: 54px; background-color: rgb(247, 247, 247); width: 373px;">[](javascript:void(0))
</nav>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市晌坤,隨后出現(xiàn)的幾起案子逢艘,更是在濱河造成了極大的恐慌,老刑警劉巖骤菠,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件它改,死亡現(xiàn)場離奇詭異,居然都是意外死亡商乎,警方通過查閱死者的電腦和手機央拖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鲜戒,你說我怎么就攤上這事专控。” “怎么了遏餐?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵伦腐,是天一觀的道長。 經(jīng)常有香客問我失都,道長柏蘑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任粹庞,我火速辦了婚禮咳焚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘信粮。我一直安慰自己黔攒,他們只是感情好,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布强缘。 她就那樣靜靜地躺著督惰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旅掂。 梳的紋絲不亂的頭發(fā)上赏胚,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機與錄音商虐,去河邊找鬼觉阅。 笑死,一個胖子當著我的面吹牛秘车,可吹牛的內(nèi)容都是我干的典勇。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼叮趴,長吁一口氣:“原來是場噩夢啊……” “哼割笙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起眯亦,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤伤溉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后妻率,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乱顾,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年宫静,在試婚紗的時候發(fā)現(xiàn)自己被綠了走净。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片券时。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖伏伯,靈堂內(nèi)的尸體忽然破棺而出革为,到底是詐尸還是另有隱情,我是刑警寧澤舵鳞,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站琢蛤,受9級特大地震影響蜓堕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜博其,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一套才、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧慕淡,春花似錦背伴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至携兵,卻和暖如春疾掰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背徐紧。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工静檬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人并级。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓拂檩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嘲碧。 傳聞我的和親對象是個殘疾皇子稻励,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)呀潭,斷路器钉迷,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 有同學要離開去別的地方讀博糠聪,昨天大家聚餐歡送。飯桌上谐鼎,有的人的品性真的是暴露無遺舰蟆,自己不喝酒就算了趣惠,我們幾個...
    古時尋閱讀 218評論 0 1
  • “我們重新認識吧味悄,不帶任何感情的那一種” 面前那位先生,跟年少一樣塌鸯,依舊笑的那么干凈好看侍瑟,春風般拂面。 那熟悉的聲...
    一只巡沫閱讀 1,516評論 6 13
  • intrinsicContentSize 字面意思是指view的固有大斜涨颜;這個屬性發(fā)揮的空間就是在autolayo...
    不辣先生閱讀 485評論 0 1
  • 方小冉在學校里擺足了驕傲。是啊茧球,誰見過隔三差五就換一條裙子的女生庭瑰,哪有人有那么多!每件衣服都是那么精致華麗抢埋,看人人...
    我住深海別墅閱讀 588評論 1 2