- 浏览: 410816 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (347)
- java基础 (58)
- ajax (10)
- s2sh (10)
- 版本控制 (4)
- 数据库 (34)
- 服务器 (4)
- 开发工具 (8)
- javascript (15)
- soockte (5)
- ext (2)
- 环境搭建 (7)
- struts2 (9)
- 找工作中的面试技巧 (2)
- 承接网站零活 (0)
- JNI+JONSE+OGNL (8)
- 性能优化 (4)
- Android开发 (5)
- xul (8)
- jquery (2)
- 线程 (3)
- jsp+jdbc (7)
- servlet (2)
- java对xml操作 (1)
- IO流的操作 (10)
- 项目开发前配置 (1)
- css (0)
- 上传、下载 (2)
- 知识探讨 (2)
- html (2)
- HQL (0)
- 工作技巧 (1)
- IT (1)
- Hibernate杂谈 (10)
- Spring杂谈 (35)
- DWR (5)
- JUnit测试 (3)
- EasyMock测试web (1)
- ibatis (6)
- maysql (5)
- C++ (0)
- 正则表达式(解剖) (1)
- 密码安全 (2)
- 上传 (1)
- socket (1)
- jni(java与c++结合) (1)
- jdk版本问题 (0)
- tomcat版本问题 (5)
- linux基本命令(初学) (7)
- linux项目发布 (1)
- 3年的经验总结 (1)
- 加解密 (2)
- 高级java阶段 (2)
- java内存分区 (1)
- 浏览器 (1)
- 职业规划 (1)
- 管理 (5)
- java语音 (1)
- SSH (1)
- jsp (3)
- extjs (1)
- uml (2)
- 加密 (1)
- web (2)
- Ant (1)
- 自述 (1)
- Linux (1)
- ssh源码解剖 (1)
- 代码优化 (1)
- 设计模式 (0)
- xml (2)
- JOSN (1)
- scala (0)
- hadoop (0)
- spark (0)
- hana (1)
- shior (1)
- java Word (6)
- java PDF (4)
- java Excel (0)
最新评论
-
高级java工程师:
ztao2333 写道谢谢。收藏下这个总结。呵呵
温习jdk和tomcat -
ztao2333:
大写的,不是大学的
温习jdk和tomcat -
ztao2333:
谢谢。收藏下这个总结。
温习jdk和tomcat -
the_small_base_:
你好,可以提供调用方法吗?需要的Jar,能发下源码吗?谢谢
java实现语音 -
高级java工程师:
文思涌动 写道楼主新年好。可否再传一遍给我,我没有收到, 不清 ...
s2sh整合
Struts 2,Spring 2,Hibernate 整合
开发工具Eclipse 6.5/6.6 GA
1.首先创建一个web工程,我们暂且启明为s2sh
这里我们选择的是Java EE 5.0
finish
2.向工程加入hibernate支持,这里我们使用的是hibernate 3.2
默认就可以,不要忘记将jar包加入到/WebRoot/WEB-INF/lib
接着next
实际上这里的hibernate.cfg.xml不起作用,因为该配置文件的内容由后面的spring配置文件进行管理,我们可以在创建之后将其删除
默认next
我们根本不用hibernate.cfg.xml,所以这里根本不需要进行数据库配置,当然默认也无所谓。
继续next
sessionFactory我们在之后也会直接使用spring为我们提供的,所以这里不需要创建。
finish
3.向工程加入spring支持,这里我们使用的是spring2
这里我们选择的是spring2,
不要忘记选中这5个库包:
Spring 2.0 AOP Libraries
Spring 2.0 Core Libraries
Spring 2.0 Persistence Core Libraries
Spring 2.0 Persistence JDBC Libraries
Spring 2.0 Web Libraries
也不要忘记将jar包加入到/WebRoot/WEB-INF/lib。
next
这里我们不需要Enable AOP 所以不需要选中
不要忘记将配置文件applicationContext.xml指定在/WEB-INF目录下,不然服务器启动时无法加载
next
这里的sessionFactory我们也不需要,之后会手动配置。
finish
4.加入struts2支持,由于MyEclipse并没有加入Struts2的支持,所以我们需要手动导入相关jar包。
这里我们使用的是struts 2.0.11版本
需要的相关jar包如下:
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.jar
xwork-2.0.4.jar
struts2-spring-plugin-2.0.11.jar
4.进行相关文件的配置
首先我们需要在src下加入struts的配置文件struts.xml
Xml代码
1.<?xml version="1.0" encoding="UTF-8" ?>
2.<!DOCTYPE struts PUBLIC
3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4. "http://struts.apache.org/dtds/struts-2.0.dtd">
5.<struts>
6. <package name="s2sh" extends="struts-default">
7. </package>
8.</struts>
Xml代码
1.<?xml version="1.0" encoding="UTF-8" ?>
2.<!DOCTYPE struts PUBLIC
3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4. "http://struts.apache.org/dtds/struts-2.0.dtd">
5.<struts>
6. <package name="<SPAN class=hilite1>s2sh</SPAN>" extends="struts-default">
7. </package>
8.</struts>
<?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>
<package name="s2sh" extends="struts-default">
</package>
</struts>
接下来我们配置web.xml
Xml代码
到目前为止我们的整合工作已经完成。我们可以将该工程打包,以备下次直接使用。
这里由一个问题就是如果采用myeclipse加载hibernate和spring的lib包形式发布项目的时候会出现异常,我们可以手动去掉一个asm-2.2.3jar即可。
5.下面我们做一个简单的应用来验证。
(1)首先我们使用的是mysql,不要忘记将mysql-jdbc的jar包导入到我们的工程中
我们创建s2sh数据库,并创建表person
Sql代码
(2)首先我们创建test.s2sh.bean包,在下面创建我们person表对应的Entity Bean及其映射文件
Person.java
Java代码
1Java代码
Person.hbm.xml
Xml代码
Xml代码
(3)在spring配置文件applicationContext.xml配置hibernate的连接数据库信息及sessionFactory创建方式
Xml代码
Xml代码
开发工具Eclipse 6.5/6.6 GA
1.首先创建一个web工程,我们暂且启明为s2sh
这里我们选择的是Java EE 5.0
finish
2.向工程加入hibernate支持,这里我们使用的是hibernate 3.2
默认就可以,不要忘记将jar包加入到/WebRoot/WEB-INF/lib
接着next
实际上这里的hibernate.cfg.xml不起作用,因为该配置文件的内容由后面的spring配置文件进行管理,我们可以在创建之后将其删除
默认next
我们根本不用hibernate.cfg.xml,所以这里根本不需要进行数据库配置,当然默认也无所谓。
继续next
sessionFactory我们在之后也会直接使用spring为我们提供的,所以这里不需要创建。
finish
3.向工程加入spring支持,这里我们使用的是spring2
这里我们选择的是spring2,
不要忘记选中这5个库包:
Spring 2.0 AOP Libraries
Spring 2.0 Core Libraries
Spring 2.0 Persistence Core Libraries
Spring 2.0 Persistence JDBC Libraries
Spring 2.0 Web Libraries
也不要忘记将jar包加入到/WebRoot/WEB-INF/lib。
next
这里我们不需要Enable AOP 所以不需要选中
不要忘记将配置文件applicationContext.xml指定在/WEB-INF目录下,不然服务器启动时无法加载
next
这里的sessionFactory我们也不需要,之后会手动配置。
finish
4.加入struts2支持,由于MyEclipse并没有加入Struts2的支持,所以我们需要手动导入相关jar包。
这里我们使用的是struts 2.0.11版本
需要的相关jar包如下:
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.jar
xwork-2.0.4.jar
struts2-spring-plugin-2.0.11.jar
4.进行相关文件的配置
首先我们需要在src下加入struts的配置文件struts.xml
Xml代码
1.<?xml version="1.0" encoding="UTF-8" ?>
2.<!DOCTYPE struts PUBLIC
3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4. "http://struts.apache.org/dtds/struts-2.0.dtd">
5.<struts>
6. <package name="s2sh" extends="struts-default">
7. </package>
8.</struts>
Xml代码
1.<?xml version="1.0" encoding="UTF-8" ?>
2.<!DOCTYPE struts PUBLIC
3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4. "http://struts.apache.org/dtds/struts-2.0.dtd">
5.<struts>
6. <package name="<SPAN class=hilite1>s2sh</SPAN>" extends="struts-default">
7. </package>
8.</struts>
<?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>
<package name="s2sh" extends="struts-default">
</package>
</struts>
接下来我们配置web.xml
Xml代码
1.<?xml version="1.0" encoding="UTF-8"?> 2.<web-app version="2.5" 3. xmlns="http://java.sun.com/xml/ns/javaee" 4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 7.<!-- 配置struts2的过滤器 --> 8.<filter> 9. <filter-name>struts2</filter-name> 10. <filter-class> 11. org.apache.struts2.dispatcher.FilterDispatcher 12. </filter-class> 13.</filter> 14. 15.<filter-mapping> 16. <filter-name>struts2</filter-name> 17. <url-pattern>/*</url-pattern> 18.</filter-mapping> 19. 20.<!-- 配置spring的监听器 --> 21.<listener> 22. <listener-class> 23. org.springframework.web.context.ContextLoaderListener 24. </listener-class> 25.</listener> 26. 27. <welcome-file-list> 28. <welcome-file>index.jsp</welcome-file> 29. </welcome-file-list> 30. 31.</web-app> Xml代码 1.<?xml version="1.0" encoding="UTF-8"?> 2.<web-app version="2.5" 3. xmlns="http://java.sun.com/xml/ns/javaee" 4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 7.<!-- 配置struts2的过滤器 --> 8.<filter> 9. <filter-name>struts2</filter-name> 10. <filter-class> 11. org.apache.struts2.dispatcher.FilterDispatcher 12. </filter-class> 13.</filter> 14. 15.<filter-mapping> 16. <filter-name>struts2</filter-name> 17. <url-pattern>/*</url-pattern> 18.</filter-mapping> 19. 20.<!-- 配置spring的监听器 --> 21.<listener> 22. <listener-class> 23. org.springframework.web.context.ContextLoaderListener 24. </listener-class> 25.</listener> 26. 27. <welcome-file-list> 28. <welcome-file>index.jsp</welcome-file> 29. </welcome-file-list> 30. 31.</web-app> <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 配置struts2的过滤器 --> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 配置spring的监听器 --> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
到目前为止我们的整合工作已经完成。我们可以将该工程打包,以备下次直接使用。
这里由一个问题就是如果采用myeclipse加载hibernate和spring的lib包形式发布项目的时候会出现异常,我们可以手动去掉一个asm-2.2.3jar即可。
5.下面我们做一个简单的应用来验证。
(1)首先我们使用的是mysql,不要忘记将mysql-jdbc的jar包导入到我们的工程中
我们创建s2sh数据库,并创建表person
Sql代码
1.-- Table "person" DDL 2.CREATE TABLE `person` ( 3. `id` int(11) NOT NULL, 4. `name` varchar(20) NOT NULL, 5. `age` int(11) NOT NULL, 6. PRIMARY KEY (`id`) 7.) ENGINE=InnoDB DEFAULT CHARSET=utf8; Sql代码 1.-- Table "person" DDL 2.CREATE TABLE `person` ( 3. `id` int(11) NOT NULL, 4. `name` varchar(20) NOT NULL, 5. `age` int(11) NOT NULL, 6. PRIMARY KEY (`id`) 7.) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- Table "person" DDL CREATE TABLE `person` ( `id` int(11) NOT NULL, `name` varchar(20) NOT NULL, `age` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
(2)首先我们创建test.s2sh.bean包,在下面创建我们person表对应的Entity Bean及其映射文件
Person.java
Java代码
.package test.s2sh.bean; 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.}
1Java代码
1.package test.<SPAN class=hilite1>s2sh</SPAN>.bean; 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.}
package test.s2sh.bean; public class Person { private Integer id; private String name; private int age; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
Person.hbm.xml
Xml代码
1.<?xml version="1.0" encoding="utf-8"?> 2.<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 3."http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 4. 5.<hibernate-mapping> 6. <class name="test.s2sh.bean.Person" table="person"> 7. <id name="id" type="java.lang.Integer" column="id"> 8. <generator class="increment"></generator> 9. </id> 10. <property name="name" type="string" column="name" 11. length="20"></property> 12. <property name="age" type="java.lang.Integer" column="age"></property> 13. </class> 14.</hibernate-mapping>
Xml代码
1.<?xml version="1.0" encoding="utf-8"?> 2.<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 3."http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 4. 5.<hibernate-mapping> 6. <class name="test.<SPAN class=hilite1>s2sh</SPAN>.bean.Person" table="person"> 7. <id name="id" type="java.lang.Integer" column="id"> 8. <generator class="increment"></generator> 9. </id> 10. <property name="name" type="string" column="name" 11. length="20"></property> 12. <property name="age" type="java.lang.Integer" column="age"></property> 13. </class> 14.</hibernate-mapping>
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="test.s2sh.bean.Person" table="person"> <id name="id" type="java.lang.Integer" column="id"> <generator class="increment"></generator> </id> <property name="name" type="string" column="name" length="20"></property> <property name="age" type="java.lang.Integer" column="age"></property> </class> </hibernate-mapping>
(3)在spring配置文件applicationContext.xml配置hibernate的连接数据库信息及sessionFactory创建方式
Xml代码
1.<?xml version="1.0" encoding="UTF-8"?> 2.<beans 3. xmlns="http://www.springframework.org/schema/beans" 4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> 6.<!-- apache.dbcp连接池的配置 --> 7.<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 8. <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> 9. <property name="url" value="jdbc:mysql://localhost:3306/s2sh?useUnicode=true&characterEncoding=UTF-8"></property> 10. <property name="username" value="root"></property> 11. <property name="password" value=""></property> 12. <!-- 最大活动连接数 --> 13. <property name="maxActive" value="100"></property> 14. <!-- 最大可空闲连接数 --> 15. <property name="maxIdle" value="30"></property> 16. <!-- 最大可等待连接数 --> 17. <property name="maxWait" value="500"></property> 18. <!-- 默认的提交方式(如果不需要事务可以设置成true,在实际应用中一般设置为false,默认为false) --> 19. <property name="defaultAutoCommit" value="true"></property> 20.</bean> 21.<!-- 这里直接使用spring对hibernate3支持的sessionFactory --> 22.<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 23. <property name="dataSource" ref="dataSource"></property> 24. <!-- hibernate方言等相关配置 --> 25. <property name="hibernateProperties"> 26. <props> 27. <prop key="connection.useUnicode">true</prop> 28. <prop key="connection.characterEncoding">utf-8</prop> 29. <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 30. <prop key="hibernate.show_sql">true</prop> 31. </props> 32. </property> 33. <!-- hbm.xml的映射文件 --> 34. <property name="mappingResources"> 35. <list> 36. <value>test/s2sh/bean/Person.hbm.xml</value> 37. </list> 38. </property> 39.</bean> 40. 41.</beans>
Xml代码
1.<?xml version="1.0" encoding="UTF-8"?> 2.<beans 3. xmlns="http://www.springframework.org/schema/beans" 4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> 6.<!-- apache.dbcp连接池的配置 --> 7.<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 8. <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> 9. <property name="url" value="jdbc:mysql://localhost:3306/<SPAN class=hilite1>s2sh</SPAN>?useUnicode=true&characterEncoding=UTF-8"></property> 10. <property name="username" value="root"></property> 11. <property name="password" value=""></property> 12. <!-- 最大活动连接数 --> 13. <property name="maxActive" value="100"></property> 14. <!-- 最大可空闲连接数 --> 15. <property name="maxIdle" value="30"></property> 16. <!-- 最大可等待连接数 --> 17. <property name="maxWait" value="500"></property> 18. <!-- 默认的提交方式(如果不需要事务可以设置成true,在实际应用中一般设置为false,默认为false) --> 19. <property name="defaultAutoCommit" value="true"></property> 20.</bean> 21.<!-- 这里直接使用spring对hibernate3支持的sessionFactory --> 22.<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 23. <property name="dataSource" ref="dataSource"></property> 24. <!-- hibernate方言等相关配置 --> 25. <property name="hibernateProperties"> 26. <props> 27. <prop key="connection.useUnicode">true</prop> 28. <prop key="connection.characterEncoding">utf-8</prop> 29. <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 30. <prop key="hibernate.show_sql">true</prop> 31. </props> 32. </property> 33. <!-- hbm.xml的映射文件 --> 34. <property name="mappingResources"> 35. <list> 36. <value>test/<SPAN class=hilite1>s2sh</SPAN>/bean/Person.hbm.xml</value> 37. </list> 38. </property> 39.</bean> 40. 41.</beans> ]<?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-2.0.xsd"> <!-- apache.dbcp连接池的配置 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/s2sh?useUnicode=true&characterEncoding=UTF-8"></property> <property name="username" value="root"></property> <property name="password" value=""></property> <!-- 最大活动连接数 --> <property name="maxActive" value="100"></property> <!-- 最大可空闲连接数 --> <property name="maxIdle" value="30"></property> <!-- 最大可等待连接数 --> <property name="maxWait" value="500"></property> <!-- 默认的提交方式(如果不需要事务可以设置成true,在实际应用中一般设置为false,默认为false) --> <property name="defaultAutoCommit" value="true"></property> </bean> <!-- 这里直接使用spring对hibernate3支持的sessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <!-- hibernate方言等相关配置 --> <property name="hibernateProperties"> <props> <prop key="connection.useUnicode">true</prop> <prop key="connection.characterEncoding">utf-8</prop> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <!-- hbm.xml的映射文件 --> <property name="mappingResources"> <list> <value>test/s2sh/bean/Person.hbm.xml</value> </list> </property> </bean> </beans>
[/code如果出现乱码问题,可以考虑如下解决方案 Xml代码1.<property name="hibernateProperties"> 2. <props> 3. <prop key="connection.useUnicode">true</prop> 4. <prop key="connection.characterEncoding">utf-8</prop> 5. <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 6. <prop key="hibernate.show_sql">true</prop> 7. </props> 8.</property> Xml代码 1.<property name="hibernateProperties"> 2. <props> 3. <prop key="connection.useUnicode">true</prop> 4. <prop key="connection.characterEncoding">utf-8</prop> 5. <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 6. <prop key="hibernate.show_sql">true</prop> 7. </props> 8.</property> <property name="hibernateProperties"> <props> <prop key="connection.useUnicode">true</prop> <prop key="connection.characterEncoding">utf-8</prop> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> </props> </property>
或者将url后面加入编码串,如下
Xml代码
1.<property name="url" value="jdbc:mysql://localhost:3306/s2sh?useUnicode=true&characterEncoding=UTF-8"></property>
Xml代码
1.<property name="url" value="jdbc:mysql://localhost:3306/<SPAN class=hilite1>s2sh</SPAN>?useUnicode=true&characterEncoding=UTF-8"></property>
<property name="url" value="jdbc:mysql://localhost:3306/s2sh?useUnicode=true&characterEncoding=UTF-8"></property>
注意 : 这里我的数据库编码是utf-8
具体那种方案好用大家可以尝试一下,我基本上直接将两种方式都加上了。
(4)下面我们开始写DAO层,首先创建test.s2sh.dao包放置Dao类的接口,创建test.s2sh.dao.impl包放置Dao类的实现。
PersonDAO.java
Java代码1.package test.s2sh.dao; 2. 3.import java.util.List; 4. 5.import test.s2sh.bean.Person; 6. 7.public interface PersonDAO { 8. void savePerson(Person p); 9. void removePerson(Person p); 10. Person findPersonById(Integer id); 11. List<Person> findAllPersons(); 12. void updatePerson(Person p); 13.} Java代码 1.package test.<SPAN class=hilite1>s2sh</SPAN>.dao; 2. 3.import java.util.List; 4. 5.import test.<SPAN class=hilite1>s2sh</SPAN>.bean.Person; 6. 7.public interface PersonDAO { 8. void savePerson(Person p); 9. void removePerson(Person p); 10. Person findPersonById(Integer id); 11. List<Person> findAllPersons(); 12. void updatePerson(Person p); 13.} package test.s2sh.dao; import java.util.List; import test.s2sh.bean.Person; public interface PersonDAO { void savePerson(Person p); void removePerson(Person p); Person findPersonById(Integer id); List<Person> findAllPersons(); void updatePerson(Person p); }
由于使用了spring,所以DAO的实现类我们可以继承HibernateDaoSupport进行实现
PersonDAOImpl.java
Java代码1.package test.s2sh.dao.impl; 2. 3.import java.util.List; 4. 5.import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 6. 7.import test.s2sh.bean.Person; 8.import test.s2sh.dao.PersonDAO; 9. 10.public class PersonDAOImpl extends HibernateDaoSupport implements PersonDAO { 11. 12. public List<Person> findAllPersons() { 13. String hql = "from Person p order by p.id desc"; 14. return (List<Person>)this.getHibernateTemplate().find(hql); 15. } 16. 17. public Person findPersonById(Integer id) { 18. Person p = (Person) this.getHibernateTemplate().get(Person.class, id); 19. return p; 20. } 21. 22. public void removePerson(Person p) { 23. this.getHibernateTemplate().delete(p); 24. } 25. 26. public void savePerson(Person p) { 27. this.getHibernateTemplate().save(p); 28. } 29. 30. public void updatePerson(Person p) { 31. this.getHibernateTemplate().update(p); 32. } 33. 34.}
Java代码1.package test.<SPAN class=hilite1>s2sh</SPAN>.dao.impl; 2. 3.import java.util.List; 4. 5.import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 6. 7.import test.<SPAN class=hilite1>s2sh</SPAN>.bean.Person; 8.import test.<SPAN class=hilite1>s2sh</SPAN>.dao.PersonDAO; 9. 10.public class PersonDAOImpl extends HibernateDaoSupport implements PersonDAO { 11. 12. public List<Person> findAllPersons() { 13. String hql = "from Person p order by p.id desc"; 14. return (List<Person>)this.getHibernateTemplate().find(hql); 15. } 16. 17. public Person findPersonById(Integer id) { 18. Person p = (Person) this.getHibernateTemplate().get(Person.class, id); 19. return p; 20. } 21. 22. public void removePerson(Person p) { 23. this.getHibernateTemplate().delete(p); 24. } 25. 26. public void savePerson(Person p) { 27. this.getHibernateTemplate().save(p); 28. } 29. 30. public void updatePerson(Person p) { 31. this.getHibernateTemplate().update(p); 32. } 33. 34.}
package test.s2sh.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import test.s2sh.bean.Person;
import test.s2sh.dao.PersonDAO;
public class PersonDAOImpl extends HibernateDaoSupport implements PersonDAO {
public List<Person> findAllPersons() {
String hql = "from Person p order by p.id desc";
return (List<Person>)this.getHibernateTemplate().find(hql);
}
public Person findPersonById(Integer id) {
Person p = (Person) this.getHibernateTemplate().get(Person.class, id);
return p;
}
public void removePerson(Person p) {
this.getHibernateTemplate().delete(p);
}
public void savePerson(Person p) {
this.getHibernateTemplate().save(p);
}
public void updatePerson(Person p) {
this.getHibernateTemplate().update(p);
}
}
(5)下面我们开始进行service层的设计,这里的service层仅是简单调用DAO层的的方法。
同样是创建接口包(test.s2sh.service),实现包和接口类(test.s2sh.service.impl),实现类
PersonService.java
Java代码1.package test.s2sh.service; 2. 3.import java.util.List; 4. 5.import test.s2sh.bean.Person; 6. 7.public interface PersonService { 8. List<Person> findAll(); 9. void save(Person p); 10. void delete(Person p); 11. Person findById(Integer id); 12. void update(Person p); 13.} Java代码 1.package test.<SPAN class=hilite1>s2sh</SPAN>.service; 2. 3.import java.util.List; 4. 5.import test.<SPAN class=hilite1>s2sh</SPAN>.bean.Person; 6. 7.public interface PersonService { 8. List<Person> findAll(); 9. void save(Person p); 10. void delete(Person p); 11. Person findById(Integer id); 12. void update(Person p); 13.}
发表评论
-
struts2配置详解
2011-11-17 10:15 1456struts 2 配置详解 2010-03-02 22:44 ... -
web.xml配置详细说明
2011-11-17 10:03 754配置web.xml,配置Struts2的过滤器 2010-0 ... -
web.xml配置详细说明
2011-11-17 10:02 995配置web.xml,配置Struts2的过滤器 2010-0 ... -
s2sh整合
2011-09-20 22:11 2948最近的struts2-hibernate -spring整合开 ... -
S2sh开发步骤以及思路
2011-04-25 10:20 988ssh项目开发思路 创建数据库表 建立公共关系类(bean ... -
struts+spring整合4种方法
2011-01-27 19:26 801struts spring 整合 论坛中用Struts+Sp ... -
struts2的开发搭建
2011-01-27 19:21 766Struts2概述 在S ... -
s2sh实现上传下载
2011-01-27 19:19 1126首页 新闻 论坛 问答 博客 招聘 更多 ▼ 专栏 圈子 ... -
s2sh整合<二>
2011-01-27 16:19 932这里我们需要使用spring的ioc将DAO诸如到servic ...
相关推荐
在Java Web开发中,S2SH整合能提供一个强大、灵活且高效的开发环境。 Struts2是基于MVC设计模式的Web应用框架,它负责处理HTTP请求,路由到相应的Action,执行业务逻辑后返回结果视图。Struts2提供了丰富的拦截器...
【S2SH整合完美教程】 在Java Web开发中,Struts2、Spring和Hibernate的整合是常见的技术栈,被广泛用于构建MVC架构的应用程序。S2SH整合旨在实现业务逻辑与控制层、持久化层的高效协同,提高代码的可维护性和可...
这个压缩包“s2sh整合所需jar包大全”提供了一整套支持S2SH整合所需的库文件,适用于Eclipse开发环境。 1. **Struts 2**: Struts 2 是一个基于MVC设计模式的Web应用框架,它扩展了经典的Struts 1,提供了更强大的...
总的来说,S2SH整合利用了各自框架的优势,为Java Web开发提供了一个强大而灵活的解决方案。理解并掌握S2SH整合,不仅有助于提升开发效率,也有助于构建更高质量的Web应用。在实际开发中,开发者可以根据项目需求...
### S2SH框架整合知识点详解 #### 一、S2SH框架概述 S2SH框架是Struts2、Spring和Hibernate三个开源框架的整合。这三个框架分别负责Web层、业务逻辑层和服务持久化层,通过整合可以实现MVC模式的应用程序开发。 - ...
### S2SH整合报错分析及解决方法 #### 背景介绍 在进行S2SH(Struts+Spring+Hibernate)项目的开发过程中,开发者可能会遇到整合层面的问题,特别是当项目涉及多种框架协同工作时。本文将针对一个具体的错误信息...
总结,S2SH整合提供了一种高效、成熟的Java Web开发解决方案,它简化了开发过程,提高了代码的可维护性。对于初学者来说,理解并掌握S2SH的整合和运作原理,是迈向企业级开发的重要一步。通过实际操作解压后的项目,...
S2SH框架整合是指将Struts2(Struts)、Spring和Hibernate三个技术框架进行整合的一种应用架构模式。这种整合旨在简化企业级Java应用开发过程,提高代码复用性,并增强系统的可维护性和扩展性。 #### 二、知识点详解 ...
### S2SH整合精华版:Struts 2、Spring 2、Hibernate 3集成实践 #### 关键词:Struts2、Spring2、Hibernate3 本文档旨在介绍如何利用Struts 2、Spring 2 和 Hibernate 3进行系统集成开发,并提供了一套完整的实践...
【标题】"s2sh整合完全包"指的是一个包含了所有必要组件的压缩文件,用于支持基于Struts2、Spring和Hibernate(简称s2sh)的Web应用开发。这个包简化了开发过程,因为它包含了这三个框架的库文件,使得开发者无需...
在S2SH整合中,Hibernate 3.5.6版本作为ORM(对象关系映射)工具,允许开发者通过对象模型来操作数据库,而无需编写SQL。它支持懒加载、缓存策略和复杂查询,使得数据库操作更加便捷。 **整合过程** S2SH的整合...
本压缩包"**s2sh整合详细jar**"显然是一份包含了这三个框架核心组件的集合,旨在帮助初学者快速搭建SSH整合环境。以下是对每个框架及其整合细节的详细解释: 1. **Struts2**:Struts2是一个基于MVC设计模式的Java ...
这三者结合,被称为S2SH整合,能够构建出高效、灵活且可维护的Java Web应用程序。 **Struts2框架**: Struts2是Struts1的升级版,它引入了拦截器(Interceptor)的概念,增强了动作(Action)与结果(Result)的...
### 使用配置文件对DAO层封装具有分页功能的S2SH整合实例 #### 背景及概述 本文档旨在详细介绍如何使用配置文件的方式完成DAO层的封装,并在此基础上实现分页功能,最终达成S2SH(Struts、Spring、Hibernate)的...
这个“完整的S2SH框架整合,带jar包”资源包含了这些框架的核心库,以及可能的一个实例项目,旨在帮助开发者快速搭建和理解S2SH的应用。 1. **Struts**:Struts 是一个基于MVC设计模式的Web应用框架,主要用于控制...
在S2SH整合中,Spring作为中心枢纽,可以管理Struts2的Action实例,实现依赖注入,同时也可以配置Hibernate的数据源和SessionFactory。 3. **Hibernate**:Hibernate是一个对象关系映射(ORM)框架,它简化了Java...
这个压缩包提供了实现增删改查功能的源代码,以及完整的S2SH整合包,使得开发者可以直接运行项目,无需从零开始配置环境。 **Struts2** 是一个基于MVC设计模式的Action驱动框架,它负责处理用户的请求,并通过...
基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能
标题 "s2sh整合所有的jar包" 指的是将Struts、Spring和Hibernate这三种技术集成所需的Java档案(JAR)文件集合在一起,便于在项目开发中快速引用和使用。这种整合通常被称为SSH框架,它是Java Web开发中的一个流行...
S2SH框架是Java Web开发中的一个经典组合,由Struts 2、Spring和Hibernate三大框架组成,提供了模型-视图-控制器(MVC)架构的支持,实现了业务逻辑、数据访问和用户界面的解耦。本教程将详细介绍如何在MyEclipse ...