- 浏览: 107550 次
- 性别:
- 来自: 南充
最新评论
-
zhangzi:
你这是hibernate hql分页
hibernate SQL 分页查询 -
edwardjj1234:
listMyArticle.action这个文件能否说明一下? ...
ssh2分页例子 -
edwardjj1234:
前台页面显示不用c;foreach吗?是在哪里控制页面输出数量 ...
ssh2分页例子 -
yangqjiayou:
大哥,代码传给我一份呗,加上数据库文件哈,谢谢啦3466598 ...
ssh2分页例子 -
wangshunfan:
楼主,在MemberDaoImpl类中
return getH ...
ssh2分页例子
时下流行的开发模式:Spring+Hibernate+Struts,在这里我介绍一下Spring+Hibernate的结合,加入Struts表示层那是非常简单的事情了。话不多说,让我们现在开始:
数据库准备:
数据库名称:AT_SMS
表名称:admin
字段如下:
sid bigint 从1开始自动增加,步长为1,单独做表的主键name varchar(50)
password varchar(50)
开发软件准备:Eclipse 3.1
MyEclipse Enterprise Workbench v4.1.1 GA
JDK1.4.2
Spring1.2[MyEclipse自带的]
Hibernate3.0[MyEclipse自带的]
步骤:
1、设定自己的WorkSpace[D:Eclipse3.1MyWorkspace];
2、建立普通Java工程[不是MyEclipse Web工程]MyProject[D:Eclipse3.1MyWorkspaceMyProject;
2A、配置数据库连接备用。东东在Window->Open Perspective->My Eclipse Database Explore下。在左边空白框点右键选择New,弹出框后填写Profile name:MyTestDB;驱动点Configure database driver去配置,其它的看着填,不想看到所以数据库就在第二步选择Display the selected schemas,点按钮Add时会自动连接数据库显示所有的数据,选择你想看到的,在这我们选择AT_SMS,点finish完成了。
3、添加Spring相关东西[点击菜单MyEclipse->Add SPring Capabilities...][注意:把光标停在工程根目录才能添加,不然是灰灰的];弹出窗口默认选中Spring1.2 Core包,把Spring1.2 ORM/DAO/Hibernate3选中,把Spring1.2 AOP,Spring1.2 Testing都选中[省得测试时候遇到找不到jar再去导入],next,创建一个src目录存放配置文件,finish。
4、添加Hibernate相关东西,注意根Spring关联起来,数据库连接选择之前创建的MyTestDB即可,Dialect默认是Sysbase,我用Sql Server,所以要改过来;Hibernate的bean ID设成跟Spring的一样,结果配置文件提示ID不唯一,哈哈,那就清除Hiebernate相关的东西先,这还有些麻烦,首先要切换到MyEclipse J2EE Development[如果没有这个可能是你的工作区没有这种工程,去创建一个MyEclipseJ2EE工程],接着把工程视图从PackageExplorer切换到Navigator,删除文件名带Hibernate字样的文件,打开.project文件,删除里头关于Hibernate的一个buildCommand,和一个nature.Ok了,可以重新添加Hibernate相关的东西.[注意:SessionFactory就是Spring用来关联Hibernate的那Bean的ID我填SessionFactory,填写数据库参数时的那个BeanID就是数据源名称,我填dataSource]
5、接下来产生Hibernate映射,将视图切换到MyEclipse Database Explorer,点右键打开连接,选择你要产生Java代码的表,我们在这选择admin,弹出窗口发现会默认带出一些参数,由于这个DB连接不是属于单个工程的是个全局的东东,默认参数可能不是你想要的,不管那么多你选择Java src folder到你当前工程的src目录,这就与你的工程关联起来了,参数也跟着变了,Java package设为com.kama.hibernate,选中产生Spring DAO;其它默认,表的主键产生要设置一些,选中表名,在ID Generator选择native;就这样了。
6、让Spring管理数据库事务,在配置文件applicationContext.xml中添加内容:
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="SessionFactory"/>
</property>
</bean>
<bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="list*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="create*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="regedit*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="do*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean id="autoProxyCreator"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="interceptorNames">
<list>
<value>baseTransactionProxy</value>
</list>
</property>
<property name="beanNames">
<value>*DAO</value>
</property>
</bean>
7、事务中,必须是接口调用,具体原因请看其它资料,现在我们增加接口:AdoInterface,在其中定义方法:public void save(Object transientInstance);[用Object做参数类型是为了让所有DAO类共用这个接口];
8、AdminDAO中增加实现接口AdoInterface,修改其save方法的声明,public void save(Object transientInstance)
9、测试方法一,写如下代码来测试:
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"applicationContext.xml");
AdoInterface dao = (AdoInterface) ctx.getBean("AdminDAO");
System.out.println(dao.toString());
Admin admin = new Admin();
admin.setName("Kama");
admin.setPassword("123456");
dao.save(admin);
System.out.println("--测试完毕--");
看到插入的记录了吧!
10、测试方法二:在工程属性的JAVA Builder path->Libraries里头设置导入D:MyEclipseeclipsepluginscom.genuitec.eclipse.springframework_4.1.1data1.2libspring-mock.jar
产生测试类继承org.springframework.test.AbstractTransactionalSpringContextTests;修改:
protected String[] getConfigLocations() {
return new String[]
{ "/applicationContext.xml" };
}
增加:
private AdoInterface adminDAO;
public void setAdminDAO(AdoInterface adminDAO)
{
this.adminDAO = adminDAO;
}
public void testSave()
{
this.setComplete();//想将数据插入数据库就保留这个,不想插入数据库,去掉这句Junit测试会自动回滚。
Admin admin = new Admin();
admin.setName("KamaSupport");
admin.setPassword("123456");
this.adminDAO.save(admin);
}
以Junit形式运行测试程序。大功告成!
附录A:applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>net.sourceforge.jtds.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:jtds:sqlserver://127.0.0.1:3344/AT_SMS;SelectMethod=cursor</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>123456</value>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="SessionFactory"/>
</property>
</bean>
<bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="list*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="create*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="regedit*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="do*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean id="autoProxyCreator"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="interceptorNames">
<list>
<value>baseTransactionProxy</value>
</list>
</property>
<property name="beanNames">
<value>*DAO</value>
</property>
</bean>
<bean id="SessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/kama/hibernate/Admin.hbm.xml</value>
</list>
</property>
</bean>
<bean id="AdminDAO" class="com.kama.hibernate.AdminDAO">
<property name="sessionFactory">
<ref bean="SessionFactory" />
</property>
</bean>
</beans>
附录B:log4j.properties
log4j.rootLogger=INFO,default
log4j.logger.org=ERROR
log4j.logger.com.comp=ERROR
log4j.logger.net.sf.hibernate=ERROR
log4j.logger.net.sf.hibernate.SQL=ERROR
log4j.logger.net.sf.hibernate.type=ERROR
log4j.logger.net.sf.ehcache=ERROR
log4j.logger.org.springframework=ERROR
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=DEBUG
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS}:[%p] [%t] %r %l %m%n
log4j.appender.default=org.apache.log4j.RollingFileAppender
log4j.appender.default.Threshold=DEBUG
log4j.appender.default.File=kama.log
log4j.appender.default.Append=true
log4j.appender.default.MaxFileSize=1000KB
log4j.appender.default.MaxBackupIndex=3
log4j.appender.default.layout=org.apache.log4j.PatternLayout
log4j.appender.default.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS}:[%p] [%t] %r %l %m%n
发表评论
-
江哥读:创业者必看(马云语录)
2011-05-22 11:16 1017不要因为别人的一句话 ... -
LOG4J的配置..实现了输出到控制台、文件、回滚文件、发送日志邮件
2011-01-25 10:28 1439Log4J配置文件实现了输出到控制台、文件、回滚文件、发送 ... -
IE6中用了float:left之后导致margin-left双倍边距的BUG解决方法
2011-01-18 14:32 2834先看css代码:div { float:left; ... -
Hibernate三大类查询总结
2010-07-24 21:15 14012Hibernate目前总共分为三大类查询:cretiria, ... -
JAVA认证考试历年经典面试题目整理
2010-07-23 20:55 8841. java中的异常处理机制的简单和应用。 当Java程序 ... -
JAVA SSH框架
2010-07-23 20:53 2191JAVA SSH框架 JAVA SSH框架在Struts + ... -
Spring Security 安全框架
2010-06-02 13:19 983http://www.family168.com/oa/spr ... -
Eclipse快捷键
2010-05-27 09:52 842Eclipse 快捷键(1) Ctrl+1 快 ... -
Hibernate查询Query By Criterial
2010-05-25 19:35 1851提供的检索方式:(1) ... -
DispatchAction, LookupDispatchAction, MappingDispatchAction深入分析
2010-04-29 18:29 996首先我们来看一下它们三者之间的关系 java.lang.Obj ... -
FCKeditor在struts2中无法上传文件的解决办法
2010-03-31 20:44 1205最近有个项目使用struts2进行开发,同时使用了FCKEdi ... -
java备份和恢复mysql数据库
2010-02-27 12:00 1043package cwnu.cs.ncjzwms.utils; ... -
tomcat设置虚拟域名
2010-01-04 17:17 2205在$tomcat/webapps/下建了个myjsp目录作为我 ... -
mysql数据库同步
2009-12-24 17:16 12761、简要介绍:mysql从3.23.15版本以后提供数据库复制 ... -
http://fykyx521.javaeye.com/blog/517138
2009-11-17 10:20 818http://fykyx521.iteye.com/blog/ ... -
163编辑器
2009-10-31 20:50 1876163Editor编辑器的源代码 ... -
Flex 修改浏览器页面标题
2009-10-12 20:38 3018修改浏览器页面标题2009-01-16 16:23浏览器页面的 ... -
PHP连接数据库
2009-10-02 15:47 971<!DOCTYPE html PUBLIC " ... -
用Flex+Spring+Hibernate写一个登录
2009-09-25 11:26 21841下载支持文件flex-spring.zip 新建FlexL ... -
FLEX和Spring、Hibernate的集成 - Flex+Spring
2009-09-25 11:22 1243remoting-config.xml:<destina ...
相关推荐
### SSH事务配置详解 在软件开发领域,特别是Java企业级应用开发中,Spring与Hibernate作为两个重要的框架,常被一起使用来实现业务逻辑层的高效处理。其中,Spring提供了强大的依赖注入(DI)和面向切面编程(AOP...
### J2EE SSH事务配置详解 #### 一、引言 在J2EE(Java 2 Enterprise Edition)项目开发过程中,事务管理是非常重要的一个环节。它确保了数据的一致性和完整性,特别是在涉及到多个数据库操作时更为关键。SSH框架...
### SSH事务配置详解 #### 一、概述 SSH框架(Struts + Spring + Hibernate)是Java Web开发中非常流行的一种组合方案。它结合了MVC(Model-View-Controller)设计模式的优势,提供了灵活的数据访问层(Hibernate...
### SSH详细配置文件知识点 #### 一、SSH框架概述与创建 SSH,即Struts、Spring、Hibernate三个开源框架的组合,是Java Web开发中常用的三层架构模式。它结合了Struts的MVC架构,Spring的IoC和AOP,以及Hibernate的...
SQLServer 数据库 SSH 配置详解 SQLServer 数据库 SSH 配置是将 SQLServer 数据库与 Secure Shell(SSH)协议集成,以实现加密的数据传输和身份验证。本文将详细介绍 SQLServer 数据库 SSH 配置的实现步骤和相关...
标题中的“ssh零配置_项目Demo”指的是使用SSH(Spring、Struts、Hibernate)三大框架进行开发时的无配置或最少配置方式。SSH是Java Web开发中常用的三个开源框架,它们分别是Spring负责依赖注入和事务管理,Struts...
事务配置** 在SSH框架中,Spring提供了声明式事务管理。这允许开发者在XML配置文件中定义事务边界,而不是在代码中显式调用开始和结束事务。例如,可以在Spring的`applicationContext.xml`或`struts-config.xml`...
- 配置Spring对Hibernate的事务管理,通常在`applicationContext.xml`中配置DataSource和SessionFactory,以及事务管理器。 8. **测试和调试** - 编写Action,Service,DAO层代码,完成业务逻辑。 - 创建视图层...
### SSH框架配置与Ajax关键代码解析 #### 一、SSH框架概述 SSH框架是指Spring、Struts2和Hibernate这三个开源框架的集成应用。其中,Spring主要用于业务逻辑层和其他各层的解耦,实现面向接口编程;Struts2是MVC...
SSH事务整合是Java后台开发中常见的一种技术组合,它涵盖了Spring、SpringMVC和Hibernate三个核心框架。这个项目展示了如何将这些组件有效地集成在一起,以实现一个完整的后端解决方案。 首先,Spring作为基础架构...
在本实例中,我们将探讨SSH框架的配置文件及其作用。 1. **log4j.properties**:这是日志记录的配置文件,基于Log4j框架。通过定义不同的日志级别(如DEBUG、INFO、WARN等)和输出目的地(控制台、文件、邮件等),...
这个"SSH零配置,完全注解方式工程"是一个示例项目,它展示了如何在不使用XML配置文件的情况下,通过Java注解来配置和使用SSH框架。 首先,Spring框架是应用上下文和依赖注入(DI)的核心。在传统配置中,我们会在...
### IDEA配置SSH框架详解 #### 一、简介 在Java Web开发中,SSH(Struts + Spring + Hibernate)框架组合是一种非常流行的轻量级企业级应用解决方案。它结合了Struts2的MVC架构模式、Spring的依赖注入与事务管理...
### SSH事务处理详解 在软件开发领域,特别是企业级应用中,事务处理是确保数据一致性和完整性的重要手段。本文将围绕“SSH事务处理”这一主题展开深入探讨,旨在帮助读者理解如何在Struts+Spring+Hibernate(简称...
在SSH事务配置中,提到的“通用性”是指通过合理配置,可以将事务管理应用到多个DAO(数据访问对象)或Mgr(Manager,业务逻辑层组件)。这通常涉及到Spring的AOP配置,通过定义事务切面,可以将事务规则应用于一组...
ssh框架事务管理applicationContext.xml配置文件
下面将详细讲解如何在Eclipse环境中配置SSH框架。 首先,我们需要准备以下几个核心组件: 1. **Struts2**: Struts2是一个用于构建基于Java EE Web应用的MVC框架,它提供了一种处理HTTP请求和响应的方式,使得...
SSH整合是指将Spring、Struts2和Hibernate这三个流行的开源Java框架...总的来说,这个SSH整合项目利用注解简化了配置,提高了开发效率,同时通过事务管理保证了数据一致性,体现了现代企业级应用开发的趋势和最佳实践。
SSH的主要配置文件在Unix/Linux系统中通常是`/etc/ssh/sshd_config`(服务器端)和`~/.ssh/config`(客户端)。这些文件中包含了SSH服务的各种设置,如端口号、加密算法、身份验证方法等。 - `sshd_config`文件:...