咱们闲话少叙,直奔主题。
优雅(优雅的工作方式)的原则(规范):
下列我摘抄代码讲解,并提供完整程序源代码下载。如果大家有一肚子想骂我的话我真心的请你放在楼下、如果有更好的想法我同样真心的请你放在楼下、如果想交流我也同样真心的请你放在楼下。
和以往一样,请求的数据来到了Action(MVC使用struts2)。经过Facade时被转换为Entity。Entity是本篇的明星,它拒绝了数据库、拒绝了配置、实现了响应数据返回的第一站,并从此使得响应数据格式统一天下。
public void findUser()throws BizException{
String sql="select * from tb_user where id=?";
PersistentDescriptor pd=new PersistentDescriptor();
pd.setSql(sql);
pd.setObject(id);
try {
this.list(pd);
} catch (PersistentException e) {
// TODO Auto-generated catch block
throw new BizException(e.getMessage());
}
}
findUser就是Entity中的一个方法,通过它可以看出Entity的精神。首先,你看到的是一个String尽管它是一句SQL,然后是PersistentDescriptor,也许你已经猜到它的作用了,没错它就是方便你实现“?”传参。
this.list(pd)这是当前类的父类接口:
public class User extends BaseEntity
关键的核心就在this.list(pd)该方法中,它隐蔽了数据库的操作,拒绝了重量级的配置文件。它的意义就在于执行上面定义的那个String。
和以往不同的是查找到得数据不需要你(程序员)来建立或构造,它自身已经包含了“容器”而且规格及访问方式是统一的,所以它实际上为你做了很多事。至于它后面会展开讲述。
也许太简单,简单到你还没有回过神儿我就要讲视图了。同样,它会返回到Facade。在这里就是实现一次容器数据的转换
为什么转换不言而喻,我就说究竟怎么进行转换:
public IBean find(IBean b)throws FacadeException{
User user=new User();
this.Bean2Entity(b, user);//
转换为Entity
try {
user.findUser();
//执行操作
return this.Entity2Bean(user);
//转换为一个统一的容器对象
} catch (BizException e) {
// TODO Auto-generated catch block
throw new FacadeException(e.getMessage());
}
}
其实除了我标注为红色的代码外其他的都没有必要关心。没错Entity2Bean是父类的方法。
public class UserFacade extends BaseFacade
而Entity2Bean返回的是一个一统天下的对象——BaseValueObject,其访问方式为:
<%
BaseValueObject t=(BaseValueObject)request.getAttribute("list");
if(t!=null){
while(t.hasNext()){
%>
<tr>
<td><input type="checkbox" name="records" value="<%=t.getStringField("id") %>"></td>
<td><%=t.getStringField("name") %></td>
<td><%=t.getStringField("sex") %></td>
<td><%=t.getStringField("phone") %></td>
<td><%=t.getStringField("address") %></td>
<td>照片</td>
<td><input type="button" value="修改" onclick="window.location='/modify.action?type=f&id=<%=t.getStringField("id") %>'"><input type="button" value="删除" onclick="window.location='remove.action?type=s&id=<%=t.getStringField("id") %>';"></td>
</tr>
<%
}
}
%>
可根据项目本身的特性来定制标签。
操作和理解都非常容易。
测试环境:jboss4.0.3、oracle9i、jdk5
注意:可以手动在jboss的bin目录下建立dp_config.properties文件,并加入DATASOURC键,值就是在jboss中配置的数据源名称。例如:java:ds。这个文件拥有自省功能,可以实现动态加载配置项。是一个很好的组件。
另附数据库脚本:
create table TB_USER
(
ID VARCHAR2(32) default sys_guid() not null,
NAME VARCHAR2(20),
SEX VARCHAR2(10),
PHONE VARCHAR2(20),
ADDRESS VARCHAR2(100),
IMAGE BLOB
)
分享到:
相关推荐
【无缝滚动插件版,欢迎拍砖!】 无缝滚动,又称无限滚动或自动滚动,是一种网页设计中的技术,使得网页内容能够连续不断地滚动显示,无需用户手动翻页。这种效果常用于新闻网站、社交媒体和电商网站,为用户提供...
精通Eclipse整合Web开发——Struts,Spring,Hibernate,JBPM 图书馆下载的,不是很清晰,如果介意的,请不要下载,不要拍砖。 总共有三部分。
标题中的“新手学j2me,大牛来看看写得如何,欢迎拍砖啊”表明了这是一个关于学习Java ME(J2ME)技术的讨论,作者可能是初学者,希望得到资深开发者的意见和反馈。J2ME是Java的一个版本,主要用于开发移动设备、...
标题中的“JMail 示例(无附件发送) 欢迎大家拍砖”表明这是一个关于使用JMail库在Java中发送邮件的示例代码,没有涉及附件功能。博主可能分享了一个简单的程序,期望社区成员提供反馈和改进意见。 JMail是一个...
- **电话网络**同样是面向连接的,但在这个场景中,一旦连接建立,所有的语音数据确实会沿着同一路径传输,因为电话网络通常使用固定的电路交换方式。 ### 2. 网络通信协议的基础概念 #### 知识点2:滑动窗口机制...
精通Eclipse整合Web开发——Struts,Spring,Hibernate,JBPM 图书馆下载的,不是很清晰,如果介意的,请不要下载,不要拍砖。 总共有三部分。
精通Eclipse整合Web开发——Struts,Spring,Hibernate,JBPM 图书馆下载的,很不容易。 不是很清晰,如果介意的,请不要下载,不要拍砖。 总共有三部分。
MySQL数据备份小工具是一款实用的程序,用于帮助用户定期或按需备份MySQL数据库,确保数据安全,防止意外丢失。在IT行业中,数据备份是...如果你是一名开发者或系统管理员,了解并掌握这样的工具将对你的工作大有裨益。
NULL 博文链接:https://jayyh.iteye.com/blog/703930
在Java编程环境中,实现对Linux(Debian)系统的有线和无线网络配置是一项技术性较强的任务。本笔记将探讨如何利用Java来管理网络接口,并提供一个基础的了解,以帮助开发者构建相关工具或应用程序。首先,我们需要...
”按钮,如果一切正常,那么可以看到游戏效果--经典的拍砖游戏!所有代码注释非常详细,一行注释一行代码,是学习Windows编程的启步示例。 阅读对象:希望进行Windows游戏开发的人员,具备Java游戏开发基础和经验;...
ASP(Active Server Pages)是微软推出的一种服务器端脚本环境,用于创建动态交互式网页。它允许开发者使用HTML、VBScript或JScript等语言编写代码,然后在服务器上执行,生成响应的HTML页面返回给客户端。在这个...
C#编写的计算器(高手拍砖)C#编写的计算器(高手拍砖)C#编写的计算器(高手拍砖)C#编写的计算器(高手拍砖)
诞生已一年有余,今天来博客园献丑了,送上第一份见面礼(源码),请大家奔走相告,欢迎拍砖,欢迎水军 小泥鳅的成长离不开博客园,小泥鳅是属于大家的,非常感谢能有博客园这样的平台,交流才有进步 相信小泥鳅会在...
PDF分割合并工具(用过最好的PDF分割器,不好用拍砖!)PDF分割合并工具(用过最好的PDF分割器,不好用拍砖!)PDF分割合并工具(用过最好的PDF分割器,不好用拍砖!) 郑重声明:此软件不能合并PDF,合并工具请下载...
比较适合初学者,望老鸟大虾表拍砖才好 哦少说了一句我用的是 JQueryUI里面的button感觉还不错 下图是第一页的样子 这是最后一页的样子 废话不说了上代码上面有参数说明看不懂的欢迎留言 代码如下: //——————...
在IT行业中,遇到bug是常有的事情,"解决bug不要拍砖啊"这句话其实是在提醒开发者们,在面对问题时要保持冷静,理性分析,而非情绪化地对待。下面,我们将详细探讨bug的定义、常见类型、排查方法以及解决策略。 **1...
一份系统、全面的安卓进阶学习指南(更新中)很棒的 Android 学习指南努力打造一个系统、全面的Android开发者进阶...这是我们的初衷,也是努力的方向,如有不符,欢迎拍砖!内容[计算机组成原理][网络协议][Linux 操作
New Document body{font:12px Arial;} a:link,a:visited,a:active{color:#000;text-decoration:none;... 一个通用的日历程序,IE6、Mozilal系列测试通过.欢迎使用 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]