文章出处: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.jarorg.springframework.beans-3.1.0.M2.jarorg.springframework.context-3.1.0.M2.jar
org.springframework.core-3.1.0.M2.jarorg.springframework.expression-3.1.0.M2.jarorg.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.jarcommons-collections-3.1.jardom4j-1.6.jarejb3-persistence.jar
hibernate3.jarhibernate-annotations.jarhibernate-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.jarfreemarker-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
我的源码打包好自己下载就可以了
就可以看到我们数据库里面的数据了!在这就告一段落,第一次写文章不红的地方请大家多多指出!
分享到:
相关推荐
基于struct+spring+hibernate的整合开发
extjs4 + struct+ spring + hibernate 搭建后台。
Struct,Hibernate,BS程序,开发入门实例剖析
最新Struct2、Hibernate3、Spring3框架搭建实战;jar包已做最大精简
基于Struct+Hibernate的BS程序开发入门实例剖析
struct 2 + spring + hibernate 学习实例 开发投票管理系统
一步一步叫你搭建s一步一步叫你搭建struct+hernate+spring开发框架truct+hernate+spring开发框架一步一步叫你搭建struct+hernate+spring开发框架
高清的PDF文档,与构建邮件服务器有关,是一个整合案例。
struct、spring及hibernate是目前最为流行的框架,三者组合成为ssh,其中我最喜欢的就是spring框架,在此分享
完美整合ssh,并附上数据库增删查改的操作.适合初学者学习
struct+spring+hibernate框架中所用到的所有jar包,最新的
SSH整合中注意的细节都在文档中写的很详细,看了之后,对SSH整合会有一个比较清晰的认识
struct框架的搭建,搭建struct框架。
spring4+struct2+hibernate4的整合,有两个整合包,一个Struts2和hibernate可以用注解映射配置,一个是基于配置的。
Struct2+Hibernate3+Spring3整合的纯净Demo
教务管理系统(选课)SSH框架实现(struct2+spring3.0+Hibernate)的完整版,增加了Tomcat下的工程文件。基于SSH框架实现的一个教务管理系统,搭建在Tomcat7.0服务器上,使用的数据库为mysql,系统中有三种不同权限的...
基于struct2.1 hibernate3.0 spring2.5 BBS系统 基于struct2.1 hibernate3.0 spring2.5 BBS系统
Struts2 Spring Hibernate的配置及登录实例的详细说明(附源码)
flex与 struts2与 hibernate与spring集成实例项目
有关Struts2+Spring+Hibernate和Struts2+Spring+Ibatis的整合实例demo 原创,完全基于eclipse开发