整合使用jOOQ面向对象查询
一. jOOQ簡(jiǎn)介
1. jOOQ概述
jOOQ(Java Object Oriented Querying): 翻譯成中文是 Java面向?qū)ο蟛樵?的意思。
jOOQ是Data Geekery提供的基于Java的輕量級(jí)數(shù)據(jù)庫(kù)訪問(wèn)庫(kù),通過(guò)特定的語(yǔ)法將類以及數(shù)據(jù)庫(kù)模型翻譯成對(duì)應(yīng)的SQL語(yǔ)句實(shí)現(xiàn)實(shí)體與關(guān)系的映射,在數(shù)據(jù)庫(kù)與類之間建立起一一對(duì)應(yīng)關(guān)系,也可以讓我們通過(guò)它的流式API構(gòu)建出類型安全的SQL查詢。
jOOQ是一個(gè)基于Java編寫(xiě)SQL的工具包,具有簡(jiǎn)單、輕量、函數(shù)式編程寫(xiě)SQL等獨(dú)特優(yōu)勢(shì),非常適合敏捷快速迭代開(kāi)發(fā)。
jOOQ不管是商業(yè)版,還是開(kāi)源版本都能跟Spring Boot一塊使用。
2. jOOQ的特點(diǎn):
- 繼承了ORM框架的優(yōu)點(diǎn),簡(jiǎn)單操作,類型安全等。jOOQ將SQL建模為內(nèi)部DSL,使用Java編譯器編譯SQL語(yǔ)法,元數(shù)據(jù)和數(shù)據(jù)類型。
- jOOQ會(huì)根據(jù)數(shù)據(jù)庫(kù)的元數(shù)據(jù)來(lái)生成對(duì)應(yīng)的實(shí)體類,省略了原有開(kāi)發(fā)中不斷修改對(duì)應(yīng)數(shù)據(jù)庫(kù)的類名,屬性名。
- jOOQ允許運(yùn)行時(shí)配置數(shù)據(jù)庫(kù)模式,且支持行級(jí)別的安全。
- 支持聯(lián)合查詢,多表查詢,存儲(chǔ)過(guò)程等數(shù)據(jù)庫(kù)高級(jí)操作。
二. Spring Boot中整合jOOQ
1.創(chuàng)建Web項(xiàng)目
我們按照之前的經(jīng)驗(yàn),創(chuàng)建一個(gè)web程序,并將之改造成Spring Boot項(xiàng)目,具體過(guò)程略。
2. 添加依賴和插件
3. 創(chuàng)建JooqConfig配置文件
在resource目錄下,創(chuàng)建一個(gè)JooqConfig.xml配置文件,用來(lái)進(jìn)行關(guān)聯(lián)數(shù)據(jù)庫(kù),根據(jù)數(shù)據(jù)庫(kù)進(jìn)行逆向生成對(duì)應(yīng)的Java代碼。
4. mvn執(zhí)行逆向工程
在lifecycle中執(zhí)行compile命令,就可以自動(dòng)執(zhí)行逆向工程的命令了。
只要JooqConfig.xml配置文件沒(méi)問(wèn)題,并且依賴包都完整下載,就可以逆向工程執(zhí)行成功。
逆向工程執(zhí)行完畢后,我們就可以看到如下效果,發(fā)現(xiàn)自動(dòng)生成了很多的Java代碼,這些Java代碼就是根據(jù)我們數(shù)據(jù)庫(kù)中的表,生成的對(duì)應(yīng)的Java代碼。
對(duì)應(yīng)的數(shù)據(jù)庫(kù)表:
5. 配置application.yml文件
主要是配置關(guān)聯(lián)我們的數(shù)據(jù)庫(kù)。
6. 創(chuàng)建DataSource配置類
7.創(chuàng)建Service層代碼
創(chuàng)建UserService接口
創(chuàng)建UserServiceImpl類
8. 創(chuàng)建Controller測(cè)試接口
9. 創(chuàng)建入口類
10.總的項(xiàng)目結(jié)構(gòu)
11.測(cè)試接口
我們?cè)跒g覽器中進(jìn)行測(cè)試。
可以看到我們的接口功能已經(jīng)實(shí)現(xiàn)了,其他方法沒(méi)有一一測(cè)試,感興趣的朋友可以自己試驗(yàn)一下。
總結(jié)
以上是生活随笔為你收集整理的整合使用jOOQ面向对象查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 安装VMware虚拟机以及Ubuntu,
- 下一篇: 【面经】腾讯U3d面试面经 帧同步方向(