1.pom.xml
1 <?xml version="1.0"?> 2 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4 <modelVersion>4.0.0</modelVersion> 5 <parent> 6 <artifactId>JavaPrj_2</artifactId> 7 <groupId>com.goshop</groupId> 8 <version>0.0.1-SNAPSHOT</version> 9 </parent> 10 <groupId>com.goshop</groupId> 11 <artifactId>JavaPrj_2-web</artifactId> 12 <version>0.0.1-SNAPSHOT</version> 13 <packaging>war</packaging> 14 <name>JavaPrj_2-web Maven Webapp</name> 15 <url>http://maven.apache.org</url> 16 <dependencies> 17 <dependency> 18 <groupId>junit</groupId> 19 <artifactId>junit</artifactId> 20 <version>3.8.1</version> 21 <scope>test</scope> 22 </dependency> 23 24 <dependency> 25 <groupId>com.goshop</groupId> 26 <artifactId>JavaPrj_2-service</artifactId> 27 <version>0.0.1-SNAPSHOT</version> 28 </dependency> 29 <dependency> 30 <groupId>org.apache.struts</groupId> 31 <artifactId>struts2-jfreechart-plugin</artifactId> 32 <version>2.0.6</version> 33 </dependency> 34 <dependency> 35 <groupId>jfree</groupId> 36 <artifactId>jcommon</artifactId> 37 <version>1.0.16</version> 38 </dependency> 39 <dependency> 40 <groupId>jfree</groupId> 41 <artifactId>jfreechart</artifactId> 42 <version>1.0.9</version> 43 </dependency> 44 <!-- spring3 --> 45 <dependency> 46 <groupId>org.springframework</groupId> 47 <artifactId>spring-core</artifactId> 48 <version>3.1.2.RELEASE</version> 49 </dependency> 50 <dependency> 51 <groupId>org.springframework</groupId> 52 <artifactId>spring-context</artifactId> 53 <version>3.1.2.RELEASE</version> 54 </dependency> 55 <dependency> 56 <groupId>org.springframework</groupId> 57 <artifactId>spring-jdbc</artifactId> 58 <version>3.1.2.RELEASE</version> 59 </dependency> 60 <dependency> 61 <groupId>org.springframework</groupId> 62 <artifactId>spring-beans</artifactId> 63 <version>3.1.2.RELEASE</version> 64 </dependency> 65 <dependency> 66 <groupId>org.springframework</groupId> 67 <artifactId>spring-web</artifactId> 68 <version>3.1.2.RELEASE</version> 69 </dependency> 70 <dependency> 71 <groupId>org.springframework</groupId> 72 <artifactId>spring-expression</artifactId> 73 <version>3.1.2.RELEASE</version> 74 </dependency> 75 <dependency> 76 <groupId>org.springframework</groupId> 77 <artifactId>spring-orm</artifactId> 78 <version>3.1.2.RELEASE</version> 79 </dependency> 80 81 <!-- Struts2的核心包 --> 82 <dependency> 83 <groupId>org.apache.struts</groupId> 84 <artifactId>struts2-core</artifactId> 85 <version>2.3.16</version> 86 <!-- 87 这里的 exclusions 是排除包,因为 Struts2中有javassist,Hibernate中也有javassist, 88 所以如果要整合Hibernate,一定要排除掉Struts2中的javassist,否则就冲突了。 89 <exclusions> 90 <exclusion> 91 <groupId>javassist</groupId> 92 <artifactId>javassist</artifactId> 93 </exclusion> 94 </exclusions> 95 --> 96 </dependency> 97 <!-- convention-plugin插件,使用了这个插件之后,就可以采用注解的方式配置Action --> 98 <dependency> 99 <groupId>org.apache.struts</groupId> 100 <artifactId>struts2-convention-plugin</artifactId> 101 <version>2.3.20</version> 102 </dependency> 103 <!--config-browser-plugin插件,使用了这个插件之后,就可以很方便的浏览项目中的所有action及其与 jsp view的映射 --> 104 <dependency> 105 <groupId>org.apache.struts</groupId> 106 <artifactId>struts2-config-browser-plugin</artifactId> 107 <version>2.3.20</version> 108 </dependency> 109 <!-- Struts2和Spring整合插件 --> 110 <dependency> 111 <groupId>org.apache.struts</groupId> 112 <artifactId>struts2-spring-plugin</artifactId> 113 <version>2.3.4.1</version> 114 </dependency> 115 116 <!-- hibernate4 --> 117 <dependency> 118 <groupId>org.hibernate</groupId> 119 <artifactId>hibernate-core</artifactId> 120 <version>4.1.7.Final</version> 121 </dependency> 122 123 <!-- mysql驱动包 --> 124 <dependency> 125 <groupId>mysql</groupId> 126 <artifactId>mysql-connector-java</artifactId> 127 <version>5.1.34</version> 128 </dependency> 129 130 <!--Druid连接池包 --> 131 <dependency> 132 <groupId>com.alibaba</groupId> 133 <artifactId>druid</artifactId> 134 <version>1.0.12</version> 135 </dependency> 136 137 <!--aspectjweaver包 --> 138 <dependency> 139 <groupId>org.aspectj</groupId> 140 <artifactId>aspectjweaver</artifactId> 141 <version>1.8.5</version> 142 </dependency> 143 <dependency> 144 <groupId>c3p0</groupId> 145 <artifactId>c3p0</artifactId> 146 <version>0.9.1.2</version> 147 </dependency> 148 149 <dependency> 150 <groupId>org.hibernate</groupId> 151 <artifactId>hibernate-core</artifactId> 152 <version>3.6.10.Final</version> 153 </dependency> 154 155 <dependency> 156 <groupId>log4j</groupId> 157 <artifactId>log4j</artifactId> 158 <version>1.2.17</version> 159 </dependency> 160 </dependencies> 161 <build> 162 <finalName>JavaPrj_2-web</finalName> 163 </build> 164 </project>
2.web.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 5 version="3.0"> 6 7 <!-- Spring监听器 --> 8 <listener> 9 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 10 </listener> 11 <!-- Spring配置文件位置 --> 12 <context-param> 13 <param-name>contextConfigLocation</param-name> 14 <param-value>classpath*:applicationContext.xml</param-value> 15 </context-param> 16 <context-param> 17 <param-name>log4jConfigLocation</param-name> 18 <param-value>classpath:Log4j.properties</param-value> 19 </context-param> 20 <listener> 21 <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 22 </listener> 23 <filter> 24 <filter-name>struts2</filter-name> 25 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 26 </filter> 27 28 <filter-mapping> 29 <filter-name>struts2</filter-name> 30 <url-pattern>/*</url-pattern> 31 </filter-mapping> 32 </web-app>
3.applicationContext.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!-- 指定Spring配置文件的Schema信息 --> 3 <beans xmlns="http://www.springframework.org/schema/beans" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xmlns:aop="http://www.springframework.org/schema/aop" 6 xmlns:context="http://www.springframework.org/schema/context" 7 xmlns:tx="http://www.springframework.org/schema/tx" 8 xsi:schemaLocation="http://www.springframework.org/schema/beans 9 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 10 http://www.springframework.org/schema/tx 11 http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 12 http://www.springframework.org/schema/context 13 http://www.springframework.org/schema/context/spring-context-3.0.xsd 14 http://www.springframework.org/schema/aop 15 http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> 16 17 <context:component-scan base-package="com.goshop.action"></context:component-scan> 18 <context:component-scan base-package="com.goshop.service.impl"></context:component-scan> 19 <context:component-scan base-package="com.goshop.dao.impl"></context:component-scan> 20 <!-- 定义数据源Bean,使用C3P0数据源实现 --> 21 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 22 destroy-method="close"> 23 <!-- 指定连接数据库的驱动 --> 24 <property name="driverClass" value="com.mysql.jdbc.Driver"/> 25 <!-- 指定连接数据库的URL --> 26 <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/db_votemanage"/> 27 <!-- 指定连接数据库的用户名 --> 28 <property name="user" value="root"/> 29 <!-- 指定连接数据库的密码 --> 30 <property name="password" value="123456"/> 31 <!-- 指定连接数据库连接池的最大连接数 --> 32 <property name="maxPoolSize" value="40"/> 33 <!-- 指定连接数据库连接池的最小连接数 --> 34 <property name="minPoolSize" value="1"/> 35 <!-- 指定连接数据库连接池的初始化连接数 --> 36 <property name="initialPoolSize" value="1"/> 37 <!-- 指定连接数据库连接池的连接的最大空闲时间 --> 38 <property name="maxIdleTime" value="20"/> 39 </bean> 40 <!-- 定义Hibernate的SessionFactory --> 41 <bean id="sessionFactory" 42 class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 43 <!-- 依赖注入数据源,注入正是上面定义的dataSource --> 44 <property name="dataSource" ref="dataSource"/> 45 <!-- mappingResouces属性用来列出全部映射文件 --> 46 <property name="mappingResources"> 47 <list> 48 <!-- 以下用来列出Hibernate映射文件 --> 49 <value>com/goshop/domain/Person.hbm.xml</value> 50 <value>com/goshop/domain/Vote.hbm.xml</value> 51 <value>com/goshop/domain/VoteOption.hbm.xml</value> 52 </list> 53 </property> 54 <!-- 定义Hibernate的SessionFactory的属性 --> 55 <property name="hibernateProperties"> 56 <!-- 配置Hibernate属性 --> 57 <value> 58 hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect 59 hibernate.hbm2ddl.auto=update 60 hibernate.show_sql=true 61 hibernate.format_sql=true; 62 </value> 63 </property> 64 </bean> 65 <!-- 定义DAO Bean--> 66 <bean id="personDao" class= 67 "com.goshop.dao.impl.PersonDaoHibernate"> 68 <!-- 注入持久化操作所需的SessionFactory --> 69 <property name="sessionFactory" ref="sessionFactory"/> 70 </bean> 71 72 <bean id="voteDaoHibernate" class= 73 "com.goshop.dao.impl.VoteDaoHibernate"> 74 <!-- 注入持久化操作所需的SessionFactory --> 75 <property name="sessionFactory" ref="sessionFactory"/> 76 </bean> 77 78 <bean id="voteOptionDaoHibernate" class= 79 "com.goshop.dao.impl.VoteOptionDaoHibernate"> 80 <!-- 注入持久化操作所需的SessionFactory --> 81 <property name="sessionFactory" ref="sessionFactory"/> 82 </bean> 83 84 <!-- 配置一个业务逻辑组件 --> 85 <bean id="service" class= 86 "com.goshop.service.impl.ServiceImpl"> 87 <!-- 注入持久化访问所需的DAO组件 --> 88 <property name="personDao" ref="personDao"/> 89 </bean> 90 91 92 <!-- 配置Hibernate的局部事务管理器,使用HibernateTransactionManager类 --> 93 <!-- 该类实现PlatformTransactionManager接口,是针对Hibernate的特定实现--> 94 <bean id="transactionManager" 95 class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 96 <!-- 配置HibernateTransactionManager时需要依注入SessionFactory的引用 --> 97 <property name="sessionFactory" ref="sessionFactory"/> 98 </bean> 99 <!-- 配置事务增强处理,指定事务管理器 --> 100 <tx:advice id="txAdvice" transaction-manager="transactionManager"> 101 <!-- 用于配置详细的事务语义 --> 102 <tx:attributes> 103 <!-- 所有以'get'开头的方法是read-only的 --> 104 <tx:method name="get*" read-only="true"/> 105 <!-- 其他方法使用默认的事务设置 --> 106 <tx:method name="*"/> 107 </tx:attributes> 108 </tx:advice> 109 <aop:config> 110 <!-- 配置一个切入点 --> 111 <aop:pointcut id="pointcut" 112 expression="bean(service)"/> 113 <!-- 指定在pointcut切入点应用txAdvice事务增强处理 --> 114 <aop:advisor advice-ref="txAdvice" 115 pointcut-ref="pointcut"/> 116 </aop:config> 117 118 </beans>
5.struts.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> 3 <struts> 4 5 <!-- 指定由spring负责action对象的创建 --> 6 <constant name="struts.objectFactory" value="spring" /> 7 <!-- 所有匹配*.action的请求都由struts2处理 --> 8 <constant name="struts.action.extension" value="action" /> 9 <!-- 是否启用开发模式(开发时设置为true,发布到生产环境后设置为false) --> 10 <constant name="struts.devMode" value="true" /> 11 <!-- struts配置文件改动后,是否重新加载(开发时设置为true,发布到生产环境后设置为false) --> 12 <constant name="struts.configuration.xml.reload" value="true" /> 13 <!-- 设置浏览器是否缓存静态内容(开发时设置为false,发布到生产环境后设置为true) --> 14 <constant name="struts.serve.static.browserCache" value="false" /> 15 <!-- 请求参数的编码方式 --> 16 <constant name="struts.i18n.encoding" value="utf-8" /> 17 <!-- 每次HTTP请求系统都重新加载资源文件,有助于开发(开发时设置为true,发布到生产环境后设置为false) --> 18 <constant name="struts.i18n.reload" value="true" /> 19 <!-- 文件上传最大值 --> 20 <constant name="struts.multipart.maxSize" value="104857600" /> 21 <!-- 让struts2支持动态方法调用,使用叹号访问方法 --> 22 <constant name="struts.enable.DynamicMethodInvocation" value="true" /> 23 <!-- Action名称中是否还是用斜线 --> 24 <constant name="struts.enable.SlashesInActionNames" value="false" /> 25 <!-- 允许标签中使用表达式语法 --> 26 <constant name="struts.tag.altSyntax" value="true" /> 27 <!-- 对于WebLogic,Orion,OC4J此属性应该设置成true --> 28 <constant name="struts.dispatcher.parametersWorkaround" value="false" /> 29 30 31 <include file="struts_show.xml"></include> 32 <include file="struts_do.xml"></include> 33 <include file="struts_result.xml"></include> 34 35 </struts>
6.
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> 3 <struts> 4 <package name="default1" namespace="/" extends="struts-default"> 5 <action name="doVoteAction" class="com.goshop.action.DoVoteAction" method="add"> 6 <result name="success">/index.jsp</result> 7 <result name="input">/index.jsp</result> 8 </action> 9 </package> 10 </struts>
7.
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> 3 <struts> 4 <package name="default2" namespace="/" extends="jfreechart-default,struts-default"> 5 <action name="resultAction" class="com.goshop.action.ShowResultAction" > 6 <result name="success" type="chart"> 7 <param name="width">400</param> 8 <param name="height">300</param> 9 </result> 10 </action> 11 </package> 12 </struts>
8.
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> 3 <struts> 4 <package name="default" namespace="/" extends="struts-default"> 5 <action name="showAction" class="com.goshop.action.ShowVoteOptionAction" method="show"> 6 <result name="success">/index.jsp</result> 7 </action> 8 </package> 9 </struts>
9.
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> 3 <struts> 4 <package name="default" namespace="/" extends="struts-default"> 5 <action name="testAction" class="com.goshop.action.TestAction" method="test"> 6 <result name="success">/list.jsp</result> 7 </action> 8 <!-- 定义处理用户请求的Action,指定该Action的实现类--> 9 <action name="registPro" 10 class="com.goshop.action.RegistAction"> 11 <!-- 为两个逻辑视图配置视图页面 --> 12 <result name="error">/error.jsp</result> 13 <result name="success">/welcome.jsp</result> 14 </action> 15 <!-- 让用户直接访问该应用时列出所有视图页面 --> 16 <action name="*"> 17 <result>/{1}.jsp</result> 18 </action> 19 </package> 20 </struts>
8.log4j.properties
1 u4E0Bu9762u5B9Au4E49u65E5u5FD7u8F93u51FAu7EA7u522Bu662F INFOuFF0Cu5E76u4E14u914Du7F6Eu4E862u4E2Au8F93u51FAu76EEu7684u5730uFF0Cu4E00u4E2Au662FA3uFF0Cu4E00u4E2Au662Fconsole 2 3 log4j.rootLogger = INFO,A3,CONSOLE 4 5 //u65E5u5FD7u6700u4F4Eu7684u8F93u51FAu7EA7u522B 6 log4j.appender.A3.Threshold=INFO 7 log4j.appender.A3.encoding=UTF-8 8 //u6BCFu5929u4EA7u751Fu4E00u4E2Au6587u4EF6DailyRollingFileAppender 9 log4j.appender.A3 = org.apache.log4j.DailyRollingFileAppender 10 //file u5C5Eu6027 u6307u5B9Au4EA7u751Fu65E5u5FD7u6587u4EF6u7684u4FDDu5B58u4F4Du7F6Eu53CAu6587u4EF6u540DuFF0Cu8FD9u91CCu662Fwindowsu4E0Bu7684u914Du7F6E 11 // c:/logtest/logtest.loguFF0C 12 //u516Cu53F8u9879u76EEu5728linuxu4E0Bu7684u914Du7F6Eu662F/app/weblogic/applications/logs/sxvip_logs 13 log4j.appender.A3.File=e:/logtest/logtest.log 14 //u5F53u6709u65E5u5FD7u65F6u7ACBu5373u8F93u51FAuFF0Cu9ED8u8BA4u662Ftrue 15 log4j.appender.A3.ImmediateFlush=true 16 log4j.appender.A3.DatePattern='_'yyyy-MM-dd 17 //u65E5u5FD7u5E03u5C40u65B9u5F0F 18 log4j.appender.A3.layout=org.apache.log4j.PatternLayout 19 //u65E5u5FD7u6587u4EF6u4E2Du65E5u5FD7u7684u683Cu5F0F 20 log4j.appender.A3.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss} OSS %-5p [%c] - %m%n 21 22 //u8FD9u91CCu4F7Fu7528org.apache.log4j.ConsoleAppenderu6307u5B9Au8981u628Au65E5u5FD7u8F93u51FAu5230u63A7u5236u53F0 23 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 24 log4j.appender.Threshold=INFO 25 //u8F93u51FAu76EEu6807u662F u63A7u5236u53F0 26 log4j.appender.CONSOLE.Target=System.out 27 log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 28 log4j.appender.CONSOLE.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss} OSS %-5p [%c] - %m%n
9.testAction
1 package com.goshop.action; 2 3 import org.apache.struts2.convention.annotation.Action; 4 import org.apache.struts2.convention.annotation.Namespace; 5 import org.apache.struts2.convention.annotation.ParentPackage; 6 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.context.annotation.Scope; 8 import org.springframework.stereotype.Controller; 9 10 import com.goshop.service.IUserService; 11 import com.opensymphony.xwork2.ActionSupport; 12 @Controller 13 @Scope("prototype") 14 public class TestAction extends ActionSupport { 15 16 17 public String test(){ 18 19 return "success"; 20 } 21 22 }
10.RegisterAction
1 package com.goshop.action; 2 3 import org.apache.commons.logging.Log; 4 import org.apache.commons.logging.LogFactory; 5 6 import com.goshop.domain.Person; 7 import com.goshop.service.Service; 8 import com.opensymphony.xwork2.ActionSupport; 9 10 public class RegistAction extends ActionSupport{ 11 12 //下面是用于封装用户请求参数的属性 13 private Person person; 14 //用于封装处理结果的属性 15 private String tip; 16 //系统所用的业务逻辑组件 17 private Service service; 18 //设置注入业务逻辑组件所必需的setter方法 19 public void setService(Service service) 20 { 21 this.service = service; 22 } 23 24 //person属性的setter和getter方法 25 public void setPerson(Person person) 26 { 27 this.person = person; 28 } 29 public Person getPerson() 30 { 31 return this.person; 32 } 33 34 //tip属性的setter和getter方法 35 public void setTip(String tip) 36 { 37 this.tip = tip; 38 } 39 public String getTip() 40 { 41 return this.tip; 42 } 43 44 private static final Log log = LogFactory.getLog(RegistAction.class); 45 46 47 //处理用户请求的execute方法 48 public String execute() 49 throws Exception 50 { 51 log.info("注册校验开始........................."); 52 //调用业务逻辑组件的regist方法来处理请求 53 if (service.regist(person)) 54 { 55 setTip("哈哈,注册成功!"); 56 log.info("注册成功"); 57 return SUCCESS; 58 } 59 else 60 { 61 log.error("注册失败"); 62 return ERROR; 63 } 64 } 65 }
11, service
1 package com.goshop.service; 2 /** 3 * 测试用 4 * @author ThinkPad 5 * 6 */ 7 public interface IUserService { 8 9 public void test(); 10 }
12.service.impl
1 package com.goshop.service.impl; 2 3 import org.springframework.stereotype.Service; 4 5 import com.goshop.service.IUserService; 6 7 @Service("userService") 8 public class UserServiceImpl implements IUserService{ 9 10 public void test() { 11 System.out.println("hello..world"); 12 } 13 14 }
13.service
1 package com.goshop.service; 2 3 import com.goshop.domain.Person; 4 5 public interface Service { 6 7 //注册用户 8 boolean regist(Person person); 9 }
14.service.impl
1 package com.goshop.service.impl; 2 3 import com.goshop.dao.PersonDao; 4 import com.goshop.domain.Person; 5 import com.goshop.service.Service; 6 7 public class ServiceImpl implements Service{ 8 9 private PersonDao personDao; 10 11 12 public PersonDao getPersonDao() { 13 return personDao; 14 } 15 16 17 public void setPersonDao(PersonDao personDao) { 18 this.personDao = personDao; 19 } 20 21 22 public boolean regist(Person person) { 23 int result = personDao.save(person); 24 if(result>0){ 25 return true; 26 } 27 return false; 28 } 29 30 }
15.dao
1 package com.goshop.dao; 2 3 import java.util.List; 4 5 import com.goshop.domain.Person; 6 7 public interface PersonDao { 8 /** 9 * 加载Person实例 10 * @param id 需要加载的Person实例的主键值 11 * @return 返回加载的Person实例 12 */ 13 Person get(Integer id); 14 15 /** 16 * 保存Person实例 17 * @param person 需要保存的Person实例 18 * @return 刚刚保存的Person实例的标识属性值 19 */ 20 Integer save(Person person); 21 22 /** 23 * 修改Person实例 24 * @param person 需要修改的Person实例 25 */ 26 void update(Person person); 27 28 /** 29 * 删除Person实例 30 * @param id 需要删除的Person实例的标识属性值 31 */ 32 void delete(Integer id); 33 34 /** 35 * 删除Person实例 36 * @param person 需要删除的Person实例 37 */ 38 void delete(Person person); 39 40 /** 41 * 根据用户名查找Person 42 * @param name 查询的人名 43 * @return 指定用户名对应的全部Person 44 */ 45 List<Person> findByName(String name); 46 47 /** 48 * 查询全部Person实例 49 * @return 全部Person实例 50 */ 51 public List<Person> findAllPerson(); 52 }
16.dao.impl
1 package com.goshop.dao.impl; 2 3 import java.util.List; 4 5 import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 6 7 import com.goshop.dao.PersonDao; 8 import com.goshop.domain.Person; 9 10 public class PersonDaoHibernate extends HibernateDaoSupport implements PersonDao{ 11 12 public Person get(Integer id) { 13 return this.getHibernateTemplate().get(Person.class, id); 14 } 15 16 public Integer save(Person person) { 17 return (Integer) this.getHibernateTemplate().save(person); 18 } 19 20 public void update(Person person) { 21 this.getHibernateTemplate().update(person); 22 } 23 24 public void delete(Integer id) { 25 this.getHibernateTemplate().delete(get(id)); 26 } 27 28 public void delete(Person person) { 29 this.getHibernateTemplate().delete(person); 30 } 31 32 public List<Person> findByName(String name) { 33 return (List<Person>)this.getHibernateTemplate().find("from Person p where p.name like ?",name); 34 } 35 36 public List<Person> findAllPerson() { 37 return (List<Person>)this.getHibernateTemplate().find("from Person"); 38 } 39 40 }
1 <?xml version="1.0" encoding="GBK"?> 2 <!DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 5 <hibernate-mapping package="com.goshop.domain"> 6 <class name="Person" table="tb_person"> 7 <id name="id" column="Id" type="int"> 8 <generator class="increment"></generator> 9 </id> 10 <property name="name" type="string"></property> 11 <property name="age" type="int"></property> 12 </class> 13 </hibernate-mapping>
1 package com.goshop.domain; 2 3 public class Person { 4 private Integer id; 5 private String name; 6 private int age; 7 public Integer getId() { 8 return id; 9 } 10 public void setId(Integer id) { 11 this.id = id; 12 } 13 public String getName() { 14 return name; 15 } 16 public void setName(String name) { 17 this.name = name; 18 } 19 public int getAge() { 20 return age; 21 } 22 public void setAge(int age) { 23 this.age = age; 24 } 25 26 27 }