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 \u4E0B\u9762\u5B9A\u4E49\u65E5\u5FD7\u8F93\u51FA\u7EA7\u522B\u662F INFO\uFF0C\u5E76\u4E14\u914D\u7F6E\u4E862\u4E2A\u8F93\u51FA\u76EE\u7684\u5730\uFF0C\u4E00\u4E2A\u662FA3\uFF0C\u4E00\u4E2A\u662Fconsole
2
3 log4j.rootLogger = INFO,A3,CONSOLE
4
5 //\u65E5\u5FD7\u6700\u4F4E\u7684\u8F93\u51FA\u7EA7\u522B
6 log4j.appender.A3.Threshold=INFO
7 log4j.appender.A3.encoding=UTF-8
8 //\u6BCF\u5929\u4EA7\u751F\u4E00\u4E2A\u6587\u4EF6DailyRollingFileAppender
9 log4j.appender.A3 = org.apache.log4j.DailyRollingFileAppender
10 //file \u5C5E\u6027 \u6307\u5B9A\u4EA7\u751F\u65E5\u5FD7\u6587\u4EF6\u7684\u4FDD\u5B58\u4F4D\u7F6E\u53CA\u6587\u4EF6\u540D\uFF0C\u8FD9\u91CC\u662Fwindows\u4E0B\u7684\u914D\u7F6E
11 // c:/logtest/logtest.log\uFF0C
12 //\u516C\u53F8\u9879\u76EE\u5728linux\u4E0B\u7684\u914D\u7F6E\u662F/app/weblogic/applications/logs/sxvip_logs
13 log4j.appender.A3.File=e:/logtest/logtest.log
14 //\u5F53\u6709\u65E5\u5FD7\u65F6\u7ACB\u5373\u8F93\u51FA\uFF0C\u9ED8\u8BA4\u662Ftrue
15 log4j.appender.A3.ImmediateFlush=true
16 log4j.appender.A3.DatePattern='_'yyyy-MM-dd
17 //\u65E5\u5FD7\u5E03\u5C40\u65B9\u5F0F
18 log4j.appender.A3.layout=org.apache.log4j.PatternLayout
19 //\u65E5\u5FD7\u6587\u4EF6\u4E2D\u65E5\u5FD7\u7684\u683C\u5F0F
20 log4j.appender.A3.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss} OSS %-5p [%c] - %m%n
21
22 //\u8FD9\u91CC\u4F7F\u7528org.apache.log4j.ConsoleAppender\u6307\u5B9A\u8981\u628A\u65E5\u5FD7\u8F93\u51FA\u5230\u63A7\u5236\u53F0
23 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
24 log4j.appender.Threshold=INFO
25 //\u8F93\u51FA\u76EE\u6807\u662F \u63A7\u5236\u53F0
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 }