第31次文章:手写SORM框架(一)

2019-09-27 15:48:09 浏览数 (1)

在上周的末尾,我们介绍了ORM框架,将数据库和Java程序中的数据类型进行关联。这周我们进入SORM框架深入探究,最后手写一个SORM框架。作者也是第一次学习,文章中有一些不足之处,请各位同学多多指教呀!


一、SORM框架基本思想

(1)我们希望设计一个可以实现对象和SQL自动映射的框架,但是整体用法和设计比Hiberbate简单。砍掉不必要的功能。

(2)穿插使用设计模式。

二、基本实现的功能

-增加:将对象对应成sql语句,执行sql,插入数据库中

-删除:根据对象主键的值,生成sql并执行,从库中删除

-修改:根据对象需要修改的属性的值,生成sql并执行

三、查询

根据结果分类:

-多行多列:List< Javabean >

-一行多列:Javabean

-一行一列:普通对象object;数字number

四、核心架构

-Query接口:负责查询(对外提供服务的核心类)

-QueryFactory类:负责根据配置信息创建query对象

-TypeConvertor接口:负责类型转换

-TableContext类:负责获取管理数据库所有表结构和类结构的关系,并可以根据表结构生成类结构

-DBManager类:根据配置信息,维持连接对象的管理(增加连接池功能)

-工具类:

(1)JDBCUtils封装常用JDBC操作;

(2)StringUtils封装常用字符串操作;

(3)JavaFileUtils封装java文件操作;

(4)ReflectUtils封装常用反射操作;

五、核心bean,封装相关数据

-ColumnInfo:封装表中一个字段的信息(字段类型、字段名、键类型)

-Configuration:封装配置文件信息

-TableInfo:封装一张表的信息

六、针对SORM框架的说明

-核心思想:使用简单、性能高、极易上手!

-配置文件:目前使用资源文件、后期项目复杂后可以增加XML文件配置和注解

-类名由表名生成,只有首字母大写有区别,其他无区别

-Java对象的属性由表中字段生成,完全对应

-目前,只支持表中只有一个主键,联合主键不支持


手写整个SORM框架对于目前的作者而言是一个庞大的工程

0 人点赞