SSH框架的搭建及其原理
2014-08-01 16:51
323 查看
一、为什么要用Hibernate,Hibernate实现的原理?
Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码Hibernate是一个基于jdbc的主流持久化框架,是一个优秀的orm实现,它很大程度的简化了dao层编码工作.
使用JDBC的步骤:
①加载驱动load the driver,Class.forName()
②创建数据连接Connect to the DataBase,DriverManager.getConnection()
③执行SQL语句Excute the SQL,
(1)connection.CreateStatement()
(2)Statement.excuteQuery()
(3)Statement.executeUpdate()
④处理结果集 Retrieve the result data,循环取得结果 while(rs.next())
⑤将数据库中的数据类型转换为Java中的类型,show the result data
⑥关闭连接close
代码实例如下:
使用Hibernate的步骤:
①建立实体对象,然后对应的建立对象的映射文件
②在src下加入Hibernate配置文件(指定数据库连接密码和用户):hibernate.cfg.xml
③建立测试类,让Hibernate自动为我们生成表格
具体实现代码:
第一步:创建一个Hibernate的工具类,方便后来使用
public class HibernateUtil {
private static Configuration cfg;
private static SessionFactory sf;
static {
cfg = new Configuration().configure();
sf = cfg.buildSessionFactory();
}
private HibernateUtil() {
}
public static Session getSession() {
return sf.openSession();
}
}
第二步:具体使用Hibernate(以保存一个实体对象为例)
public int save(User user) {
Session session = null;
Transaction tx = null;
int ret = 0;
try {
// Configuration cfg = new Configuration().configure();
// SessionFactory sf = cfg.buildSessionFactory();
session = HibernateUtil.getSession();
tx = session.beginTransaction();
ret = (Integer) session.save(user);
tx.commit();
} catch (HibernateException e) {
if (tx != null) {
tx.rollback();
}
e.printStackTrace();
} finally {
if (session != null) {
session.close();
}
}
return ret;
}
Hibernate中各个对象的作用:
1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件
2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>读取并解析映射信息
3.通过config.buildSessionFactory();//创建SessionFactory
4.sessionFactory.openSession();//打开Sesssion
5.session.beginTransaction();//创建事务Transation
6.persistent operate持久化操作
7.session.getTransaction().commit();//提交事务
8.关闭Session
9.关闭SesstionFactory
二、为什么要用Struts2、及其原理?
1、struts2是很强大的开源框架,也是基于POJO的Action的MVC Web框架,主要优势有如下几个方面:
①结构清晰,易与编码
②使用OGNL(对象图导航语言)表达式传参,OGNL提供了在Struts2里访问各种作用域中的数据的简单方式,你可以方便的获取Request,Attribute,Application,Session,Parameters中的数据。大大简化了开发人员在获取这些数据时的代码量。
③强大的拦截器
④容易测试,易于测试Struts2的Action都是简单的POJO,这样可以方便的对Struts2的Action编写测试用例,大大方便了5Java Web项目的测试。
2、struts2的使用步骤:
①部署Struts.xml和Web.xml
②编写Action类,在Struts2中Action相当于MVC的Controller
三、spring的工作原理、及为什么要用spring?
Spring其实包含了很多的知识,用到的有IOC,AOP等,其实就是一个管理框架的容器,你不用再考虑你new对象了,它会帮你做,降低了层与层之间的耦合度。Spring里面有很多的思想,IOC就是控制反转,注入。AOP是面向切面的,有点像拦截器。
spring的使用步骤:
[b]1.简介 [/b]
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
2.轻量
从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
3.控制反转
Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
4.面向切面
Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
5.容器
Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
6.框架
Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。
Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码Hibernate是一个基于jdbc的主流持久化框架,是一个优秀的orm实现,它很大程度的简化了dao层编码工作.
使用JDBC的步骤:
①加载驱动load the driver,Class.forName()
②创建数据连接Connect to the DataBase,DriverManager.getConnection()
③执行SQL语句Excute the SQL,
(1)connection.CreateStatement()
(2)Statement.excuteQuery()
(3)Statement.executeUpdate()
④处理结果集 Retrieve the result data,循环取得结果 while(rs.next())
⑤将数据库中的数据类型转换为Java中的类型,show the result data
⑥关闭连接close
代码实例如下:
class Jdbc{ public static void main(String[] args) throws Exception { //1.先new 一个driver 然后向managerDriver注册 Class.forName("com.mysql.jdbc.Driver"); //2.通过DriverManager.getConnection传递个方法,严格的说是jdbc的url Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test", "root", "1234"); //3.创建个statement对象,执行sql语句 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from test.admin"); //4.取得结果集 5.对其进行遍历 while (rs.next()) { System.out.println(rs.getString("username")); System.out.println(rs.getInt("id")); } //6.关闭(要遵循后执行的先闭,先执行的后闭的原则) rs.close(); stmt.close(); conn.close(); } }
使用Hibernate的步骤:
①建立实体对象,然后对应的建立对象的映射文件
②在src下加入Hibernate配置文件(指定数据库连接密码和用户):hibernate.cfg.xml
③建立测试类,让Hibernate自动为我们生成表格
具体实现代码:
第一步:创建一个Hibernate的工具类,方便后来使用
public class HibernateUtil {
private static Configuration cfg;
private static SessionFactory sf;
static {
cfg = new Configuration().configure();
sf = cfg.buildSessionFactory();
}
private HibernateUtil() {
}
public static Session getSession() {
return sf.openSession();
}
}
第二步:具体使用Hibernate(以保存一个实体对象为例)
public int save(User user) {
Session session = null;
Transaction tx = null;
int ret = 0;
try {
// Configuration cfg = new Configuration().configure();
// SessionFactory sf = cfg.buildSessionFactory();
session = HibernateUtil.getSession();
tx = session.beginTransaction();
ret = (Integer) session.save(user);
tx.commit();
} catch (HibernateException e) {
if (tx != null) {
tx.rollback();
}
e.printStackTrace();
} finally {
if (session != null) {
session.close();
}
}
return ret;
}
Hibernate中各个对象的作用:
1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件
2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>读取并解析映射信息
3.通过config.buildSessionFactory();//创建SessionFactory
4.sessionFactory.openSession();//打开Sesssion
5.session.beginTransaction();//创建事务Transation
6.persistent operate持久化操作
7.session.getTransaction().commit();//提交事务
8.关闭Session
9.关闭SesstionFactory
二、为什么要用Struts2、及其原理?
1、struts2是很强大的开源框架,也是基于POJO的Action的MVC Web框架,主要优势有如下几个方面:
①结构清晰,易与编码
②使用OGNL(对象图导航语言)表达式传参,OGNL提供了在Struts2里访问各种作用域中的数据的简单方式,你可以方便的获取Request,Attribute,Application,Session,Parameters中的数据。大大简化了开发人员在获取这些数据时的代码量。
③强大的拦截器
④容易测试,易于测试Struts2的Action都是简单的POJO,这样可以方便的对Struts2的Action编写测试用例,大大方便了5Java Web项目的测试。
2、struts2的使用步骤:
①部署Struts.xml和Web.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="default2" namespace="/userList" extends="struts-default"> <action name="dashboard" class="userListAction"> <result name="success">/admin/userList.jsp</result> <result name="input">/admin/login.jsp</result> </action> </package> </struts> namespace是指虚拟的路径,如果namespace="student" 那么action的路径就是localhost/student/addStudent. extends一般默认的是struts-default action标签中的那么就是浏览器请求的地址 class属性是指处理请求的Action是哪一个,包名+Action类名 method属性是指Action中处理请求的方法名 result就是转向返回的页面 name属性是指如果方法返回的字符串匹配就返回result中的页面。 web.xml中配置拦截 <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> <dispatcher>FORWARD</dispatcher> <dispatcher>REQUEST</dispatcher> </filter-mapping> |
三、spring的工作原理、及为什么要用spring?
Spring其实包含了很多的知识,用到的有IOC,AOP等,其实就是一个管理框架的容器,你不用再考虑你new对象了,它会帮你做,降低了层与层之间的耦合度。Spring里面有很多的思想,IOC就是控制反转,注入。AOP是面向切面的,有点像拦截器。
spring的使用步骤:
[b]1.简介 [/b]
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
2.轻量
从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
3.控制反转
Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
4.面向切面
Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
5.容器
Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
6.框架
Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。
相关文章推荐
- 搭建SSH框架所需Jar包及其解释
- spring MVC3原理教程及其框架搭建实例
- RADIUS原理介绍及其在Linux下的搭建
- zabbix的原理详解及其搭建
- LAMP平台搭建及其原理详解
- zabbix的原理详解及其搭建
- spring MVC3原理教程及其框架搭建实例
- 自动化运维puppet原理及其服务搭建
- VC++中非法探取密码的原理及其防范
- SQL注入攻击的原理及其防范措施
- 搭建配置服务器过程中遇到的问题及其解决办法(转)
- WINDOWS键盘事件的挂钩监控原理及其应用技术
- 透明显示原理及其实现
- SQL注入攻击的原理及其防范措施
- 非法探取密码的原理及其防范
- NAT的原理及其注意事项
- NAT的原理及其注意事项
- SQL注入攻击的原理及其防范措施
- 运算表达式类的原理及其实现
- Java的安装、配置和运行的基本过程及其原理!