日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

【Java ORM】手写ORM框架:源代码、jar、生成JavaDoc文档

發布時間:2024/2/28 java 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java ORM】手写ORM框架:源代码、jar、生成JavaDoc文档 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SORMSourceCode

把這個手寫框架取名為SORM。

(1)源代碼(Eclipse項目文件):GitHub地址

(2)jar包、源代碼、JavaDoc文檔、使用說明:Github地址

一個簡單的手寫SORM框架,Java+MySQL,增刪改查,根據表信息自動生成JavaBean。

使用時,需要配置src下的db.properties文件,改成自己的數據庫名稱、路徑。配置示例:

driver=com.mysql.cj.jdbc.Driver //數據庫驅動 url=jdbc\:mysql\://localhost\:3306/sorm?serverTimezone=UTC //數據庫url user=root //用戶名 pwd=123456 //密碼 usingDB=mysql //mysq(能用)還是oracle(未測試) srcPath=C:/Users/Bug/eclipse-workspace3/SORMSourceCode/src //項目路徑 用于根據數據庫表名稱生成javabrean poPackage=com.bjsxt.po //自動生成的javabean保存的包(若不存在,則自動創建) queryClass=com.bjsxt.sorm.core.MySqlQuery //執行查詢的類名稱(不一定是mysql,可能是其他數據庫,其他數據庫需要自己實現類) poolMinSize=10 //連接池的最小連接數 poolMaxSize=100 //連接池的最大連接數

注意

  • 在src下建立db.properties,填寫相關內容。
  • 第一次使用時,先運行JavaFileUtils.java,根據數據庫表信息生成java文件,才能正常做一些測試。
  • 每張表目前僅支持一個主鍵。不能處理多個主鍵的情況。
  • po盡量使用包裝類,不要使用基本數據類型。
  • 幾乎每個.java文件都有自己的main測試方法,文件名見名知意,比如MySQLQuery是用來執行SQL語句的。就不多解釋啦。


    如何生成JavaDoc


    然后一路next即可。

    如果遇到字符集的問題報錯,使用:
    -encoding utf-8 -charset utf-8


    使用方式Demo

    (1)創建項目,添加兩個要用的jar包,按照自己的數據庫修改properties信息

    (2)手動運行一下TableContext.updateJavaPOFile();,自動生成po類

    package cn.hanquan.test;import com.bjsxt.sorm.core.TableContext;public class Test {public static void main(String[] args) {// 首先通過這個方法生成po類TableContext.updateJavaPOFile();} }

    運行結果示例

    加載class com.bjsxt.sorm.core.TableContext 初始化池,池中連接數:1 初始化池,池中連接數:2 初始化池,池中連接數:3 初始化池,池中連接數:4 初始化池,池中連接數:5 初始化池,池中連接數:6 初始化池,池中連接數:7 初始化池,池中連接數:8 初始化池,池中連接數:9 初始化池,池中連接數:10 建立表emp對應的java類:C:\Users\Bug\eclipse-workspace3\SORM_Test\src\com\bjsxt\po/Emp.java 編譯成功為0:0 C:\Users\Bug\eclipse-workspace3\SORM_Test\src\com\bjsxt\po/Emp.java .........C:\Users\Bug\eclipse-workspace3\SORM_Test\bin\com\bjsxt\po ---C:\Users\Bug\eclipse-workspace3\SORM_Test\src\com\bjsxt\po/Emp.class >>>C:\Users\Bug\eclipse-workspace3\SORM_Test\bin\com\bjsxt\po/Emp.class 建立表dept對應的java類:C:\Users\Bug\eclipse-workspace3\SORM_Test\src\com\bjsxt\po/Dept.java 編譯成功為0:0 C:\Users\Bug\eclipse-workspace3\SORM_Test\src\com\bjsxt\po/Dept.java .........C:\Users\Bug\eclipse-workspace3\SORM_Test\bin\com\bjsxt\po ---C:\Users\Bug\eclipse-workspace3\SORM_Test\src\com\bjsxt\po/Dept.class >>>C:\Users\Bug\eclipse-workspace3\SORM_Test\bin\com\bjsxt\po/Dept.class TableContext完成加載,已根據表結構生成java文件 建立表emp對應的java類:C:\Users\Bug\eclipse-workspace3\SORM_Test\src\com\bjsxt\po/Emp.java 編譯成功為0:0 C:\Users\Bug\eclipse-workspace3\SORM_Test\src\com\bjsxt\po/Emp.java .........C:\Users\Bug\eclipse-workspace3\SORM_Test\bin\com\bjsxt\po ---C:\Users\Bug\eclipse-workspace3\SORM_Test\src\com\bjsxt\po/Emp.class >>>C:\Users\Bug\eclipse-workspace3\SORM_Test\bin\com\bjsxt\po/Emp.class 建立表dept對應的java類:C:\Users\Bug\eclipse-workspace3\SORM_Test\src\com\bjsxt\po/Dept.java 編譯成功為0:0 C:\Users\Bug\eclipse-workspace3\SORM_Test\src\com\bjsxt\po/Dept.java .........C:\Users\Bug\eclipse-workspace3\SORM_Test\bin\com\bjsxt\po ---C:\Users\Bug\eclipse-workspace3\SORM_Test\src\com\bjsxt\po/Dept.class >>>C:\Users\Bug\eclipse-workspace3\SORM_Test\bin\com\bjsxt\po/Dept.class

    看到生成了這個包

    增刪改查:使用示例

    package cn.hanquan.test;import java.util.ArrayList; import java.util.List;import com.bjsxt.po.Emp; import com.bjsxt.sorm.core.Query; import com.bjsxt.sorm.core.QueryFactory; import com.bjsxt.sorm.core.TableContext;@SuppressWarnings("all") public class Test {public static void main(String[] args) {// 首先通過這個方法生成po類TableContext.updateJavaPOFile();//add01();//delete01();//update01();select02();}// 增public static void add01() {Emp e = new Emp();e.setAge(18);e.setEmpname("大蘿卜");e.setSalary(500000);Query q = QueryFactory.createQuery();q.insert(e);}// 刪public static void delete01() {Query q = QueryFactory.createQuery();Emp e = new Emp();e.setId(5);q.delete(e);}// 改public static void update01() {Query q = QueryFactory.createQuery();Emp e = new Emp();e.setId(11);e.setEmpname("參天大蘿卜");q.update(e, new String[] { "empname" });}// 查public static void select01() {Query q = QueryFactory.createQuery();List<Emp> list = new ArrayList<Emp>();list = q.queryRows("select * from emp where age>? and salary>?", Emp.class, new Object[] { 20, 5000 });for (Emp e : list) {System.out.println(e.toString());}}public static void select02() {Query q = QueryFactory.createQuery();List<Emp> list = new ArrayList<Emp>();System.out.println(q.queryUniqueRow("select * from emp where id>?", Emp.class, new Object[] { 2 }));} }

    總結

    以上是生活随笔為你收集整理的【Java ORM】手写ORM框架:源代码、jar、生成JavaDoc文档的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。