struct hibernate spring 经典框架 搭建 入门实例

Struts2+Spring+Hibernate搭建全解! 1.先组合实现Hibernate3.2+Spring2.5支持,删除hibernate.cfg.xml文件,修改applicationContext.xml文件的内容,增加SessionFactory和dataSource的设置。9.修改web.xml文件,配置Spring监听器,和上下文变量。6.组合Struts2和Spring2.5,修改web.xml文件,增加struts2的所需要的过滤器配置。我用这个框架,实现的是基本的CRUD功能的一个雇员管理系统,本来打算丰富一下功能,但是一直没能抽出空去搞。 阅读详情

 

文章出处:http://blog.csdn.net/zmzsoftware/article/details/6992994

 

 

在搭建环境以前我们需要准备如下 一些东西(下面是我用的):

structs2.2.3《下载》

hibernate3.3.2(本来用4.0但是spring貌似还不不支持4.0,后面改回来)《下载》

spring 3.0《下载》

上面是官网的下载地址

后面还需要其他一些包我打包好了《下载》

开发工具使用的是eclipse +jdk6 +tomcat + mysql5.1

下面我们开始搭建环境

首先创建一个Dynamic web project 输入任意名字

第一先加载spring环境 我们需要的包有 

org.springframework.asm-3.1.0.M2.jar org.springframework.beans-3.1.0.M2.jar org.springframework.context-3.1.0.M2.jar

org.springframework.core-3.1.0.M2.jar org.springframework.expression-3.1.0.M2.jar org.springframework.jdbc-3.1.0.M2.jar

org.springframework.web-3.1.0.M2.jar 

建议不要一次性加入 应该先加最核心的运行代码看缺少什么加什么,这样就不会加多余的包进来了,spring3已经把包按功能分开

不像以前一个包,这样个灵活,只要运行我们需要的功能而我们没用到的就不用在硬性的添加进来,关于每个包得功能我在这里就

不在多讲了百度一下很多!

包加好了之后我们开始创建spring应用,创建一个XML文件ApplicationContext.xml(放在src根目录)你也可以写其他名字,

下面是基本结构

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

/*在这里面添加beans */

</beans>

我们来测试一下spring搭建好了没有

创建一个Person类

public class Person {

private String name;

private int age;

/*也可以写get方法这边就不写了,不写也行spring没有要求一定要有*/

public void setName(String name){ this.name=name}

        public void setAge(int age){this.age=age}

public String toString(){

return "name : " + name + " age : " + age;  //重写toString方法以便输出信息

}

 

}      

然后在

配置文件也就是AppliccationContext.xml里面添加bean相关配置(这是值注入,还有接口和构造注入)

<bean  id="nike" class="Person"  scope="prototype" >

<property name="name" value="XXX"></property>

<property name="age" value="18"></property>

</bean>

测试代码

public class testPerson {
public static void main(String[] args) {
XmlBeanFactory beansfactory = new XmlBeanFactory(new FileSystemResource("src/ApplicationContext.xml"));
System.out.println(beansfactory);
Person nike = (Person)beansfactory.getBean("nike");
System.out.println(nike);
}

运行效果应该看到: name : nike age : 18

这就证明搭建好了,beans已经自己创建,后面我们先整合hibernate需要的包如下:

antlr-2.7.6.jar commons-collections-3.1.jar dom4j-1.6.jar ejb3-persistence.jar

hibernate3.jar hibernate-annotations.jar hibernate-commons-annotations.jar

javassist-3.9.0.GA.jar  jta-1.1.jar 

加好之后在spring里面配置hibernate(我们要再数据库创建一个叫做spring的数据库)

<!-- 集成hibernate  配置部分 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">   <!-- 定义数据源 -->
<property name="driverClassName" value="com.mysql.jdbc.Driver"/><!-- 定义数据库驱动-->
<property name="url" value="jdbc:mysql://localhost:3306/spring?characterEncoding=UTF-8"/><!-- 连接字符串-->
<property name="username" value="root" /><!-- 账号-->
<property name="password" value="198902"/><!-- 密码-->
</bean>


<!-- 配置sessionFactory 配置 -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" 
>
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses" >
<list>
<value>com.spring.beans.Person</value><!-- 定义元素关联,xml文件也可以配置我这边直接用annoration配置 -->
</list>
</property>
<property name="hibernateProperties"><!--hibernate参数-->
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hiberante.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
<!--定义DAO-->
<bean id="me" class="com.hibernate.dao.PersonDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

 我们将刚才的Person改一下就可以用了

 

@Entity
@Table(name="person")

public class Person {

 

@Id
@Column(unique=true,name="person_id",nullable=false)

private int id ;

@Column(name="name",length=20)

private String name;

@Column(name="age")

private int age;

 

/*也可以写get方法这边就不写了,不写也行spring没有要求一定要有*/

public void setName(String name){ this.name=name}

        public void setAge(int age){this.age=age}

public void setId(int id ){this.id = id}

.....后面get方法省了自己写

public String toString(){

return "name : " + name + " age : " + age;  //重写toString方法以便输出信息

}

 

}   

 

下面是DAO接口

 

public interface IPersonDao {


public void createPerson(Person person);
public List<Serializable> getAll();
public int count();
public void drop(Person person);

}

 

DAO实现:

public class PersonDao  implements IPersonDao{


private SessionFactory sessionFactory;

@Override
public void createPerson(Person person) {
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(person);
session.beginTransaction().commit();
}

@Override
public List<Serializable>getAll() {
Session session = sessionFactory.openSession();
String sql ="from Person";
session.beginTransaction();
Query query = session.createQuery(sql);
return query.list();
}

@Override
public int count() {
Session session = sessionFactory.openSession();
String sql ="from Person";
session.beginTransaction();
Query query = session.createQuery(sql);
return query.list().size();
}

@Override
public void drop(Person person) {
Session session = sessionFactory.openSession();
session.beginTransaction();
session.delete(person);
session.beginTransaction().commit();

}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}


}

测试方法:

public class testPerson {



public static void main(String[] args) {
XmlBeanFactory beansfactory = new XmlBeanFactory(new FileSystemResource("src/ApplicationContext.xml"));
PersonDao persondao = (PersonDao) beansfactory.getBean("me");
Person person = new Person();
person.setId(5);
person.setFirstname("12223");
person.setLastname("qwe2");
persondao.createPerson(person);
System.out.println(persondao.getAll().size());

}

}

 

由于数据表我们设置成自动更新,在没有表的情况下他会帮我们自动创建表和他们之间的关系

打开mysql客户端  输入:

use spring ;

select 8 from person;

如果看到我们的数据就证明OK了!

在这我们就已经将hibernate 基本整合好了!

 

开始整合struts

;老样子:

struts2-core-2.2.3.jar  struts2-spring-plugin-2.2.3.jar  xwork-core-2.2.3.jar

ognl-3.0.1.jar freemarker-2.3.16.jar  commons-logging-api-1.1.jar  commons-fileupload-1.2.2.jar

antlr-2.7.2.jar

 在src 下创建配置文件struts.xml

我会先从web.xml配置写起个人觉得这样好理解一点(就用注释的形式书写简单不解释了)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>spring_structs_ajax</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
 
 <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>    <!--注明spring配置文件位置-->
  /WEB-INF/classes/ApplicationContext.xml 
  </param-value>
  </context-param>

  <listener>
    <listener-class>
  org.springframework.web.context.ContextLoaderListener
  </listener-class>
  </listener>  <!--配置拦截-->
  <filter>

    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name><!--struts配置部分-->
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

struts配置部分struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">


<struts>


<constant name="struts.devMode" value="true" />
<!--很重要注明工厂-->
    <constant name="struts.objectFactory" value="spring"></constant>

    
<package name="b"  extends="struts-default">
<action name="index">
<result>/index.jsp</result>
</action>
<!-- 第一个测试的 -->
<action name="h" class="pca" method="getPe" >
<result name="SUCCESS">/hello.jsp</result>
</action>
</package>
</struts>

我们创建一个ACtion

public class personAction extends ActionSupport {


private static final long serialVersionUID = 1L;
private IPersonDao dao;

/*
* 测试方法
* spring 值注入顺序是按照配置文件值的顺序注入
*/
public String getPe(){
System.out.println(dao);
HttpServletRequest request =  ServletActionContext.getRequest();
request.getSession().setAttribute("personlist", dao.getAll());
return "SUCCESS";
}

public IPersonDao getDao() {
return dao;
}

public void setDao(IPersonDao dao) {
this.dao = dao;
}

}

运行时运行了 我们怎么能看到结果了不用急,创建个页面不就搞定了:

在WebContent下面创建一个hello.jsp页面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>test OK </title>
</head>
<body>
测试OK<br>
<a> 姓 :</a><label>${personlist }</label><br/>
</body>
</html>

 

运行打开浏览器:输入 http://localhost:8080/项目名/h  

我的源码打包好自己下载就可以了

就可以看到我们数据库里面的数据了!在这就告一段落,第一次写文章不红的地方请大家多多指出!

拉曼光谱仪的原理与应用——TFN 7G F660手持式拉曼光谱识别仪 阅读详情

相关推荐

Enterprise Architect 中文经典教程

本文使用到的EA工程文件下载 一、Enterprise Architect简介 Enterprise Architect是一个对于软件系统开发有着极好支持的CASE软件(Computer Aided Software Engineering)。EA不同于普通的UML画图工具(如VISIO),它将支撑系统开发的全过程。在需求分析阶段,系统分析与设计阶段,系统开发及部署等方面有着强大的支持,...

2万+

Struts+Spring+Hibernate的技术实现

一、三个框架简介 StrutsStruts是目前Java Web MVC框架中不争的王者。经过长达五年的发展,Struts已经逐渐成长为一个稳定、成熟的框架,并且占有了MVC框架中最大的市场份额。 SpringSpring是一个开源框架,它是为了解决企业应用开发的复杂性而开发的。Spring使使用基本的JavaBeans来完成以前只可能由EJB完成的事情...

Ryan0423的博客 299

多元线性回归分析在粮食产量预测中的应用.doc

多元线性回归分析在粮食产量预测中的应用.doc

Struts+Spring+Hibernate整合入门详解

Java 5.0 Struts 2.0.9Spring 2.0.6Hibernate 3.2.4                                              作者:  Liu Liu 转载请注明出处基本概念和典型实用例子。一、基本概念       Str

doliu6的专栏 6183

三大框架理解

常听人提起三大框架,关于三大框架,我做了如下了解 :      三大框架Struts+Hibernate+Spring  Java 三大框架主要用来做 WEN 应用。  Struts 主要负责表示层的显示  Spring 利用它的 IOC 和 AOP 来处理控制业务(负责对数据库的操作)  Hibernate 主要是数据持久化到数据库    再用 jsp 的 servlet 做网页

十年饮冰,难凉热血 1729

Structs+Spring+Hibernate快速入门

    Structs+Spring+Hibernate,这是很经典的一个搭配,它的开发流程也比较程式化,下面以用户注册为例。     注册页面代码: &lt;%@page contentType="text/html;charset=GBK"%&gt; &lt;html&gt;  &lt;head&gt;&lt;title&gt;SpringStrutsHibernate整合之用户注...

weixin_34220834的博客 190

Java编程】SSH:StrutsSpringHibernate

SSH 框架指的是 StrutsSpringHibernate 三者的集成。集成 SSH 框架的系统从职责上分为表示层、业务逻辑层、数据持久层和域模块层。Struts 属于 MVC 框架的一种,提供了对 MVC 系统底层的支持,负责 MVC 的分离,在 Struts 框架的模型部分,控制业务跳转,利用 Hibernate 框架对持久层提供支持,Spring 则管理 StrutsHibernate

Code · Cloud · Think · Repeat 1296

STRUCT+SPRING+HIBERNATE

他们的 简称 叫做 SSH SSH 整合理念 1.1 框架java 来建立一个很有价值的web 应用不是一个简单的任务。在架构这个应用时要考虑很多的因素和问题。从更高的层次来看,开发人员面临着关于如何构建用户接口,何处驻留业务逻辑,以及如何实现数据持久性这些问题。这3 层都有各自的问题需要回答。而每一层又需要实现那些技术?应用如何设计来进行松散耦合并能进行灵活变更?应用架构是否允许某

痞子51998 9840

整合SSH(Spring+Struts+Hibernate)

0.前言, 由于工作需要故来学习SSH的整合,structs其实相当于(把view和controller结合起来,没有像现在的前后端分离,请求会发送给Action处理,在structs.xml映射地址和类) Hibernate(就是处理数据库的,几乎自动化,也可以写sql语句)在 SSH 框架中,Spring。//会调用action的方法,完成成员的变化,思路确实比较清晰,可是我要的数据如果是一次性的呢?//写配置文件的表和字段名和类型,不存在表会自动创建,其实高版本可以使用@Table来指定的,更方便。

weixin_47039303的博客 1202

SSH 框架 —— Struts2 框架Spring 框架Hibernate 框架三大框架整合

文章目录一、SSH 框架整合1、SSH 整合概述二、SSH 框架整合步骤1、在 WEB 项目中加载 Spring 框架2、使用 Spring 框架整合 Struts23、使用 Spring 框架整合 Hibernate4、使用 SpringAOP 实现声明式事务管理5、使用 OpenSessionInView 延迟加载后 session 的关闭问题 一、SSH 框架整合 1、SSH 整合概述 SS...

TwoYellowGuns的博客 1880

简述SSH

当一个持久化对象,脱离开Hibernate的缓存管理后,它就处于游离状态,游离对象和自由对象的最大区别在于,游离对象在数据库中可能还存在一条与它对应的记录,只是现在这个游离对象脱离了Hibernate的缓存管理,而自由对象不会在数据库中出现与它对应的数据记录。使用Struts作为系统的整体基础架构,负责MVC的分离,将页面从业务逻辑分离出来,使用页面更加灵活多变,不会影响业务逻辑,简化了基于MVC的web应用程序的开发,因而使得开发更加高效。与持久对象关联的 Session 被关闭后,对象就变为脱管对象。

556

Spring+Struts2+hibernate整合

SSH三大框架整合(1)struts2(2)hibernate5.x(3)spring4.x回顾SSH框架知识点Hibernate框架1、 hibernate核心配置文件(1)orm思想- 对象关系映射(1)数据库信息(2)hibernate信息(3)映射配置(4)hibernate核心配置文件- 如果单纯使用hibernate框架,核心配置文件名称 hibernate.cfg.xml和位置 sr...

m0_37307255的博客 2776

Struts2/Spring/Hibernate框架的整合与综合实例

1、框架介绍 1.1 Struts2框架 Struts是最早的Java开源框架之一,也是现在Java Web框架的事实标准。Struts是MVC设计模式一个优秀的实现。Struts定义了通用的Controller(控制器),通过配置文件(一般是struts-config.xml)隔离了Model(模型)和View(视图),以Action的概念对用户请求做了封装,使代码更清晰易读。到目前为止,S...

pan_junbiao的博客 3804

SpringStrutsHibernate框架之间的关系是什么以及怎么处理

SpringStrutsHibernate框架之间的关系是什么以及怎么处理

kngines 1万+

java框架整合StrutsSpring---一步一步详细讲解

更多内容,点击了解:https://how2j.cn/k/struts-spring/struts-spring-integration/98.html?p=81777整合StrutsSpring的基本思路是将Action生命周期由原本的Struts进行管理,交由Spring进行管理 相当于李思思以前要自己接客,现在改成先由老鸨去招揽,回头再交给李师师进行具体的业务操作...

java_zdc的博客 507

java struts spring_在Struts2中集成Spring详细讲解

Spring的官方定义是:一个轻量级的IoC和Aop容器框架,它使用了一种叫做依赖注入的技术。所谓依赖注入,就是指将创建对象以及协议依赖对象之间合作的责任从对象自身中转移到“工厂”中去,这个“工厂”通常由IoC容器提供。Struts2与Spring的集成要用到Spring插件包,这个包是同Struts2一起发布的。Spring插件是通过覆盖(override)Struts2的ObjectFacto...

weixin_42327217的博客 452

springstructhibernate三大框架整合

一、运用环境:          Myeclipse、jdk1.70、Tomcat7.0、mysql 二、整合思路:         1.把Action交给Spring来管理。         2.把SessionFactory交给Spring来管理。         3.把Session打开与关闭交给Spring来管理。         4.把事务打提,提交、回滚交给Spring来管

开着坦克的瑞兽 2363
上一篇: Android重要资源
下一篇: jdk 环境变量配置
立足当下.
博客等级 码龄17年 33粉丝 85原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值