- 浏览: 900489 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (537)
- Java SE (114)
- Struts (18)
- Hibernate (25)
- Spring (3)
- Page_Tech (41)
- Others (87)
- Database (29)
- Server (24)
- OpenSource_Tools (15)
- IDE_Tool (22)
- Algorithm (28)
- Interview (22)
- Test (28)
- Hardware (1)
- Mainframe (25)
- Web application (4)
- Linux (3)
- PHP (17)
- Android (1)
- Perl (6)
- ubuntu (1)
- Java EE (9)
- Web Analysis (5)
- Node.js (2)
- javascript (2)
最新评论
-
一键注册:
request.getRequestURL()和request.getRequestURI() -
SuperCustomer:
...
SED的暂存空间和模式空间 -
juyo_ch:
讲得挺好理解的,学习了
java 死锁及解决 -
chinaalex:
最后一题答案正确,但是分析有误.按照如下过程,上一行为瓶,下一 ...
zz智力题 -
liaowuxukong:
多谢博主啦,弱弱的了解了一点。
C++/Java 实现多态的方法(C++)
时下流行的开发模式: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.1\MyWorkspace];
2、建立普通Java工程[不是MyEclipse Web工程]MyProject[D:\Eclipse3.1\MyWorkspace\MyProject;
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:\MyEclipse\eclipse\plugins\com.genuitec.eclipse.springframework_4.1.1\data\1.2\lib\spring-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
发表评论
-
NotePad ++ 设置列边界
2012-03-15 10:29 1314NotePad++是一款很好的编辑文本的工具,在编写程序上也相 ... -
Notepad++ Tips
2012-03-15 09:44 1227问:在网页中复制代 ... -
eclipse Tips
2012-02-14 16:34 680To be continue.. 1. 选定一个 ... -
eclipse 快捷键
2011-05-23 16:47 818Ctrl + Shift + T:打开类型:显示" ... -
安装 m2eclipse 插件
2010-10-22 11:21 1196要安装m2Eclipse插件,你需要符合一些先决条件。你需要运 ... -
SVN trunk, branches and tag
2010-08-09 14:22 2546trunk :表示开 ... -
Myeclipse使用技巧两三则
2010-07-06 10:26 1412最近听说Eclipse的工程直接可以使用Myeclipse开发 ... -
同时开启两个Tomcat
2010-04-07 11:00 996下载地址:http://tomcat.ap ... -
MyEclipse 6.5 最新下载、注册、汉化
2010-04-07 09:45 2882因最近发现网上很多转 ... -
eclipse打开某个jsp文件报空指针错误
2010-03-10 13:07 1930解决方法: 第一:文档右击-->open wITh-- ... -
Tomcat插件--Devloader (免重启的开发插件)
2010-03-05 19:15 2627Sysdeo的Tomcat Plugin是Eclipse下面一 ... -
Eclipse中安装Maven
2009-12-12 16:56 22971. 首先进入Apache Maven的网站,ht ... -
Eclipse插件的安装有两种方法
2009-11-21 15:02 8671、在eclipse的主目录(ECLIPSE_HOME,比如在 ... -
eclipse支持J2EE开发的几个插件
2009-11-21 15:01 3633eclipse 并没有附带J2EE开发工具,不过却有一些插件能 ... -
Eclipse WTP 入门教程
2009-10-06 00:46 2168环境配置:Eclipse版本 eclipse-SDK-3.3. ... -
myeclipse 编辑jsp智能提示 运行慢的解决办法
2009-10-06 00:32 3496myeclipse 编辑jsp 的智能提示 这个问题的确很 ... -
myeclipse jsp 编辑器 自动提示 慢 卡 终极解决
2009-10-06 00:31 2132上一篇文章只是解决单个工程表面问题,也就是提示的时候用了我自己 ... -
Maven2之旅
2009-10-06 00:29 886Maven2之旅 关于Maven2的系列文章 我的 ... -
Eclipse常用插件列表
2009-09-30 13:33 884Properties Editor Pro ... -
Eclipse插件的安装
2009-09-30 13:20 895Eclipse 本身的开发能力 ...
相关推荐
Myeclipse 环境下 Spring 集成Hibernate 示例
用MyEclipse搭建Struts+Spring+Hibernate框架(图文).doc
自己做的一个Myeclipse Oracle9i hibernate3.2 Spring2.5 Struts2, 包删除了, 自己在myeclipse里添加就行了, 已经调试成功. 建表语句: create table CUSTOMER ( ID INTEGER not null, USERNAME VARCHAR2(12), ...
word文档。 <br>整合hibernate和spring这样的文章已经很多了,下面我们来看看如何利用myeclipse的功能为整合提速咯。 1.首先,创建工程 …………
MYECLIPSE + STRUTS2 + SPRING4 + HIBERNATE4 + STRUCTS2S+OGNL + MYSQL_5.7.12
myeclipse下整合spring和hibernate,很好的参考资料,希望对你的学习有帮助!
NULL 博文链接:https://yingjunjia.iteye.com/blog/815813
Welcome to the MyEclipse Hibernate and Spring tutorial. This tutorial is meant to be a quick overview of how using both Hibernate and Spring in the same project works in MyEclipse.
Myeclipse开发struts+hibernate+spring新手入门---环境配置----项目开发示例 Myeclipse开发struts+hibernate+spring小记 开发前准备工作: 1、下载eclipse3.1版本 下载地址: 2、下载Myeclipse插件 下载地址: 3...
myeclipse整合spring和hibernate和struts的源代码。详细说明,简单使用
图解MyEclipse配置struts+hibernate+spring图解MyEclipse配置struts+hibernate+spring图解MyEclipse配置struts+hibernate+spring图解MyEclipse配置struts+hibernate+spring图解MyEclipse配置struts+hibernate+spring...
使用myeclipse集成struts,hibernate,spring的一个示例程序
MyEclipse下struts2、spring、hibernate整合
Myeclipse8.5下搭建SSH框架(图解)Struts2.1+Spring3.0+Hibernate3.3
图文教程MyEclipse配置struts+hibernate+spring.doc
解压后导入myeclipse中可直接运行
Struts2+Spring+Hibernate整合过程详解 Struts作为MVC 2的Web框架,自推出以来不断受到开发者的追捧,得到广泛的应用。... 本文记录了使用Myeclipse8.5对Struts2、Spring、Hibernate进行整合的详细步骤:
spring mvc ppt zip 博文链接:https://eric2007.iteye.com/blog/203521