java orm框架工作原理_Java Web框架入门(5):ORM

对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序设计技术,用于实现面向对象编程语言里的对象自动持久化到关系数据库中。

目前比较流行的ORM框架是hibernate和mybatis,hibernate大而全,mybatis就显得更加灵活。

ORM要解决的问题

对象持久化到数据库里

对象与表的映射规则

持久化方法

表之间的关系

smart 的实现

@Entity注解标识需要持久化的类

类名(驼峰式)映射为 表名(下划线式)

属性名(驼峰式)映射为 字段名(下划线式)

@Table、@Column指定特殊的名字

EntityHelper保存映射关系:实体类=》表名,实体类 => (字段名 => 列名)

DataSet封装持久化操作,主要使用以下俩类

SqlHelper将对象操作转化为SQL语句、从smart-sql.properties中获取SQL语句

DatabaseHelper封装JDBC操作

1ad612181021683ed2b98b2fb51d7972.png

jfinal的实现

jfinal 使用了 ActiveRecord 这种领域模型模式

每一个数据库表对应创建一个类.类的每一个对象实例对应于数据库中表的一行记录; 通常表的每个字段在类中都有相应的Field;

ActiveRecord同时负责把自己持久化. 在ActiveRecord中封装了对数据库的访问, 即CRUD;

ActiveRecord是一种领域模型(Domain Model), 封装了部分业务逻辑;

6bb1520c8aaf33643c9c50819907dab7.png

提供了两套处理逻辑:

独创的Db+Record模式

Record 类是通用的实体类,使用Map存储数据表信息:列名、值

Db 负责对 Record进行增删改查操作

activeRecord模式

配置类中开启ActiveRecordPlugin,并配置映射关系:

Model 类在 Map中存储数据表信息,同时包含一系列的数据库操作

Generator 工具类根据数据库生成 BaseBlog和 Blog和 配置文件

BaseBlog 继承 Model,并实现setter、getter方法,如此就可像普通 pojo一样操作了

Blog 继承 BaseBlog,用户自主实现业务功能

小结

可见 smart 实现了数据库操作的基础功能,而 jfinal 有了更深入的思考,给出两套实现方式,且各有特色

jfinal 中,使用 Config记录一个数据库连接池,DbKit管理多个 Config,即多个数据库连接池,所以 jfinal可以进行多数据库开发。

1.Model封装了数据库数据和行为,针对每一个数据表 2.Db+Record分别管理数据和行为,不针对具体的数据表 3.ActiveRecordPlugin绑定一个数据库,可以有多个,在 Smart4jConfig.configPlugin中添加 4.Db.use(configName).xxx()方法切换数据库,仅作用于xxx方法,每次都要切换(我想过用ThreadLocal实现,持续起作用,但是用完必须手动切换回原来的数据库,否则会出错,会增加bug的可能)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值