三大框架的整合struts2.2+hibernate3.2+spring2.5

<p>三大框架的整合,直接的上手:</p> <h2>一、新建立一个web项目,在项目中进行我们的导包的操作:</h2> <p>struts2.2的基本的包(13个):</p> <blockquote> <p>asm-3.3.jar <br />asm-commons-3.3.jar <br />asm-tree-3.3.jar <br />commons-fileupload-1.3.jar <br />commons-io-2.0.1.jar <br />commons-lang3-3.1.jar <br />commons-logging-1.1.3.jar <br />freemarker-2.3.19.jar <br />javassist-3.11.0.GA.jar <br />log4j-1.2.17.jar <br />ognl-3.0.6.jar <br />struts2-core-2.3.15.1.jar <br />xwork-core-2.3.15.1.jar</p> </blockquote> <p>spring2.5的基本的包(5个):</p> <blockquote> <p>aspectjrt.jar <br />aspectjweaver.jar <br />cglib-nodep-2.1_3.jar <br />commons-logging.jar <br />spring.jar</p> </blockquote> <p>hibernate3.2的基本的包(15个):</p> <blockquote> <p>antlr-2.7.6.jar <br /><u>asm-attrs.jar</u> <br />asm.jar</p> <p>aspectjrt.jar(切面) <br />aspectjweaver.jar(切面)</p> <p> <br />cglib-2.1.3.jar <br />commons-collections-2.1.1.jar <br />commons-logging-1.0.4.jar <br />dom4j-1.6.1.jar <br />ehcache-1.2.jar <br />ejb3-persistence.jar <br />hibernate-annotations.jar <br />hibernate-commons-annotations.jar <br />hibernate3.jar <br />jta.jar</p> </blockquote> <p>数据库mysql的连接包(1个):</p> <blockquote> <p> <br />mysql-connector-java-3.1.10-bin.jar</p> </blockquote> <p>谷歌的gson类和json的转换包(1个):</p> <blockquote> <p>gson-2.2.4.jar</p> </blockquote> <h2>下面是我自己导入的30个包</h2> <p>:(</p> <blockquote> <p>antlr-2.7.6.jar <br />asm-attrs.jar <br />asm.jar <br />aspectjrt.jar <br />aspectjweaver.jar <br />cglib-2.1.3.jar <br />cglib-nodep-2.1_3.jar <br />commons-collections-2.1.1.jar <br />commons-dbcp.jar <br />commons-fileupload-1.2.1.jar <br />commons-io-1.3.2.jar <br />commons-logging-1.0.4.jar <br />commons-logging.jar <br />commons-pool.jar <br />dom4j-1.6.1.jar <br />ehcache-1.2.jar <br />ejb3-persistence.jar <br />freemarker-2.3.16.jar <br />gson-2.2.4.jar <br />hibernate-annotations.jar <br />hibernate-commons-annotations.jar <br />hibernate3.jar <br />javassist-3.7.ga.jar <br />jta.jar <br />mysql-connector-java-5.1.13.jar <br />ognl-3.0.jar <br />spring.jar <br />struts2-core-2.2.1.1.jar <br />struts2-spring-plugin-2.2.1.1.jar <br />xwork-core-2.2.1.1.jar</p> </blockquote> <p>)</p> <h2>接下来是一个快乐的配置文件了:</h2> <p>web.xml中间配置的是我们的struts的过滤和spring的IoC的容器的放置的操作,如下的:</p> <h3>web.xml</h3> <blockquote> <p>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; <br />&lt;web-app version=&quot;3.0&quot; xmlns=&quot;<a href="http://java.sun.com/xml/ns/javaee&quot;">http://java.sun.com/xml/ns/javaee&quot;</a> <br />&#160;&#160;&#160; xmlns:xsi=&quot;<a href="http://www.w3.org/2001/XMLSchema-instance&quot;">http://www.w3.org/2001/XMLSchema-instance&quot;</a> <br />&#160;&#160;&#160; xsi:schemaLocation=&quot;<a href="http://java.sun.com/xml/ns/javaee">http://java.sun.com/xml/ns/javaee</a> <br />&#160;&#160;&#160; <a href="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&quot;">http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&quot;</a>&gt; <br />&#160;&#160;&#160; &lt;display-name&gt;&lt;/display-name&gt;</p> <p>&#160;&#160;&#160; &lt;!-- spring配置文件的读取的配置 --&gt; <br />&#160;&#160;&#160; &lt;context-param&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;param-value&gt;classpath*:applicationContext*.xml&lt;/param-value&gt; <br />&#160;&#160;&#160; &lt;/context-param&gt;</p> <p>&#160;&#160;&#160; &lt;!-- spring的配置到我们的web容器中去 --&gt; <br />&#160;&#160;&#160; &lt;listener&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; <br />&#160;&#160;&#160; &lt;/listener&gt;</p> <p>&#160;&#160;&#160; &lt;!-- struts2的配置 --&gt; <br />&#160;&#160;&#160; &lt;filter&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;filter-name&gt;struts2&lt;/filter-name&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt; <br />&#160;&#160;&#160; &lt;/filter&gt;</p> <p>&#160;&#160;&#160; &lt;filter-mapping&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;filter-name&gt;struts2&lt;/filter-name&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; <br />&#160;&#160;&#160; &lt;/filter-mapping&gt;</p> <p>&#160;&#160;&#160; &lt;!-- 首页的显示 --&gt; <br />&#160;&#160;&#160; &lt;welcome-file-list&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt; <br />&#160;&#160;&#160; &lt;/welcome-file-list&gt; <br />&#160;&#160;&#160; <br />&#160;&#160;&#160; <br />&lt;/web-app&gt; <br /></p> </blockquote> <p>struts.xml中的配置是对于struts的action的配置,需要注意的是,接下来的操作中,我们的action是由spring进行代理操作生成的,那么其中的action对于的class的属性就需要做一个相应的转变了:</p> <h3>struts.xml</h3> <blockquote> <p>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt; <br />&lt;!DOCTYPE struts PUBLIC <br />&#160;&#160;&#160; &quot;-//Apache Software Foundation//DTD Struts Configuration 2.0//EN&quot; <br />&#160;&#160;&#160; &quot;<a href="http://struts.apache.org/dtds/struts-2.0.dtd&quot;">http://struts.apache.org/dtds/struts-2.0.dtd&quot;</a>&gt;</p> <p>&lt;struts&gt; <br />&#160;&#160;&#160; &lt;!-- 指定struts2的objectFactorybean,该属性的值是spring,意思是由spring进行的基本的操作的 --&gt; <br />&#160;&#160;&#160; &lt;constant name=&quot;struts.objectFactory&quot; value=&quot;spring&quot; &gt;&lt;/constant&gt;&#160;&#160;&#160; </p> <p> <br />&#160;&#160;&#160; &lt;package name=&quot;default&quot; namespace=&quot;/&quot; extends=&quot;struts-default&quot;&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;action name=&quot;userAction&quot;&#160; class=&quot;userAction&quot;&#160; &gt;&lt;/action&gt; <br />&#160;&#160;&#160; &lt;/package&gt;</p> <p>&lt;/struts&gt; <br /></p> </blockquote> <p>applicationContext.xml的配置是我们的配置中最繁琐的一个文件,其中的配置信息:</p> <h3>applicationContext.xml:</h3> <blockquote> <p>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; <br />&lt;beans xmlns=&quot;<a href="http://www.springframework.org/schema/beans&quot;">http://www.springframework.org/schema/beans&quot;</a> <br />&#160;&#160;&#160; xmlns:xsi=&quot;<a href="http://www.w3.org/2001/XMLSchema-instance&quot;">http://www.w3.org/2001/XMLSchema-instance&quot;</a> xmlns:aop=&quot;<a href="http://www.springframework.org/schema/aop&quot;">http://www.springframework.org/schema/aop&quot;</a> <br />&#160;&#160;&#160; xmlns:context=&quot;<a href="http://www.springframework.org/schema/context&quot;">http://www.springframework.org/schema/context&quot;</a> <br />&#160;&#160;&#160; xsi:schemaLocation=&quot; <br /><a href="http://www.springframework.org/schema/beans">http://www.springframework.org/schema/beans</a> <br /><a href="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">http://www.springframework.org/schema/beans/spring-beans-2.5.xsd</a> <br /><a href="http://www.springframework.org/schema/aop">http://www.springframework.org/schema/aop</a> <br /><a href="http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">http://www.springframework.org/schema/aop/spring-aop-2.5.xsd</a> <br /><a href="http://www.springframework.org/schema/context">http://www.springframework.org/schema/context</a>&#160;&#160; <br /><a href="http://www.springframework.org/schema/context/spring-context-2.5.xsd">http://www.springframework.org/schema/context/spring-context-2.5.xsd</a> <br />&quot;&gt; <br />&#160;&#160;&#160; &lt;!-- spring自动的实现浏览的设置 --&gt; <br />&#160;&#160;&#160; &lt;context:component-scan base-package=&quot;com.fww&quot;&gt;&lt;/context:component-scan&gt;</p> <p>&#160;&#160;&#160; &lt;!-- 使用spring的注解的方式 --&gt; <br />&#160;&#160;&#160; &lt;aop:aspectj-autoproxy /&gt;</p> <p>&#160;&#160;&#160; &lt;!-- 数据库的连接池的配置 需要使用到数据库连接池的类 --&gt; <br />&#160;&#160;&#160; &lt;bean id=&quot;dataSource&quot; class=&quot;org.apache.commons.dbcp.BasicDataSource&quot;&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;driverClassName&quot; value=&quot;com.mysql.jdbc.Driver&quot;&gt;&lt;/property&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;url&quot; value=&quot;jdbc:mysql://localhost:3306/test&quot;&gt;&lt;/property&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;username&quot; value=&quot;root&quot;&gt;&lt;/property&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;password&quot; value=&quot;sa&quot;&gt;&lt;/property&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;maxActive&quot; value=&quot;20&quot;&gt;&lt;/property&gt; <br />&#160;&#160;&#160; &lt;/bean&gt;</p> <p>&#160;&#160;&#160; &lt;!-- 关于hibernate的基本的配置的操作也是在这里实现 --&gt; <br />&#160;&#160;&#160; &lt;bean id=&quot;sessionFactory&quot; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; class=&quot;org.springframework.orm.hibernate3.LocalSessionFactoryBean&quot;&gt;</p> <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;!-- hibernate的全局的配置 --&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;hibernateProperties&quot;&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;props&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;prop key=&quot;hibernate.dialect&quot;&gt;org.hibernate.dialect.MySQLDialect <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/prop&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;prop key=&quot;hibernate.hbm2ddl.auto&quot;&gt;update&lt;/prop&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;prop key=&quot;hibernate.show_sql&quot;&gt;true&lt;/prop&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;prop key=&quot;hibernate.format_sql&quot;&gt;true&lt;/prop&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/props&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/property&gt;</p> <p> <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;!-- 数据库的连接池的配置需要使用上述中的声明的数据库池的配置 --&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;dataSource&quot; ref=&quot;dataSource&quot;&gt;&lt;/property&gt;</p> <p>&#160;</p> <p> <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;!-- 使用xml进行的hibernate的配置 --&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;mappingResources&quot;&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;list&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;value&gt;com/fww/po/User.hbm.xml&lt;/value&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;value&gt;com/fww/po/Stu.hbm.xml&lt;/value&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/list&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/property&gt;</p> <p>&#160;&#160;&#160; &lt;/bean&gt; <br />&lt;/beans&gt;</p> </blockquote> <h3>基本的javabean的类:</h3> <p>User和Stu类,以及其对于的hbm.xml:</p> <p>user:</p> <blockquote> <p>package com.fww.po;</p> <p>public class User {</p> <p>&#160;&#160;&#160; private Integer id; <br />&#160;&#160;&#160; <br />&#160;&#160;&#160; private String name; <br />&#160;&#160;&#160; <br />&#160;&#160;&#160; private String pwd;</p> <p>&#160;&#160;&#160; public User() { <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; super(); <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; // TODO Auto-generated constructor stub <br />&#160;&#160;&#160; }</p> <p>&#160;&#160;&#160; public User(Integer id, String name, String pwd) { <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; super(); <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.id = id; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.name = name; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.pwd = pwd; <br />&#160;&#160;&#160; }</p> <p>&#160;&#160;&#160; public Integer getId() { <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return id; <br />&#160;&#160;&#160; }</p> <p>&#160;&#160;&#160; public void setId(Integer id) { <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.id = id; <br />&#160;&#160;&#160; }</p> <p>&#160;&#160;&#160; public String getName() { <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return name; <br />&#160;&#160;&#160; }</p> <p>&#160;&#160;&#160; public void setName(String name) { <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.name = name; <br />&#160;&#160;&#160; }</p> <p>&#160;&#160;&#160; public String getPwd() { <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return pwd; <br />&#160;&#160;&#160; }</p> <p>&#160;&#160;&#160; public void setPwd(String pwd) { <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.pwd = pwd; <br />&#160;&#160;&#160; } <br />&#160;&#160;&#160; <br />} <br /></p> </blockquote> <h3>user.hbm.xml:</h3> <blockquote> <p>&lt;?xml version=&quot;1.0&quot;?&gt; <br />&lt;!DOCTYPE hibernate-mapping PUBLIC <br />&#160;&#160;&#160; &quot;-//Hibernate/Hibernate Mapping DTD 3.0//EN&quot; <br />&#160;&#160;&#160; &quot;<a href="http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd&quot;">http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd&quot;</a>&gt; <br />&lt;hibernate-mapping package=&quot;com.fww.po&quot;&gt;</p> <p>&#160;&#160;&#160; &lt;class name=&quot;User&quot; table=&quot;t_user&quot;&gt;</p> <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;id name=&quot;id&quot;&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;generator class=&quot;native&quot;&gt;&lt;/generator&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/id&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;name&quot; column=&quot;name&quot;&gt;&lt;/property&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;pwd&quot;&gt;&lt;/property&gt;</p> <p> <br />&#160;&#160;&#160; &lt;/class&gt; <br />&lt;/hibernate-mapping&gt;</p> </blockquote> <p>Stu是类似的操作,然后我们启动自己的项目之后,就可以在我们的数据库中观察到我们的数据库的表已经创建了。</p> <p>&#160;</p> <p>&#160;</p> <h2>如果使用的是hibernate的注解的操作的时候,struts.xml和web.xml适合上述的一直的。需要的applicationContext的配置的操作如下:</h2> <h3>applicationContext.xml</h3> <blockquote> <p>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; <br />&lt;beans xmlns=&quot;<a href="http://www.springframework.org/schema/beans&quot;">http://www.springframework.org/schema/beans&quot;</a> <br />&#160;&#160;&#160; xmlns:xsi=&quot;<a href="http://www.w3.org/2001/XMLSchema-instance&quot;">http://www.w3.org/2001/XMLSchema-instance&quot;</a> xmlns:aop=&quot;<a href="http://www.springframework.org/schema/aop&quot;">http://www.springframework.org/schema/aop&quot;</a> <br />&#160;&#160;&#160; xmlns:context=&quot;<a href="http://www.springframework.org/schema/context&quot;">http://www.springframework.org/schema/context&quot;</a> <br />&#160;&#160;&#160; xsi:schemaLocation=&quot; <br /><a href="http://www.springframework.org/schema/beans">http://www.springframework.org/schema/beans</a> <br /><a href="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">http://www.springframework.org/schema/beans/spring-beans-2.5.xsd</a> <br /><a href="http://www.springframework.org/schema/aop">http://www.springframework.org/schema/aop</a> <br /><a href="http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">http://www.springframework.org/schema/aop/spring-aop-2.5.xsd</a> <br /><a href="http://www.springframework.org/schema/context">http://www.springframework.org/schema/context</a>&#160;&#160; <br /><a href="http://www.springframework.org/schema/context/spring-context-2.5.xsd&quot;">http://www.springframework.org/schema/context/spring-context-2.5.xsd&quot;</a> <br />&gt; <br />&#160;&#160;&#160; &lt;!-- spring自动的实现浏览的设置 --&gt; <br />&#160;&#160;&#160; &lt;context:component-scan base-package=&quot;com.fww&quot;&gt;&lt;/context:component-scan&gt;</p> <p>&#160;&#160;&#160; &lt;!-- 使用spring的注解的方式 --&gt; <br />&#160;&#160;&#160; &lt;aop:aspectj-autoproxy /&gt;</p> <p>&#160;&#160;&#160; &lt;!-- 数据库的连接池的配置 需要使用到数据库连接池的类 --&gt; <br />&#160;&#160;&#160; &lt;bean id=&quot;dataSource&quot; class=&quot;org.apache.commons.dbcp.BasicDataSource&quot;&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;driverClassName&quot; value=&quot;com.mysql.jdbc.Driver&quot;&gt;&lt;/property&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;url&quot; value=&quot;jdbc:mysql://localhost:3306/test&quot;&gt;&lt;/property&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;username&quot; value=&quot;root&quot;&gt;&lt;/property&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;password&quot; value=&quot;sa&quot;&gt;&lt;/property&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;maxActive&quot; value=&quot;20&quot;&gt;&lt;/property&gt; <br />&#160;&#160;&#160; &lt;/bean&gt;</p> <p>&#160;&#160;&#160; &lt;!-- 关于hibernate的基本的配置的操作也是在这里实现 这里使用的是一个注解的操作,所有使用的sessionfactory需要进行相应的修改的操作 --&gt; <br />&#160;&#160;&#160; &lt;bean id=&quot;sessionFactory&quot; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; class=&quot;org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean&quot;&gt;</p> <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;!-- hibernate的全局的配置 --&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;hibernateProperties&quot;&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;props&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;prop key=&quot;hibernate.dialect&quot;&gt;org.hibernate.dialect.MySQLDialect <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/prop&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;prop key=&quot;hibernate.hbm2ddl.auto&quot;&gt;update&lt;/prop&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;prop key=&quot;hibernate.show_sql&quot;&gt;true&lt;/prop&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;prop key=&quot;hibernate.format_sql&quot;&gt;true&lt;/prop&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/props&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/property&gt;</p> <p> <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;!-- 数据库的连接池的配置需要使用上述中的声明的数据库池的配置 --&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;dataSource&quot; ref=&quot;dataSource&quot;&gt;&lt;/property&gt;</p> <p>&#160;</p> <p> <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;!-- 使用xml进行的hibernate的配置 --&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;!-- &lt;property name=&quot;mappingResources&quot;&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;list&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;value&gt;com/fww/po/User.hbm.xml&lt;/value&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;value&gt;com/fww/po/Stu.hbm.xml&lt;/value&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/list&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/property&gt; --&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;packagesToScan&quot;&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;list&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;value&gt;com.fww.po&lt;/value&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/list&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/property&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; </p> <p>&#160;&#160;&#160; &lt;/bean&gt; <br />&#160;&#160;&#160; </p> <p>&#160;&#160;&#160; &lt;bean id=&quot;hibernateTemplate&quot; class=&quot;org.springframework.orm.hibernate3.HibernateTemplate&quot; &gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property name=&quot;sessionFactory&quot; ref=&quot;sessionFactory&quot;&gt;&lt;/property&gt; <br />&#160;&#160;&#160; &lt;/bean&gt; <br />&lt;/beans&gt;</p> </blockquote> <h3>我们的po类的创建如下:User</h3> <blockquote> <p>package com.fww.dao;</p> <p>import java.util.List;</p> <p>import javax.annotation.Resource;</p> <p>import org.springframework.orm.hibernate3.HibernateTemplate; <br />import org.springframework.stereotype.Component;</p> <p>import com.fww.po.User; <br />@Component <br />public class UserDao { <br />&#160;&#160;&#160; @Resource <br />&#160;&#160;&#160; private HibernateTemplate hibernateTemplate; <br />&#160;&#160;&#160; <br />&#160;&#160;&#160; <br />&#160;&#160;&#160; public void add(User user){ <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; hibernateTemplate.save(user); <br />&#160;&#160;&#160; } <br />&#160;&#160;&#160; <br />&#160;&#160;&#160; public void del(int id){ <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; hibernateTemplate.delete(hibernateTemplate.get(User.class, id)); <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160; } <br />&#160;&#160;&#160; <br />&#160;&#160;&#160; public List&lt;User&gt; findAll(){ <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return hibernateTemplate.find(&quot;from User&quot;); <br />&#160;&#160;&#160; } <br />} <br /></p> </blockquote> <h3>UserDao:</h3> <blockquote> <p>package com.fww.dao;</p> <p>import java.util.List;</p> <p>import javax.annotation.Resource;</p> <p>import org.springframework.orm.hibernate3.HibernateTemplate; <br />import org.springframework.stereotype.Component;</p> <p>import com.fww.po.User; <br />@Component <br />public class UserDao { <br />&#160;&#160;&#160; @Resource <br />&#160;&#160;&#160; private HibernateTemplate hibernateTemplate; <br />&#160;&#160;&#160; <br />&#160;&#160;&#160; <br />&#160;&#160;&#160; public void add(User user){ <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; hibernateTemplate.save(user); <br />&#160;&#160;&#160; } <br />&#160;&#160;&#160; <br />&#160;&#160;&#160; public void del(int id){ <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; hibernateTemplate.delete(hibernateTemplate.get(User.class, id)); <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160; } <br />&#160;&#160;&#160; <br />&#160;&#160;&#160; public List&lt;User&gt; findAll(){ <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return hibernateTemplate.find(&quot;from User&quot;); <br />&#160;&#160;&#160; } <br />} <br /></p> </blockquote> <h3>UserService:</h3> <blockquote> <p>package com.fww.service;</p> <p>import java.util.List;</p> <p>import com.fww.po.User;</p> <p>public interface UserService {</p> <p>&#160;&#160;&#160; void add(User user); <br />&#160;&#160;&#160; <br />&#160;&#160;&#160; List&lt;User&gt; findAll(); <br />} <br /></p> </blockquote> <h3>UserServiceImpl:</h3> <blockquote> <p>package com.fww.service.impl;</p> <p>import java.util.List;</p> <p>import javax.annotation.Resource;</p> <p>import org.springframework.stereotype.Component;</p> <p>import com.fww.dao.UserDao; <br />import com.fww.po.User; <br />import com.fww.service.UserService; <br />@Component <br />public class UserServiceImpl implements UserService{ <br />&#160;&#160;&#160; <br />&#160;&#160;&#160; @Resource <br />&#160;&#160;&#160; private UserDao userDao; <br />&#160;&#160;&#160; <br />&#160;&#160;&#160; public void add(User user){ <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.userDao.add(user); <br />&#160;&#160;&#160; }</p> <p>&#160;&#160;&#160; @Override <br />&#160;&#160;&#160; public List&lt;User&gt; findAll() { <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return this.userDao.findAll(); <br />&#160;&#160;&#160; } <br />&#160;&#160;&#160; <br />} <br /></p> </blockquote> <p>&#160;</p> <h3>UserAction</h3> <blockquote> <p>package com.fww.action;</p> <p>import java.util.List;</p> <p>import javax.annotation.Resource;</p> <p>import org.springframework.context.annotation.Scope; <br />import org.springframework.stereotype.Component;</p> <p>import com.fww.po.User; <br />import com.fww.service.UserService;</p> <p>@Component <br />@Scope(&quot;prototype&quot;) <br />public class UserAction {</p> <p>&#160;&#160;&#160; @Resource <br />&#160;&#160;&#160; private UserService service; <br />&#160;&#160;&#160; private User user; <br />&#160;&#160;&#160; private List&lt;User&gt; users ; <br />&#160;&#160;&#160; public String add(){ <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.service.add(user); <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return &quot;listAll&quot;; <br />&#160;&#160;&#160; }</p> <p>&#160;&#160;&#160; <br />&#160;&#160;&#160; public String findAll(){ <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.users = this.service.findAll(); <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return &quot;read&quot;; <br />&#160;&#160;&#160; } <br />&#160;&#160;&#160; public User getUser() { <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return user; <br />&#160;&#160;&#160; }</p> <p>&#160;&#160;&#160; public void setUser(User user) { <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.user = user; <br />&#160;&#160;&#160; }</p> <p> <br />&#160;&#160;&#160; public List&lt;User&gt; getUsers() { <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return users; <br />&#160;&#160;&#160; }</p> <p> <br />&#160;&#160;&#160; public void setUsers(List&lt;User&gt; users) { <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.users = users; <br />&#160;&#160;&#160; } <br />} <br /></p> </blockquote> <p>可以进行一个适当的整理测试的操作:</p> <blockquote> <p>package com.fww.test;</p> <p>import org.springframework.context.ApplicationContext; <br />import org.springframework.context.support.ClassPathXmlApplicationContext;</p> <p>import com.fww.dao.UserDao; <br />import com.fww.po.User;</p> <p>public class Test { <br />&#160;&#160;&#160; public static void main(String[] args) { <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; ApplicationContext ac = <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; new ClassPathXmlApplicationContext(new String[]{&quot;applicationContext.xml&quot;}); <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; UserDao userDao = (UserDao) ac.getBean(&quot;userDao&quot;); <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; User user = new User(1, &quot;fff&quot;, &quot;123&quot;); <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; userDao.add(user); <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160; } <br />} <br /></p> </blockquote> <p>如此一个基本的三大框架的整合就完成了,在基本的数据的逻辑操作中,我们的action调用的是一个service的类,而我么的service需要使用其实现类serviceimpl进行一个调用,在serviceImpl中使用的是一个dao接口,我们的dao接口的实现是需要借助其daoImpl,daoImpl,在进行的就是调用到hibernate进行一个数据库的数据的调用,如此就是我们的一个三大框架的数据的流程。</p>

转载于:https://my.oschina.net/fuweiwei/blog/172205

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值