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                                                  //连接池的最大连接数

注意

  1. 在src下建立db.properties,填写相关内容。
  2. 第一次使用时,先运行JavaFileUtils.java,根据数据库表信息生成java文件,才能正常做一些测试。
  3. 每张表目前仅支持一个主键。不能处理多个主键的情况。
  4. 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文档相关推荐

  1. java计算机毕业设计汽车租赁管理系统源代码+数据库+系统+lw文档

    java计算机毕业设计汽车租赁管理系统源代码+数据库+系统+lw文档 java计算机毕业设计汽车租赁管理系统源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...

  2. java计算机毕业设计汽车客运站票务管理系统源代码+数据库+系统+lw文档

    java计算机毕业设计汽车客运站票务管理系统源代码+数据库+系统+lw文档 java计算机毕业设计汽车客运站票务管理系统源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  3. java计算机毕业设计医院远程诊断系统源代码+系统+数据库+lw文档

    java计算机毕业设计医院远程诊断系统源代码+系统+数据库+lw文档 java计算机毕业设计医院远程诊断系统源代码+系统+数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...

  4. java计算机毕业设计网上购物商城源代码+数据库+系统+lw文档

    java计算机毕业设计网上购物商城源代码+数据库+系统+lw文档 java计算机毕业设计网上购物商城源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软 ...

  5. java计算机毕业设计网络课程考试源代码+数据库+系统+lw文档

    java计算机毕业设计网络课程考试源代码+数据库+系统+lw文档 java计算机毕业设计网络课程考试源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软 ...

  6. java计算机毕业设计汽车维修服务系统源代码+数据库+系统+lw文档

    java计算机毕业设计汽车维修服务系统源代码+数据库+系统+lw文档 java计算机毕业设计汽车维修服务系统源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...

  7. java计算机毕业设计网上书店管理系统源代码+数据库+系统+lw文档

    java计算机毕业设计网上书店管理系统源代码+数据库+系统+lw文档 java计算机毕业设计网上书店管理系统源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...

  8. java计算机毕业设计水质监测数据采集系统源代码+数据库+系统+lw文档

    java计算机毕业设计水质监测数据采集系统源代码+数据库+系统+lw文档 java计算机毕业设计水质监测数据采集系统源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  9. java计算机毕业设计网上租房管理源代码+数据库+系统+lw文档

    java计算机毕业设计网上租房管理源代码+数据库+系统+lw文档 java计算机毕业设计网上租房管理源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软 ...

  10. java计算机毕业设计旅游信息管理系统源代码+数据库+系统+lw文档

    java计算机毕业设计旅游信息管理系统源代码+数据库+系统+lw文档 java计算机毕业设计旅游信息管理系统源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...

最新文章

  1. 开发者关心的十个数据库技术问题
  2. 读入一组文本行,打印最长的文本行
  3. GridView 序号 排序 正序 倒序
  4. Python 越来越火,为什么?
  5. SAP Spartacus 支持 Vue 吗?
  6. 科学家公布“寿命计算器”,快算一下你能活多久?
  7. 事件触发控制_SystemVerilog线程控制与通信
  8. 王者荣耀总决赛因天气原因延期 玩家获得皮肤碎片等补偿
  9. 随机获取图片的api接口
  10. php5.1 0day,关于phpwind 5.01-5.3 0day的分析
  11. 机器学习- 吴恩达Andrew Ng Week1 知识总结 Introduciton
  12. 《现代操作系统第四版》第一章课后答案
  13. excel筛选和排序
  14. APP支付(微信、支付宝)
  15. 人工智能导论(数据挖掘)
  16. Hololens拍照,录像,保存到本地,读取图片和视频
  17. 【数据结构C语言】二叉树的遍历
  18. 2023年2月《中国数据库行业分析报告》正式发布(含精彩内容概览)
  19. 本征半导体的导电机制 空穴的概念
  20. JQuery中的id选择器含有特殊字符时,不能选中dom元素的解决方法

热门文章

  1. 鸿蒙系统发红包,鸿蒙修真录红包版
  2. 彻彻底底了解回调函数
  3. TypeScript 枚举指南
  4. Python从N个数中找到最大的K个数
  5. STL中算法锦集(四)
  6. LiveVideoStackCon2021音视频技术大会北京站Day2
  7. 腾讯云低延时直播系统架构设计与弱网优化实践
  8. 基于Nginx的媒体服务器技术
  9. LiveVideoStackCon讲师热身分享 ( 十三 ) —— Intel QSV技术在FFmpeg中的实现与使用
  10. Linux 机器 CPU 毛刺问题排查