首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第十一期 2018-4-17

引言部分,总领全篇文章的中心内容。

正文内容从这里开始(可直接省略,亦可配图说明)。

01

自学内容

Spring 框架

今天学到的也只是Spring框架的数据库包装以及事务处理的初级认识

数据库包装

我们都知道,数据库的工作范围,既然是包装,我们就知道一个很简单的认识,那就是工作的主要区域并不在包装类中,我们做的只是方便操作,让他更简单的进行操作

然后,我们都知道,数据库包装的途径无非就是三个区域

第一个:数据库的连接,这一方面,无需太多的操作,最大的更新,就是在如何把数据库的重要信息,包装的让数据库知道

第二个:操作方面的包装,这一方面,这就是数据库包装中的主要工作范围,但是操作的途径无非就是两种方法,一种就是从相关的SQL语句入手,跟智能的生成各个平台的SQL语句,主要就是从根源上动手,但是,从这方面动手,就会产生相对应的问题,我们都知道,要生成一个合格的SQL语句,需要大量的信息,比如说数据表的信息,再比如说相对应的SQL的Where,以及各种各样的限制以及,子语句,当然,这样的好处就是方法更加全面,能应对更多的情况,但是困难就是需要大量的信息。当然我们可以使用数据库的映射,来生成相对应的SQL语句

当然第二个方法,就是使用DAO的包装,因为,DAO更多就是为了与业务挂钩,这样,我们就不需要太复杂的语句,这要一个极其简单的SQL语句,然后让数据挂在SQL语句上就好了。好处就是设计简单,一个方便的DAO设计并不需要花费设计师太多的时间,并且如果这个DAO还是针对某一个数据表专门设计的,设计上就会更加简单。但是问题就是有两种,第一种就是需要对不同各式各样的数据库进行操作的时候,这时候DAO的设计就会重现大量的重写和麻烦,但是,现在也出现了解决的方法,就是ORM设计,比如说Hibernate,当然,程序员也可以这样轻易的设计

第二种,DAO的设计,是专门化的或者说应该是单一化的,他的工作范围基本在某一个数据表的某一个数据行。你无法进行信息检索,比如说,我需要某某某范围的信息,当然我们可以这么做,很多人会说,我们只需要多加一个方法,就好了,是的,之前我也是这样想的,但是你越写下去,你就会发现,你这样做,设计困难就加大,并且你越写,他就越像SQL语句的设计,并且,还会破坏DAO的设计模式,并且,这样的设计模式,是无法在大量程序员中推广的,因为DAO本身就是一种轻便型数据库操作类。

第三种方法就是对结果的包装,结果无非就是两种,第一种是死数据,也就是这个数据与数据库已经没有了关系,你怎么玩都可以。 第二种就是活数据,几乎与数据库做好绑定,你只要使用 submit()数据就可以进行保存,更夸张的就是数据只要已进行操作,数据库也进行操作。但这样,我们都知道是太过分的设计,并不能带来方便。当然,最多的设计的两个的集合

说了这么多其实,这些只是我个人对数据库包装的思考。

Spring的核心功能只要两个 那就是Ioc与Aop

其他的许多的功能,要么就是让程序更加方便的进行Ioc与Aop,要么就是对它的功能进行维护

从无论是看Spring的 MVC框架,还是数据库,甚至是事务操作,都是如此

数据库的包装,基本就是对两个方面

一个就是信号源,另一个就是操作方法,对数据结果的包装,只是简单的利用了List与LinkMap的结合 简单的集合就是 List

在Spring中,包装了DataSource,让能更简单的利用Spring Ioc来进行数据设置,并且包装出了JdbcTemplate 来方便数据的操作。我们可以仔细看看JdbcTemplate的设计中,主要使用了对excute()方法的功能,来完成对不同的数据库语句进行不同的操作。并且 JdbcTemplate只需要一个DataSource 更加简单就能进行操作

同时,他还进一步的进行包装,来完成JdbcTemplate 在query方面的包装(sqlQuery)以及更新方面的包装(SqlUpdate)

现在让我们看看数据库的Hibernate方面的包装,

还是如同上面一样,

我们都知道,其实Hibernate的主要输出是利用SessionFactory,主要操作功能,连接。都是利用他,我们都可以把他遐想成Connection。但是,就是功能更加齐全罢了。

其实,这里我们就可以对他进行操作。利用SessionFactory生成Session来进行操作。主要的包装就是利用Spring中也有一个队SessionFactory包装的Bean,来生成一个SessionFactory

当然,你想进行更进一步的包装,那就只能利用HibernateTemplate 来对SessionFactory的操作进行包装

小结:我们可以看出来,其实Spring的数据库包装都是换汤不换药,都是一句话,包装连接,让连接能更加方面让Ioc进行配置,然后你可以使用我的Template,当然也可以不使用,但是我包装了,你使用不需要太多的先前条件。方便操作

事物处理:

事务处理我只简单的表达,我们如果见过重量级事务设计,我们都知道,事务的设计,处理,配置,都是需要用不同的类,来进行附带,包装,之后就是面向对象的特性来进行统一的工作。

但是Spring所涉及的方法就是,你需要进行的一切准备工作,你可以使用Ioc来配置,当然你也可以手动的配置,程序工作的逻辑,那就用Aop来直接把功能塞入,是的就是塞入。当然利用你内部的方法,可以想办法来进行映射。来获得你这个类之中的获取信息的方法。

简单的说:你只需要一个简单的基本事物类,功能怎么做,我使用Aop来解决

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180417G1VAK600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券