在上周的末尾,我们介绍了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框架对于目前的作者而言是一个庞大的工程