【Java ORM】手写ORM框架:源代码、jar、生成JavaDoc文档
生活随笔
收集整理的這篇文章主要介紹了
【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 //連接池的最大連接數注意
幾乎每個.java文件都有自己的main測試方法,文件名見名知意,比如MySQLQuery是用來執行SQL語句的。就不多解釋啦。
如何生成JavaDoc
然后一路next即可。
如果遇到字符集的問題報錯,使用:
-encoding utf-8 -charset utf-8
使用方式Demo
(1)創建項目,添加兩個要用的jar包,按照自己的數據庫修改properties信息
(2)手動運行一下TableContext.updateJavaPOFile();,自動生成po類
運行結果示例
加載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文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【MySQL查询】复杂查询:别名、外键j
- 下一篇: 【Java单元测试】如何进行单元测试、异