`
happmaoo
  • 浏览: 4442983 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

很有意思的测试,看看你是否适合创业

阅读更多
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog01.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>

减少编写代码工作量的几种方法:

参考项目Struts2,Appfuse,Springside,Easyjf

1 使用模板生成代码
自定义模板变量和替换逻辑,velocity,freemaker,eclipse jet
基于annatation的xdoclet,java ee5
基于UML,XMI的MDA

2 使用反射机制

a) 完成对象-对象,对象到集合的复制
直接用commons-beanutils

b) 完成Recordset到domain object的转换
下面是一种方法:

/////////////////////////////////////////////////////////////////////////////
//Function: 完成ResultSet对象向ArrayList对象为集合的对象的转化
//Para:sql,指定的查询Sql
//Para:className,Sql相对应得JavaBean/FormBean类的名字
//Return:以类className为一条记录的结果集,完成ResultSet对象向ArrayList对象为集//合的className对象的转化
//////////////////////////////////////////////////////////////////////////////
public ArrayList Select(String sql,String className){
ArrayList paraList=new ArrayList();
try{
if (conn == null){
Connection();
}
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
String recordValue="";
Object c1=null;
paraList=new ArrayList();
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
while (rs.next()){
c1=Class.forName(className).newInstance();
for (int i=1; i if(rs.getString(rsmd.getColumnName(i))!=null){
recordValue=rs.getString(rsmd.getColumnName(i));
}else{
recordValue="";
}
Method m=c1.getClass().getMethod(getSetMethodName(rsmd.getColumnName(i)),new Class[]{recordValue.getClass()});
m.invoke (c1, new Object[]{recordValue});
}
paraList.add(c1);
}
}catch(SQLException ex){

}catch(ClassNotFoundException e){
}catch(NoSuchMethodException e) {
}catch(InvocationTargetException e){
}catch (IllegalAccessException e){
}catch(InstantiationException e){
} finaly{
closeConnection();
return paraList;
}
}

在JavaBean封装的商业逻辑中调用Select 方法,然后在JSP页面上显示出来:

//Function:取得用户列表
//Para:
//Return:返回用户列表
/////////////////////////////////////////////////////////////////////////////
public ArrayList getUsers(){
ArrayList ret=null;
DatabaseManage db=new DatabaseManage();
String sql=" select usr_id,usr_name "
+" from users " ;
ret=db.Select(sql," com.bhsky. webis.system.UsersActionForm");
return ret;
}

还有一种方法:比如在EasyJf-DBO里面将Recordset放到HashMap里面,然后使用beanutils复制到对象里面,相当于比上面的方法多了一个环节。

c) 在基类(抽象类)里面使用,主要用在对对象的保存,更新,删除上
在DAO中实现CRUD的操作
public void insert(Object o) {
getSqlMapClientTemplate().insert(o.getClass().getName() + POSTFIX_INSERT, o);
}
在Struts Action中实现domain object到formbean的转换,还可以实现其它的全局操作,例如日志

3 使用范型的方法,主要用在查询方法中
在基类(抽象类)中使用,主要用在查询的方法上
public <t> List<t> getAll(Class<t> entityClass) {<br>return getSqlMapClientTemplate().queryForList(entityClass.getName() + POSTFIX_SELECT, null);<br>}</t></t></t>

对比一下反射的用法:
public List getObjects(Class clazz) {
return getSqlMapClientTemplate().queryForList(getSelectQuery(ClassUtils.getShortName(clazz)), null);
}



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1504215


分享到:
评论

相关推荐

    c# winform 原来机箱中的主板能唱歌 发出很多美妙的声音 源码 很有意思 和大家一起看看

    c# winform 原来机箱中的主板能唱歌 发出很多美妙的声音 源码 很有意思 和大家一起看看 _(\_/) ,((((^`\ (((( (6 \ ,((((( , \ ,,,_ ,((((( /"._ ,`, ((((\\ ,... ,(((( / `-.-' ))) ;' `"'"'""(((( ( ...

    c语言原创趣味试题,很有意思的 大家看看吧

    题目涵盖了从简单计算到逻辑判断的各种问题,适合初学者和有一定基础的程序员进行练习。 1. **主函数的正确格式**: 在C语言中,`main()`函数是程序的入口点,必须有返回值类型`int`。正确的写法是`int main()`,...

    MSN签名 MSN签名,很有意思

    MSN签名,很有意思 MSN签名,很有意思

    很有意思的图片分裂复制效果.rar

    很有意思的图片分裂复制效果.rar很有意思的图片分裂复制效果.rar很有意思的图片分裂复制效果.rar很有意思的图片分裂复制效果.rar很有意思的图片分裂复制效果.rar很有意思的图片分裂复制效果.rar

    批处理程序代码.rar很好玩,很有意思的

    10. **FOR** 和 **IF**:用于循环和条件判断,如 `for %i in (*) do echo %i` 会列出当前目录下所有文件的名称,`if exist filename command` 判断文件是否存在并执行command。 在批处理程序中,可以结合这些命令...

    盘整恶搞病毒,无害但很有意思

    盘整恶搞病毒,无害但很有意思

    很有意思js动画

    "很有意思js动画"的标题暗示了我们将探讨使用JavaScript来创建动态视觉效果,尤其是与电影《骇客帝国》相关的动画。 在JavaScript中,动画通常是通过改变HTML元素的位置、大小、颜色等属性来实现的。关键帧动画是...

    很形象的IT工作流程图,很有意思

    很形象的IT工作流程图,很有意思...............

    网页代码很多很有意思真的很……

    标题“网页代码很多很有意思真的很……”虽然未完待续,但足以激发我们对网页编程的好奇心。描述中提到,“使用html编写的网页,很值得去参考,大家一定考看啊!”这无疑强调了学习HTML的价值和乐趣。 HTML允许我们...

    电子书有意思没意思的下下看看

    然而,有人可能更喜欢纸质书的触感和气味,认为翻页的实体动作是阅读体验的一部分,所以是否“有意思”因人而异。 电子书的获取途径广泛,包括在线书店购买、图书馆借阅、免费资源下载等。很多出版商和作者也会提供...

    小学语文经典美文你的工作很有意思

    这篇小学语文经典美文以“你的工作很有意思”为主题,探讨了个人对工作的态度和兴趣对人生轨迹的影响。文章通过霍华和山姆两位人物的故事,揭示了如何将无趣的工作变得有意义,以及如何通过积极的态度和创新精神改变...

    收藏的很有意思的bat命令

    以下是一些很有意思的BAT命令及其详细解释: 1. **创建快捷方式**: - 使用`@echo off`关闭命令提示符中的命令输出。 - `cd /d %~dp0`改变当前目录到批处理文件所在的目录。 - `start "" "路径\文件名.lnk"`创建...

    很有意思的vb编的小游戏 希望对大家学习vb有帮助

    在这个"很有意思的vb编的小游戏"压缩包中,包含了使用VB编写的一系列小游戏,旨在帮助学习者通过实践来理解和掌握VB编程。 这些小游戏虽然简单,但它们涵盖了VB编程的基础概念和核心语法,例如事件驱动编程、控件...

    QQ价值评估-很有意思

    很好玩的一个东西,看看你的qq价值吧。很好玩的一个东西,看看你的qq价值吧。

    C# winform 一个很有意思的程序 FunWithGravity

    《C# WinForm应用:FunWithGravity的探索与解析》 C# WinForm是一个强大的桌面应用程序开发框架,它为开发者提供了丰富的控件...学习并理解这个程序,对于提升C#编程技能和对物理现象的计算机模拟能力具有很大的帮助。

    java 写的游戏 很有意思

    在这个"java 写的游戏 很有意思"的项目中,我们可以看到一个游戏爱好者利用Java编程语言创作出的一款有趣的游戏。对于想要学习游戏开发或者提升Java技能的人来说,这是一个很好的参考资源。 Java作为一种面向对象的...

    mrp给力猫(很有意思的游戏)

    很有意思的一款mrp软件,可在他的界面直接进入mrp管理界面

    圣诞礼物哦,很有意思

    标题中的“圣诞礼物哦,很有意思”提示我们这可能是一个与圣诞节相关的数字礼物,而描述进一步揭示了这个礼物并非传统的电子贺卡(如Flash),而是一个小型程序。这个程序可能是设计用来在平安夜前分享,带给接收者...

    c# piano 钢琴 生成midi 播放midi 很有意思的 源码 和大家一起学习

    c# piano 钢琴 生成midi 播放midi 很有意思的 源码 和大家一起学习

Global site tag (gtag.js) - Google Analytics