`
fangang
  • 浏览: 876477 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
311c4c32-b171-3767-b974-d26acf661fb2
谈谈用例模型的那些事儿
浏览量:38623
767c50c5-189c-3525-a93f-5884d146ee78
一次迭代式开发的研究
浏览量:68798
03a3e133-6080-3bc8-a960-9d915ed9eabc
我们应当怎样做需求分析
浏览量:409824
753f3c56-c831-3add-ba41-b3b70d6d913f
重构,是这样干的
浏览量:91339
社区版块
存档分类
最新评论

一个dwr+spring+hibernate的示例

    博客分类:
  • dwr
阅读更多

这是一个运用dwr+spring+hibernate这样一个框架编写的示例。它展示了一下内容:

1、在dwr中尝试编写的一些通用的代码,包括如何编写一个通用的列表显示框并实现分页、如何编写一个通用的单行编辑框、如何编辑一个通用的存盘和删除程序等等。

2、在dwr中如何与spring兼容,调用bus中的方法;在dwr中如何与hibernate兼容,在页面端操作值对象,以及处理值对象间的各种关系。

3、如何在spring中实现单dao,使这个单dao既可以与hibernate隔离,使其低耦合高内聚,提高可维护性,又能满足各个bus的业务需要,简化开发的过程。

不是美工,界面比较外行,见谅了:)

示例在MyEclipse中安装部署的步骤:

1、创建一个新的web项目并拷贝示例中的文件到项目中。注意web.xml文件应当是将原文件覆盖。

2、添加spring和hibernate。点击项目树中的项目名按Alt+Enter键,弹出项目属性对话框。选择“Java Build Path”中的“Libraries”标签,然后点击“Add Library”按钮,选择“MyEclipse Libraries”,点击“Next”,选择“Hibernate 3.0 Core Libraries”、“Spring 1.2 AOP Libraries”、“Spring 1.2 Core Libraries”、“Spring 1.2 ORM/DAO/Hibernate Libraries”、“Spring 1.2 Web Libraries”,点击“Finish”按钮。

3、点击“Add External JARs”按钮,添加dwr.jar、daosupport.jar、hxtg.jar、hibernate3(必须将hibernate3升级到3.2以上)以及其它数据库相关的jar包到项目中。添加完成以后记得重新部署应用服务器。

4、创建数据库实例,如果是oracle,在pl/sql中运行示例中的employee.sql创建数据库对象。

5、修改ApplicationContext-hibernate.xml中datasource的连接属性为你的数据库。部署完成!

部署完成后运行可能会在部分功能中出错。这些问题的解决我会在《DWR帮助说明-dwr的bug及其解决方法》中详细讨论。

重要提示:部署完成以后需要打开Department.hbm.xml和Employee.hbm.xml,修改schema="TEST"为你自己的用户名。

相关文档:

如何在struts+spring+hibernate的框架下构建低耦合高内聚的软件

DWR帮助文档-dwr.xml文件的配置

DWR帮助说明-如何编写通用的列表显示框

DWR帮助说明-如何编写通用的单行编辑框

DWR帮助说明-服务器端程序的编写

DWR帮助说明-dwr的bug及其解决方法

  • employee.rar (2.6 MB)
  • 描述: 重新修订了一下
  • 下载次数: 8896
分享到:
评论
34 楼 jaketyao 2008-01-31  
不错。项目刚好用到这个!
33 楼 saintchaos 2008-01-30  
我的测试运行环境是eclipse3.2,用内建的tomcat作为服务器,测试下来,当我按第一次时,并不会显示一条记录,按多次后也是有几次不出现然后集中在一起出现好几条记录,然后还会出现concurrentmodificationexception异常,请问问题在哪?

package org.chaos.dwr;

import java.util.ArrayList;

import java.util.List;



public class UserManager {

private List<User> users = new ArrayList<User>();



public void add(final User user){

synchronized(this){

users.add(user);

}

}



public List<User> getAll(){

synchronized(this){

return users;

}

}

}



public class User {


private String id;

private String name;

private String title;




public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}




public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}
}



<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">

<dwr>
<allow>
<create javascript="jsmanager" creator="new" scope="application">

<param name="class" value="org.chaos.dwr.UserManager"></param>

</create>

<convert match="org.chaos.dwr.User" converter="bean"></convert>

</allow>
</dwr>



<?xml version="1.0" encoding="UTF-8"?>

<html>

<head>

<style>

.usersTable {

background: #FFFFFF;

border-collapse: collapse;

}



.usersTable th {

background: #DDDDDD;

border: 1px solid #FFFFFF;

}



.usersTable td {

border: 1px solid #FFFFFF;

}



.usersTable tr {

background: #FFBBBB;

border: 1px solid #FFFFFF;

}



</style>

<script type='text/javascript' src='/DWR2.0/dwr/interface/jsmanager.js'></script>

<script type='text/javascript' src='/DWR2.0/dwr/engine.js'></script>

<script type='text/javascript' src='/DWR2.0/dwr/util.js'></script>

<script type='text/javascript'>

window.onload = function() {

jsmanager.getAll(fillTable);

}



function addUser() {

var user = { id:"", name:"", title:"" };

DWRUtil.getValues(user);

jsmanager.add(user);

jsmanager.getAll(fillTable);

}



var cellFuncs = [

function(data) { return data.id; },

function(data) { return data.name; },

function(data) { return data.title; }

];



function fillTable(users) {

DWRUtil.removeAllRows("usersBody");

DWRUtil.addRows("usersBody", users, cellFuncs);

}

</script>



</head>



<body>

<h3>Edit User</h3>

<table class="usersTable">

<thead>

<tr>

<th>id</th>

<th>Name</th>

<th>Title</th>

</tr>

</thead>

<tbody id="usersBody" />

</table>



<br />



<table>

<tbody>

<tr>

<td>Id:</td>

<td><input id="id" type="text" size="30" /></td>

</tr>

<tr>

<td>Name:</td>

<td><input id="name" type="text" size="30" /></td>

</tr>

<tr>

<td>Title:</td>

<td><input id="title" type="text" size="30" /></td>

</tr>

<tr>

<td><input type="button" value="add" onclick="addUser()" /></td>

</tr>

</tbody>

</table>



</body>

</html>
32 楼 GG_wg 2008-01-30  
最好能在配置文件里加上注释
31 楼 fangang 2007-12-21  
javachs 写道
部署了,可是单行无法编辑呀?
单击每行后面的编辑按钮,进入编辑窗口进行编辑
30 楼 javachs 2007-12-18  
部署了,可是单行无法编辑呀?
29 楼 fangang 2007-12-11  
yaojunneww 写道
不过能不能把生成的class文件的步骤说下,怎么才能先生成后调用
你看看这篇文章就明白了: DWR帮助文档-dwr.xml文件的配置
28 楼 yaojunneww 2007-12-10  
不过能不能把生成的class文件的步骤说下,怎么才能先生成后调用
27 楼 yaojunneww 2007-12-10  
刚才发现,这框架也太厉害了,自动生成service。
26 楼 simon1118 2007-12-10  
谢谢,正好也在用这三个框架做项目
25 楼 yaojunneww 2007-12-10  
还是不太明白,我现在正在学它,但是我看不到service包的代码,但你说它自动生成,能不能说具体点,
24 楼 fangang 2007-12-10  
frostytop 写道
兄弟,少了部分代码啊,service层的代码都没有啊,能不能给一个全的代码,谢谢

采用dwr配合spring这种框架,dwr可以直接调用spring中的bean,因此它与以前框架的一个巨大的不同就是不需要service层,也就是说dwr帮我们把service层完成了,我们完全不用写任何代码。
23 楼 frostytop 2007-12-08  
兄弟,少了部分代码啊,service层的代码都没有啊,能不能给一个全的代码,谢谢
22 楼 hundred007 2007-11-18  
有没有在线的演示?
21 楼 fangang 2007-10-18  
liuy1121 写道
fangang,你好,首先非常感谢你能为我们新手提供这么好的例子,但在学习过程中我遇到了一些问题想请教,请问可否加你MSN?

当然可以,但最近几天我不在公司,所以总是不在线。
MSN:fan_gang2004@hotmail.com
20 楼 liuy1121 2007-10-18  
fangang,你好,首先非常感谢你能为我们新手提供这么好的例子,但在学习过程中我遇到了一些问题想请教,请问可否加你MSN?
19 楼 bbyyzhang 2007-10-18  
被这个问题困扰好一段时间了,终于看到希望了,支持楼主继续下去
18 楼 zhdsh1979 2007-09-20  
谢谢,学习中!
17 楼 kaki 2007-09-11  
字符集问题我通过修改抽象类里面的get函数解决了。

新的问题是翻页以后后台有纪录,但是trbody没有反应。

 
16 楼 fangang 2007-09-08  
pengmi 写道
好多东西不全,DAO都没齐,请楼主发个全的工程,谢谢!

这个示例中只有一个dao(BasicDao)和它的接口(GenericDao),其配置都写在Applicationcontext-dao.xml中
15 楼 fangang 2007-09-08  
kaki 写道


3、如何在spring中实现单dao,使这个单dao既可以与hibernate隔离,使其低耦合高内聚,提高可维护性,又能满足各个bus的业务需要,简化开发的过程。

上面一点中的daosupport是不是需要用jdk5.0?在另外一台jdk1.42的机器上过不了。

http://www.j2medev.com/Article/Class10/j2eedb/200606/2597.html


单dao目前看肯定是大势所趋,而这是一篇不错的文章,其中列举了数个名家对单dao的论述,很有帮助。但在我的这个示例中,daosupport编写的时候jdk5.0还没有出来,是在jdk1.4中编写的。你说过不了不知道是什么原因。我回头会重新整理一下我的附件,重新上传。

相关推荐

    Spring 2.0 + Struts 1.2 + Hibernate 3.2 + DWR 2.0 的JavaEE应用示例

    该示例使用MyEclipse 5.5 IDE用来整合四个技术(Struts 1.2, Spring 2.0, Hibernate 3.2和Ajax技术)的轻量级的JavaEE。 操作步骤如下: 1. 下载并解压之后,使用MyEclipse导入工程 2. 找到demo目录中的.sql数据库...

    DWR+EXT+SPRING+HIBERNATE较为完整的一个例子

    《DWR+EXT+SPRING+HIBERNATE:一个综合示例解析》 DWR (Direct Web Remoting)、EXT、Spring 和 Hibernate 是 Java Web 开发中的四大核心技术,它们各自在不同的领域发挥着关键作用。DWR 提供了一种在浏览器与服务器...

    dwr+spring+hibernate的示例

    1、在dwr中尝试编写的一些通用的代码,包括如何编写一个通用的列表显示框并实现分页、如何编写一个通用的单行编辑框、如何编辑一个通用的存盘和删除程序等等。 &lt;br&gt;2、在dwr中如何与spring兼容,调用bus中的方法...

    ext+json+dwr+spring+hibernate整合项目实例与相关资源

    本项目实例是关于"ext+json+dwr+spring+hibernate"的整合,这是一个常见的技术栈组合,用于创建功能丰富的Web应用程序。下面将详细解释这些技术及其整合方式。 1. **EXT**:EXT是一个基于JavaScript的富客户端框架...

    Ajax(DWR) + Spring + Hibernate + Struts整合登陆注册

    总之,这个示例是一个很好的学习资源,帮助开发者了解如何在Java Web环境中将Ajax、Spring、Hibernate和Struts结合使用,实现复杂的业务流程。通过这个案例,你可以深入理解这些框架的核心功能,以及它们在实际开发...

    hibernate+dwr+spring+jstl的demo

    【标题】"hibernate+dwr+spring+jstl的demo"揭示了这是一个结合了四个关键技术的示例项目,主要用于展示如何在Web开发中整合这些技术。这些技术分别是Hibernate(对象关系映射框架)、Direct Web Remoting (DWR)(一...

    ext2.0+Hibernate+dwr+spring列子

    综上所述,"ext2.0+Hibernate+dwr+spring列子"是一个综合性的Web开发示例,它演示了如何利用EXT2.0创建用户友好的界面,借助Hibernate处理数据库操作,通过DWR实现前后端交互,以及使用Spring框架来组织和管理整个...

    DWR+hibernate+spring未完成例子

    【标题】:“DWR+Hibernate+Spring未完成例子”揭示了这个压缩包中包含的是一个未完成的示例项目,该示例项目整合了Direct Web Remoting (DWR)、Hibernate ORM框架和Spring框架。这三者都是Java Web开发中的重要组件...

    Ext+dwr+spring做的例子程序

    【标题】"Ext+dwr+spring做的例子程序"是一个整合了三个关键技术的示例应用,主要展示了如何在Java Web开发中结合使用EXTJS(Ext)前端框架、Direct Web Remoting (DWR) 和Spring框架。这三个技术在现代企业级应用...

    struts2+spring+hibernate+dwr

    Struts2、Spring、Hibernate和DWR是Java Web开发中常用的四大框架,它们各自负责不同的功能,协同工作能构建出高效、灵活的企业级应用。在这个小实例中,开发者结合这四个框架来展示了一个完整的后端架构。 Struts2...

    Struts+Spring+Hibernate+Ajax的Demo

    在这个"Struts+Spring+Hibernate+Ajax的Demo"中,开发者使用了这些技术来创建一个功能丰富的示例应用。下面将详细阐述这四种技术以及DWR和Dojo在其中的作用。 **Struts** 是一个开源的MVC(Model-View-Controller)...

    新版SSH+DWR配置(Struts2.1.8+Spring3.0+Hibernate3.3.2+DWR2.0.6).doc

    这个配置示例是基于目前最新的技术栈,旨在提供一个高效、稳定的开发环境。 首先,我们需要了解SSH框架。SSH是Struts2、Spring和Hibernate的缩写,分别代表了MVC模式中的Action层、Service层和持久化层。Struts2是...

    Ajax(DWR) + Spring + Hibernate + Struts整合登录注册

    在Web开发领域,Java技术栈中的Ajax(DWR)、Spring、Hibernate和Struts是四个非常重要的组件,它们各自承担着不同的职责,共同构建了一个高效、灵活的Web应用程序。本项目结合了这四者,实现了一个登录注册系统,为...

    ext2+spring+hibernate+dwr.rar_dwr MenuManage.js_ext2 ja

    标题 "ext2+spring+hibernate+dwr.rar_dwr MenuManage.js_ext2 ja" 提示我们这是一个关于集成技术的项目,其中包含了ext2、Spring、Hibernate和DWR(Direct Web Remoting)四个主要组件。这个项目的具体实现是通过...

    spring+struts+hibernate+dwr+jstl_example.rar_JSTL example_dwr_dw

    标题中的"spring+struts+hibernate+dwr+jstl_example.rar"表明这是一个使用了Spring、Struts、Hibernate、Direct Web Remoting (DWR) 和JSP Standard Tag Library (JSTL)技术的示例项目。这个组合是Java Web开发中...

    struts1.2+hibernate3.2+spring2.5+dwr

    Struts1.2、Hibernate3.2、Spring2.5 和 DWR2.0 是一组经典的Java企业级开发框架组合,它们在Web应用程序开发中扮演着重要的角色。这些框架的集成为开发人员提供了强大的功能,使得后端数据管理、业务逻辑处理以及...

    sturts2+spring+hibernate+dwr2

    结合上述四个框架,"sturts2+spring+hibernate+dwr2例子"很可能是展示如何在实际项目中整合这些技术的一个示例应用。"springch01"这个文件名可能代表了关于Spring的初步章节或者配置文件,包含了Spring容器的配置,...

    Struts2+spring依赖注入+Hibernate+Dwr

    这个“Struts2+spring依赖注入+Hibernate+Dwr”的例子,是一个综合性的Web应用程序示例,旨在展示这四个技术如何协同工作。 Struts2作为MVC(模型-视图-控制器)框架,主要负责处理HTTP请求,调度控制流程,并将...

    高效率的dw+spring+hibernate分页演示例子

    这个"高效率的dw+spring+hibernate分页演示例子"提供了一个实用的示例,展示了如何将这三个框架整合起来,以实现高效的数据分页功能。 首先,让我们来逐一了解这三个技术: 1. **DWR (Direct Web Remoting)**:DWR...

    Struts2.1.6+Struts2.0+Hibernate3.1整合示例

    开发环境:Windows XP sp3、SQL Server 2005、JDK 1.6、Struts2.1.6、Spring 2.0、Hibernate...至于声明式事务部分,你可以参见另外一个资源“Spring 2.0 + Struts 1.2 + Hibernate 3.2 + DWR 2.0 的JavaEE应用示例”

Global site tag (gtag.js) - Google Analytics