SSH demo 简单解析之“增删改”
SSH demo 简单解析之“增删改”
宏观了解SSH:
实体表:
Bean.hbm.xml是给info.java和User.java进行配置,且能自动生成表.用这个就是hibernate对实体表进行封装,对jdb做了轻量级的封装,使得程序的开发可以非常好的用面向对象的思想来操纵数据库。
Hibernate有啥好处呢?
第一:数据库连接不需要我们自己来管理,如打开和关闭
第二:Hibernate对原来的SQL语句进行了封装,以前写很多SQL语句,现在你在保存的时候直接可以用 SAVE(对象)来实现了。hibernate不需要你手动的去进行代码编写,只需要配置一下cfg.xml文件里的对象就可以了。(节省代码)
第三:原来是对表操作,现在是和对象继续进行操作,想法上是不是更好呢?面向对象的操作。
Hibernate的核心:
session:负责被持久化对象CRUD操作
sessionFactory:负责初始化hibernate,创建session对象
configuration:负责配置并启动hibernate,创建SessionFactory
Transaction:负责事物相关的操作
Query和Criteria接口:负责执行各种数据库查询
hibernate工作原理:
1.通过Configuration config = new Configuration().configure();//读取并解析hibernate.cfg.xml配置文件
2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>读取并解析映射信息
3.通过SessionFactory sf = config.buildSessionFactory();//创建SessionFactory
4.Session session = sf.openSession();//打开Sesssion
5.Transaction tx = session.beginTransaction();//创建并启动事务Transation
6.persistent operate操作数据,持久化操作
7.tx.commit();//提交事务
8.关闭Session
9.关闭SesstionFactory
开发的步骤:
1)搭建好环境
引入hibernate最小的jar包
准备Hibernate.cfg.xml启动配置文件
2)写实体类(pojo)
3)为实体类写映射文件"User.hbm.xml"
在hibernate.cfg.xml添加映射的实体
4)创建库表
5)写测试类
获得Configuration
创建SessionFactory
打开Session
开启事务
使用session操作数据
提交事务
关闭资源
applicationContext.xml?
DAO,在SSM中是用DAO封装entity,然而在SSH中是用sessionFactory,
applicationContext.xml配置数据库的连接和容器管理sessionFactory,将service进行管理比如InfoSevice,InfoSeviceImpl;UserService,UserServiceImpl
如下:
Hibernate.cfg.xml
Struts.xml
Struts.xml类似于SSM框架中的springmvc,和action进行对接进行jsp页面的跳转。
页面访问显示:
登入页面:
进入之后的增删改页面:
SSH总结:
Struts作为框架:世间本没有路,走的人多了路就出来了。在系统开发时, 一开始是单体结构,后来为了提高开发效率,有了开发的结构比如MVC,structs最大的优点就是将很多的东西进行了封装成sessionFactory,省去了很多的麻烦,还保证了线程安全。
用spring 是一个容器:(1)将事物,业务都交给容器去管理,能真正意义上的实现接口编程;(2)用JDNI抽闲层,提供一种清晰、无侵略性的MVC实现方式;(3)Spring非常重要的一点是能使用AOP提供声明性事务管理,可以不直接操作JTA也能够对事务进行管理,省去了更多的麻烦,减少了代码量,提高了开发的效率。
Hibernate进行数据持久化:后面的开发过程中,特别是在数据库方面,用hibernate对DB进行持久化的封装。我们平常做开发的时候经常需要使用到JDBC连接来读写数据库,最常见的就是打开数据库连接、使用复杂的SQL语句进行读写、关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常烦琐的过程。
这时出现了Hibernate框架,(1)Hibernate写好之后,能自动进行表的生成,老牛逼了。(2)Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC驱动,和数据库都有一定的关系,但是和使用它的Java程序,和App Server没有任何关系,也不存在兼容性问题。
传统的架构与加上Hibernate:
1) Session Bean <-> Entity Bean <-> DB
为了解决性能障碍的替代架构:
2) Session Bean <-> DAO <-> JDBC <-> DB
使用Hibernate来提高上面架构的开发效率的架构:
3) Session Bean <-> DAO <-> Hibernate <-> DB
源码下载地址:
http://pan.baidu.com/s/1i4TnkvN