特此一记,省得忘。
1.DDL (Data Definition Language )数据库定义语言 statements are used to define the database structure or schema.
DDL不需要commit.
CREATE
ALTER
DROP
TRUNCATE
COMMENT
RENAME
2.DML (Data Manipulation Language)数据操纵语言 statements are used for managing data within schema objects.
需要commit.
SELECT
INSERT
UPDATE
DELETE
MERGE
CALL
EXPLAIN PLAN
LOCK TABLE
3.DCL(Data Control Language)数据库控制语言 授权,角色控制等
GRANT 授权
REVOKE 取消授权
4.TCL(Transaction Control Language)事务控制语言
SAVEPOINT 设置保存点
ROLLBACK 回滚
SET TRANSACTION
spring的最大作用ioc/di,将类与类的依赖关系写在配置文件中,
程序在运行时根据配置文件动态加载依赖的类,
降低的类与类之间的藕合度。
它的原理是在applicationContext.xml加入bean标签,
在bean标签中通过class属性说明具体类名,
通过property标签说明该类的属性名,
通过constructor-args说明构造子的参数。
其一切都是返射,当通过applicationContext.getBean("id名称")得到一个类实例时,
就是以bean标签的类名、属性名、构造子的参数为准,
通过反射实例对象,唤起对象的set方法设置属性值,
通过构造子的newInstance实例化得到对象。
正因为spring一切都是反射,反射比直接调用的处理速度慢,
所以这也是spring的一个问题。
spring第二大作用就是aop,其机理来自于代理模式,
代理模式有三个角色分别是通用接口、代理、真实对象代理、
真实对象实现的是同一接口,将真实对象作为代理的一个属性,
向客户端公开的是代理,当客户端调用代理的方法时,
代理找到真实对象,调用真实对象方法,
在调用之前之后提供相关的服务,如事务、安全、日志。
其名称分别是代理、真实对象、装备、关切点、连接点。
主要是可扩展性。如果现在你的客户觉得访问效率太低,程序不用hibernate了,
要使用jdbc,比如:UserDaoHibernateImpl(原来),现在修改为UserDaoJdbcImpl.
这个时候你要怎么办?直接去修改源代码?你原来不用接口进行引用,肯定是new 了一个
UserDaoHibernateImpl出来,如果多个地方都用到,你不但要去修改源代码,还要修改很多地方,
而是用spring的依赖注入呢,你只需要修改下配置,把bean的class属性给修改下,换下配置什么的
就可以了,降低后期维护成本
因为web应用大了,servletClass多了,所以用到struts来减轻我们的负担,使得模块更清晰,和更利于复用和管理。
因为web应用大了,表、字段多了,写sql语句会写死人,且比较容易出错,所以用到hibernate来获得它给我们的面向对象操作数据库的服务,省去了写n多sql的烦心事,且使我们的程序更加面向对象
因为逻辑和组件模块多了,因为层多了,于是我们考虑整一个spring,一来包装hibernate,提供更简便的服务接口及更易于管理的事务服务,二来代理了我们的服务层和dao层,使得这两层与实际的控制单元的关系变成ioc框架来管理,任何一方的修改都不会牵扯到双方都要修改的问题。总之spring就是把杂乱的dao、service、action给串了起来,变成了一个个可在程序外控制的模块,使其可以自由的组合在一起,即可获得想要的服务也不用烦他们之间的关系。
CopyRight@BUG