如何使用eclipse构建一个struts spring hibernate系统

来源:百度文库 编辑:神马文学网 时间:2024/04/27 22:25:20
主  题: 跪求如何使用eclipse构建一个struts+spring+hibernate系统。(分不够另外在加,进来就有分)
作  者:qdzhouyan521 ()
等  级:
信 誉 值: 100
所属论坛: Java J2EE / EJB / JMS
问题点数: 100
回复次数: 68
发表时间: 2007-2-2 11:31:35
使用eclipse构建一个struts+spring+hibernate系统对于数据库是一个表的情况我会,我在网上也见过很多例子。问题是在真正项目开发中数据库是多个表并存在关联关系,如何使用eclipse构建一个数据库是多个表并存在关联关系的struts+spring+hibernate系统,小弟恳请各位前辈给我一个例子,如果有录像就更好了。小子在此叩谢了,分不够可以另外再给。
回复人:lhonglei(随风流浪) () 信誉:100 2007-2-2 11:40:09 得分:0
在hibernate的xml文件中把表信息都加入就可以了
Top
回复人:qdzhouyan521() () 信誉:100 2007-2-2 13:11:14 得分:0
怎么没有人回答我的问题呀,难道是分少了吗?求求各位前辈了???
Top
回复人:richblue88(rich) () 信誉:100 2007-2-2 13:17:57 得分:0
估计你完全没看Hibernate书
Top
回复人:zzlworld() () 信誉:100 2007-2-2 13:20:38 得分:0
顶 支持你
Top
回复人:lirui415() () 信誉:100 2007-2-2 13:22:36 得分:0
我来接分 我这有录像
Top
回复人:ljfeng0214() () 信誉:100 2007-2-2 16:35:49 得分:0
建议你看点hibernate的资料。
Top
回复人:gz_boy(学会生活,学会学习~_~) () 信誉:100 2007-2-2 16:54:12 得分:0
帮你顶个
你可以看看hibernate的书,里面有的。
不然你也可以去下载个Springside
看里面的helloworld例子就可以找到你要的东西了
http://www.springside.org.cn/
Top
回复人:lc328(FEEL) () 信誉:100 2007-2-2 17:09:18 得分:0
接分,,帮你顶顶!
Top
回复人:dooodoodo(深蓝) () 信誉:100 2007-2-2 17:27:40 得分:0
建议你去安装一个lomboz,方便很多!
新建->工程-〉java->lomboz->工程名-〉next->library->添加你要加载的jar文件。
Top
回复人:meilvin() () 信誉:100 2007-2-2 18:03:18 得分:0
http://meilvin.blog.hexun.com/6441944_d.html,可能对你有用,下了别忘记了顶博客呀
Top
回复人:jicken_woo(黑夜里你留下的轮廓,指引我-------不寂寞---------------) () 信誉:100 2007-2-2 18:29:45 得分:0
本文是开发基于spring的web应用的入门文章,前端采用Struts MVC框架,中间层采用spring,后台采用Hibernate。
本文包含以下内容:
·配置Hibernate和事务
·装载Spring的applicationContext.xml文件
·建立业务层和DAO之间的依赖关系
·将Spring应用到Struts中
简介
这个例子是建立一个简单的web应用,叫MyUsers,完成用户管理操作,包含简单的数据库增,删,查,该即CRUD(新建,访问,更新,删除)操作。这是一个三层的web应用,通过Action(Struts)访问业务层,业务层访问DAO。图一简要说明了该应用的总体结构。图上的数字说明了流程顺序-从web(UserAction)到中间层(UserManager),再到数据访问层(UserDAO),然后将结果返回。
Spring层的真正强大在于它的声明型事务处理,帮定和对持久层支持(例如Hiberate和iBATIS)
以下下是完成这个例子的步骤:
1. 安装Eclipse插件
2. 数据库建表
3. 配置Hibernate和Spring
4. 建立Hibernate DAO接口的实现类
5. 运行测试类,测试DAO的CRUD操作
6. 创建一个处理类,声明事务
7. 创建web层的Action和model
8. 运行Action的测试类测试CRUD操作
9. 创建jsp文件通过浏览器进行CRUD操作
10. 通过浏览器校验jsp
安装eclipse插件
1. Hibernate插件http://www.binamics.com/hibernatesync
2. Spring插件http://springframework.sourceforge.net/spring-ide/eclipse/updatesite/
3. MyEclipse插件(破解版)
4. Tomcat插件. tanghan
5. 其他插件包括xml,jsp,
数据库建表
create table app_user(id number not null primary,firstname vchar(32),lastname vchar(32));
新建项目
新建一个web project,新建后的目录结构同时包含了新建文件夹page用于放jsp文件,和源文件夹test用于放junit测试文件。同时将用到的包,包括struts,hibernate,spring都导入到lib目录下。
创建持久层O/R mapping
1. 在src/com.jandar.model下用hibernate插件从数据库导出app_user的.hbm.xml文件改名为User.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping package="com.jandar.model">
<class name="User" table="APP_USER">
<id
column="ID"
name="id"
type="integer"

<generator class="assigned" />
</id>
<property
column="LASTNAME"
length="10"
name="lastname"
not-null="false"
type="string"
/>
<property
column="FIRSTNAME"
length="10"
name="firstname"
not-null="true"
type="string"
/>
</class>
</hibernate-mapping>
2. 通过hibernate synchronizer->synchronizer file生成User.java文件,User对象对应于数据库中的app_user表
注:在eclipse下自动生成的对象文件不完全相同,相同的是每个对象文件必须实现Serializable接口,必需又toString和hashCode方法;
import java.io.Serializable;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
public class BaseObject implements Serializable {
public String toString() {
return ToStringBuilder.reflectionToString(this,
ToStringStyle.MULTI_LINE_STYLE);
}
public boolean equals(Object o) {
return EqualsBuilder.reflectionEquals(this, o);
}
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
}
public class User extends BaseObject {
private Long id;
private String firstName;
private String lastName;
/**
* @return Returns the id.
*/
public Long getId() {
return id;
}
/**
* @param id The id to set.
*/
public void setId(Long id) {
this.id = id;
}
/**
* @return Returns the firstName.
*/
public String getFirstName() {
return firstName;
}
/**
* @param firstName The firstName to set.
*/
public void setFirstName(String firstName) {
this.firstName = firstName;
}
/**
* @return Returns the lastName.
*/
public String getLastName() {
return lastName;
}
/**
* @param lastName The lastName to set.
*/
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
创建DAO访问对象
1. 在src/com.jandar.service.dao新建IDAO.java接口,所有的DAO都继承该接口
package com.jandar.services.dao;
public interface IDAO {
}
2. 在src/com.jandar.service.dao下新建IUserDAO.java接口
public interface IUserDAO extends DAO {
List getUsers();
User getUser(Integer userid);
void saveUser(User user);
void removeUser(Integer id);
}
该接口提供了访问对象的方法,
3. 在src/com.jandar.service.dao.hibernate下新建UserDAOHiberante.java
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.orm.hibernate.support.HibernateDaoSupport;
import com.jandar.model.User;
import com.jandar.service.dao.IUserDAO;
public class UserDaoHibernate extends HibernateDaoSupport implements IUserDAO {
private Log log=LogFactory.getLog(UserDaoHibernate.class);
/* (非 Javadoc)
* @see com.jandar.dao.IUserDAO#getUsers()
*/
public List getUsers() {
return getHibernateTemplate().find("from User");
}
/* (非 Javadoc)
* @see com.jandar.dao.IUserDAO#getUser(java.lang.Long)
*/
public User getUser(Integer id) {
// TODO 自动生成方法存根
return (User) getHibernateTemplate().get(User.class,id);
}
/* (非 Javadoc)
* @see com.jandar.dao.IUserDAO#saveUser(com.jandar.model.User)
*/
public void saveUser(User user) {
log.debug("xxxxxxx");
System.out.println("yyyy");
getHibernateTemplate().saveOrUpdate(user);
if(log.isDebugEnabled())
{
log.debug("userId set to "+user.getId());
}
}
/* (非 Javadoc)
* @see com.jandar.dao.IUserDAO#removeUser(java.lang.Long)
*/
public void removeUser(Integer id) {
Object user=getHibernateTemplate().load(User.class,id);
getHibernateTemplate().delete(user);
if(log.isDebugEnabled()){
log.debug("del user "+id);
}
}
}
在这个类中实现了IUserDAO接口的方法,并且继承了HibernateDAOSupport类。这个类的作用是通过hibernate访问、操作对象,进而实现对数据库的操作。
转http://www.uml.org.cn/j2ee/200504061.htm
Top
回复人:enjoy63() () 信誉:100 2007-2-2 20:53:20 得分:0
一般来说,如果多表存在关联关系,首先可以使用Hibernate映射文件,如一对多单向或双向关联,以Customer和Order为例,若是双向关联,则Customer类中有一个orders集合成员,而Order类中也有一个Customer类型的成员,对应的映射文件中,Customer.hbm.xml中以标签映射orders属性集合,而Order.hbm.xml中以标签映射customer成员,其实这些东西都是Hibernate的一些基本映射上的概念,多看看书你就知道了,书上写的很清楚,推荐你看看孙卫琴的精通Hibernate,写的还不错,多少对你应该有些帮助吧..
Top
回复人:cwq1143() () 信誉:100 2007-2-3 16:32:57 得分:0
网上有很多相关的视频
Top
回复人:maos2012(油菜花) () 信誉:100 2007-2-3 19:35:52 得分:0
看看这篇文章,也许对你有用.http://www1.sh.nu/Html/Spring/Springgaoshou/4720070202202815.html
Top
回复人:liumin1983824() () 信誉:100 2007-2-4 13:26:25 得分:0
控制器用struts的,逻辑层用spring来搞,后面的dao(持久层)用hibernate.
struts就个struts-config.xml配置文件下,spring就负责管理logic层的bean,和dao的bean,也就是个beans-config.xml文件搞,hibernate就写个mapping对象与表的映射文件,也就是xx.hbm.xml文件.这样就行了.....
不过这样搞起来也不算什么东东,也能把struts的action交给spring来管理,自己想怎么弄就怎么弄了.....要是把什么权限检查,日志等等,都搞进去就不错了,也就是spring的aop.....
Top
回复人:qdzhouyan521() () 信誉:100 2007-2-5 17:44:53 得分:0
谢谢各位前辈,但是我再一次重申一下我的问题:spring入门我已经会了,你们给我的例子都是spring入门的例子并且大部分我都看过,也都做过。它们用的都是一个表,无论是增删改查都是对一个表操作的。我的问题是多个表怎么办,所有的表的配置都是在一个applicationContext.xml文件中还是在多个applicationContext.xml文件中,hibernate我也学过,而且做过真实项目的开发,建议我看hibernate资料的人我不知道你们用过spring没有,使用hibernate开发用的是hibernate.cfg.xml这个文件,但在spring+hibernate中这个文件根本就没有用。我主要的问题是在一个项目中用到的是多个关联的表,如何在将它们结合到spring中,使用的是不是多个applicationContext.xml文件,对一个表操作的spring入门的例子我不想再提了,希望哪位前辈能够回答我的问题。我再一次的叩谢了!!希望有做过真正项目的前辈给我指点一下。
Top
回复人:coder188() () 信誉:100 2007-2-6 10:29:57 得分:0
多表用Hibernate的延迟加载啊
就是在加载主表的时候就把从表的信息也都加载进来,只要在配置文件中将lazy属性设为false就可以了,他默认是ture的
Top
回复人:mouseshuai(老鼠) () 信誉:100 2007-2-6 15:29:56 得分:0
接分。
帮顶
Top
回复人:whzresponse() () 信誉:100 2007-2-6 15:31:50 得分:0
jf
Top
回复人:jr_zhang(梅川内酷) () 信誉:100 2007-2-6 15:47:19 得分:0
mark
Top
回复人:lw9313() () 信誉:100 2007-2-6 15:55:06 得分:0
帮顶
Top
回复人:qdzhouyan521() () 信誉:100 2007-2-6 16:26:38 得分:0
哪位前辈帮帮我呀?
Top
回复人:qdzhouyan521() () 信誉:100 2007-2-9 11:14:39 得分:0
现在我只问一个问题,在真实项目中所有表的信息是配置在一个applicationContext.xml中还是配置在多个applicationContext.xml中,还是使用一个applicationContext.xml和多个其它的文件,小弟跪求使用spring+hibernate做过项目的前辈们。小弟求求各位前辈了!!!!!
Top
回复人:chashui(茶水) () 信誉:100 2007-2-9 11:22:12 得分:0
学习
Top
回复人:guiwenxing123(石中玉星) () 信誉:94 2007-2-10 12:01:24 得分:0
欢迎加入快乐高级java群QQ:14672911(懂EJB者,努力,和踊跃发言者优先)
Top
回复人:lky5387() () 信誉:100 2007-2-10 13:06:21 得分:0
使用一个applicationContext.xml和多个其它的文件
Top
回复人:wuzhiqing1984(adsfasffasfasdf) () 信誉:100 2007-2-10 14:42:21 得分:0
做个记号
Top
回复人:interpb(曾曾胡,深怕情多累美人!) () 信誉:100 2007-2-10 14:52:20 得分:0
进来有分
凑个热闹
这个不是一句话能说清
建议看看资料
Top
回复人:wweisky888() () 信誉:100 2007-2-10 20:32:24 得分:0
顶.............
Top
回复人:xuanner() () 信誉:100 2007-2-10 22:30:14 得分:0
好象要导入很多包哦,楼主还不如直接用myeclipse!!!
Top
回复人:qdzhouyan521() () 信誉:100 2007-2-12 10:52:05 得分:0
我用的就是myeclipse,
lky5387() 前辈:使用一个applicationContext.xml和多个其它的文件,其它的文件是什么文件,是bean.xml吗?这些文件应该如何使用,有例子吗?小弟在此叩谢了。能给我看看这些文件的配置也可以,万分感谢了!!!!叩谢了!!!
Top
回复人:dhxyu(gz_dhxyu) () 信誉:100 2007-2-12 11:37:27 得分:0
一个多个都可以,关键看你怎么分层!建议多看看spring文档,里面有与hibernate结合的实例,还有spring本身的dao也不错!spring MVC简洁灵活!VIEW可以多种选择!
Top
回复人:qdzhouyan521() () 信誉:100 2007-2-12 14:43:48 得分:0
如何可以看到spring的文档,从spring官方网站上吗?
Top
回复人:wangpancom(激情飞扬) () 信誉:100 2007-2-12 14:57:28 得分:0
hehe........
Top
回复人:qdzhouyan521() () 信誉:100 2007-2-12 15:09:29 得分:0
哪位前辈能给我个例子呀?小弟在此叩谢了!!!!
Top
回复人:ytzhsh(醉天涯) () 信誉:98 2007-2-12 15:45:20 得分:0
不要想着偷懒了 其实你已经有设计思想了 别把这个思想磨灭了
Top
回复人:ytzhsh(醉天涯) () 信誉:98 2007-2-12 15:46:25 得分:0
也不要想的那么多 什么事情都是一步一步来的
你试着一步一步的运行下去
从错误中学习 -------------------我感觉的 最快的学习办法
Top
回复人:fullish() () 信誉:100 2007-2-12 15:52:47 得分:0
good
Top
回复人:tonyyl(没有比事实更真实的了) () 信誉:100 2007-2-12 15:54:32 得分:0
你用myeclipse构建了spring项目,就等于构建了ssh的项目了。
Top
回复人:qdzhouyan521() () 信誉:100 2007-2-12 16:05:49 得分:0
我用myeclipse构建spring项目不是什么问题,问题是我的表太多都配置在applicationContext.xml中吗,我也可以配置多个applicationContext.xml但是每一个applicationContext.xml中都要写如下配置吗?如果是这样的话就不就是频繁的连接数据库了吗?


com.microsoft.jdbc.sqlserver.SQLServerDriver


jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=PRODUCT


sa


如果在其他的配置文件中想调用这个"dataSource"该怎么办?
Top
回复人:fattershall() () 信誉:100 2007-2-13 21:03:26 得分:0
其实你说的多个表的配置,其实放一个或多个applicationContext.xml中是没有分别的,主要是spring对hibernate 的配置,其实你说的问题应该是在hibernate中多个表如何影射到.hbm.xml的问题吧,applicationContext.xml是没有这样的配置的,不是吗?
Top
回复人:rickhunterchen(千山鸟飞绝) () 信誉:100 2007-2-13 21:19:24 得分:0
我主要的问题是在一个项目中用到的是多个关联的表,如何在将它们结合到spring中,使用的是不是多个applicationContext.xml文件
===============================================================================
使用多个applicationContext.xml文件主要考虑到一个系统有多个模块,并且是一个团队多人开发,所以用多个applicationContext.xml文件不互相影响。
不是因为你有多个表,就需要多个applicationContext.xml文件。
Top
回复人:wanzyqyy(簡單就最好的快樂) () 信誉:100 2007-2-14 7:56:13 得分:0
如果想那样做的话,你最好还是学习一下hibernate!
Top
回复人:tomzhu0526() () 信誉:100 2007-2-14 9:10:03 得分:0
初来乍到,帮顶!
Top
回复人:doudou8407() () 信誉:100 2007-2-14 14:39:39 得分:0
留下邮箱,我发给图文例子给你!或者你去
http://www.javathinker.com.cn里去找!
Top
回复人:quiii(Lemon) () 信誉:100 2007-2-14 14:50:48 得分:0
up
Top
回复人:qdzhouyan521() () 信誉:100 2007-2-25 11:00:05 得分:0
各位前辈小弟年前回老家过年,所以一直没有来此看看,今天第一天上班进来一看很多前辈给了我回答和建议我在这里非常感谢,感谢大家对我的帮助。
下面我有几个问题要请教各位前辈:
fattershall()前辈:
其实你说的多个表的配置,其实放一个或多个applicationContext.xml中是没有分别的,主要是spring对hibernate 的配置,其实你说的问题应该是在hibernate中多个表如何影射到.hbm.xml的问题吧,applicationContext.xml是没有这样的配置的,不是吗?
==============================================================================
如果将很多表的配置放在一个applicationContext.xml中,那么个个配置文件会相当的大必然会影响效率,如同我们在使用struts中会使用多个struts-config.xml文件是一个道理。
doudou8407()前辈:我的邮箱是qdzhouyan1980@163.com 麻烦你将图文例子发给我谢谢!非常感谢!在此叩谢了!!
Top
回复人:Java_Students() () 信誉:100 2007-2-25 16:58:41 得分:0
mark
Top
回复人:Mr_Wrong() () 信誉:100 2007-2-25 20:39:11 得分:0
mark too
Top
回复人:qdzhouyan521() 如何使用eclipse构建一个struts spring hibernate系统 跪求如何使用eclipse构建一个struts spring hibernate系统。(分... 使用struts+spring+hibernate 组装web应用 使用struts+spring+hibernate 组装web应用 使用struts spring hibernate 组装web应用 Hibernate/Spring/Struts架构使用OpenSessionInView的... Java Spring Hibernate Struts Struts+Spring+Hibernate 使用struts+spring+hibernate 组装web应用1 使用struts+spring+hibernate 组装web应用1 Struts+Spring+Hibernate快速入门 struts+spring+hibernate快速入门 【Struts+Spring+Hibernate快速入门】 Struts+Spring+Hibernate实现上传下载 Struts+Spring+Hibernate的技術實現 Struts+Spring+Hibernate快速入门 Struts+Spring+Hibernate实现上传下载 Struts+Spring+Hibernate实现上传下载 Struts Spring Hibernate练习(完整) Struts Spring Hibernate整合笔记 Struts Spring Hibernate快速入门 Struts+Spring+Hibernate实现上传下载 Struts Spring Hibernate整合笔记 Struts Spring Hibernate通用分页