struct hibernate spring 经典框架 搭建 入门实例
2011-11-24 09:54
465 查看
文章出处: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
我的源码打包好自己下载就可以了
就可以看到我们数据库里面的数据了!在这就告一段落,第一次写文章不红的地方请大家多多指出!
在搭建环境以前我们需要准备如下 一些东西(下面是我用的):
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
我的源码打包好自己下载就可以了
就可以看到我们数据库里面的数据了!在这就告一段落,第一次写文章不红的地方请大家多多指出!
相关文章推荐
- struct hibernate spring 经典框架 搭建 入门实例
- struct hibernate spring 经典框架 搭建 入门实例
- struct hibernate spring 经典框架 搭建 入门实例
- struct hibernate spring 经典框架 搭建 入门实例
- Struct2、Hibernate3、Spring3框架搭建实战
- 新鲜出炉--Struct2、Hibernate3、Spring3框架搭建实战
- Spring+Springmvc+Hibernate框架搭建,简单实例
- Spring+Springmvc+Hibernate框架搭建,简单实例
- 搭建SpringMVC+Spring+Hibernate的框架实例
- Spring+Spring MVC+Hibernate框架搭建实例 推荐
- Apache Shiro+SpringMVC+Hibernate Search+Hibernate+Bootstrap企业信息管理系统基础框架搭建整合实例代码教程
- Apache Shiro+SpringMVC+Hibernate Search+Hibernate+Bootstrap企业信息管理系统基础框架搭建整合实例代码教程
- Struct2、Hibernate3、Spring3框架搭建实战(转)
- jsf+spring+hibernate框架搭建
- Struts + Spring + Hibernate基础框架搭建1
- Hibernate入门-搭建框架实现基本的增删改查
- struts2 spring3.2 hibernate4.1 框架搭建 整合
- Struts2 + Spring + hibernate 框架搭成实例
- Spring+Hibernate+Structs三大经典开源框架整合
- SSM框架(Spring Spring MVC Mybatis)基础入门学习3——Mybits入门实例(实例免费下载!)