hjr-业务逻辑层

数据持久化

想要软件或系统重启后不丢失的数据需要做数据持久化,可以保存到数据库、文件等里面。

数据持久化一般有两种:
- DBHelper:这种比较经典,就是写一个类专门负责数据库各种操作,比如增删改查等等方法,然后其余的类调用,一般是传入一个SQL语句,然后执行语句、查询返回表格之类的。
- ORM:为了解决关系型数据库和对象型编程语言之间的冲突,把关系型数据库封装成业务实体对象,操作业务对象不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

对比DBHelper和ORM

比如有两张表class班级表和student学生表,现在要查询学生表中id为1的学生的班级名,执行下面的非对象化(也就是结构化)查询操作:

DBHelper

//这些是数据访问层
String sql = "select class.name from class,student where student.id=1 and student.classid=class.id"
//这些是业务逻辑层
DataTable db = DBhelper.Query(sql)
String className = db.Rows[0][0];

可以看到数据访问层和业务逻辑层融合到一起了,这也是一般小项目业务逻辑层与数据访问层混合不清的原因。

对象关系映射(ORM)

//这些都是业务逻辑层
StudentModel student = new StudentModel();
String className = student.queryStudent(1).getclass();
//这些是数据访问层
class StudentModel
{
    String class{set;get;}
    queryStudent(String id)
    {
    //...
    }

}

班级通过一对多映射被自动映射到student对象中,不过我们需要自己写StudentModel模型的各种属性和方法。而StudentModel也就是数据访问层。

现在使用上述两种数据模型

缓存

把磁盘上的需要频繁读取的文件保存在内存中,提高之后的读取速度,或者是把网上的远程内容先下载到本地,提高本地读取的速度等。

业务逻辑层

组织

数据访问层+

模式

各种设计模式,工厂、策略、适配器……

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

架构师小侯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值