这是在
2018年初的时候,做的一个SORM框架
- 根据数据库中的表来生成对应的
java bean - 使用
java bean对象实例 对数据库进行操作
SORM
src
│ db.properties
│
└─com
│
└─sorm
├─bean
│ ColumnInfo.java
│ Configuration.java
│ JavaFieldGetSet.java
│ TableInfo.java
│
├─core
│ DBManager.java
│ MysqlQuery.java
│ MysqlTypeConvertor.java
│ Query.java
│ TableContext.java
│ TypeConvertor.java
│
└─util
JavaFileUtils.java
JDBCUtils.java
ReflectUtils.java
StringUtils.java
db.properties是数据库以及SORM的配置类,位于src目录下
| 属性 | 注释 |
|---|---|
src |
绝对对路径 |
usingDB |
数据库类型 |
srcPath |
src 的绝对路径 |
poPackage |
生成对应类的包位置 |
示例配置
在 src 目录下创建 db.properties 配置文件,添加如下配置
driver = com.mysql.jdbc.Driver
url = jdbc\:mysql://localhost\:3306/sorm
user = root
pwd =
usingDB = mysql
srcPath = F\:\\study\\Workspace\\SORM\\src
poPackage = com.pocom.sorm.core.TableContext 类中的方法
根据数据库的表,在
poPackage包下生成对应的java bean,并使用类加载器对其进行加载
void updateJavaPOFile()将
po包下所有的类的Class对象 以及 对应的表信息 保存到Map<Class, TableInfo>中
void loadPOTables()com.sorm.core.Query 的方法
void insert(Object obj); void delete(Object obj)
void delete(Class clazz, Object obj) executeDML(String sql, Object[] params) int update(Object obj, String[] filedName) Object queryUniqueRow(String sql, Class clazz, Object[] params)
List<Object> queryRows(String sql, Class clazz, Object[] params)
Number queryNumber(String sql, Object[] params)-
数据库中表信息的封装
从数据库连接中获取数据库中所有的表的集合,遍历集合,将表的所有的属性转化为
java类型后,将字段名称和对应的java类型保存到TableInfo对象的Map<String, ColumnInfo>中,表名 和TableInfo对象 保存在Map<Class, TableInfo>中,用于后面的 根据数据库生成java bean和 通过对象对数据库进行操作 -
ReflectUtils通过反射调用对象指定成员变量的setter | getter方法 -
使用对象实例来完成对数据库的操作
Query # executeDML为核心方法,建立数据库连接,通过PreparedStatement使用给定的Object[] args参数列表来和各种方法拼出来的sql语句来完成对数据的操作