减少编写代码工作量的几种方法:
参考项目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<=columnCount; 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) {
return getSqlMapClientTemplate().queryForList(entityClass.getName() + POSTFIX_SELECT, null);
}
对比一下反射的用法:
public List getObjects(Class clazz) {
return getSqlMapClientTemplate().queryForList(getSelectQuery(ClassUtils.getShortName(clazz)), null);
}
分享到:
相关推荐
J2EE代码生成器是一种强大的开发工具,它能够自动生成符合J2EE规范的源代码,极大地提高了开发效率,减少了手动编写重复代码的工作量。通过理解和掌握这种工具的源代码,开发者可以更好地定制化自己的代码生成规则,...
为了解决这些问题,提高开发效率并减少代码间的耦合度,本篇文章提出了一种新的开发策略:基于Struts框架和Hibernate框架的J2EE应用开发方法。 #### 二、数据持久层及Hibernate框架 **Hibernate**是一个开源的数据...
应用软件自动化测试是现代开发流程中的重要组成部分,通过编写脚本和使用自动化工具,可以减少手动测试的工作量,提高效率,同时降低因人为错误导致的问题。 总结来说,"J2EE企业应用测试源代码"这个主题深入探讨了...
软件测试技术在J2EE项目中的应用至关重要,因为J2EE平台是企业级应用开发的基石,尤其在大型电子商务等领域,软件质量的高低直接影响到企业的运营和用户体验。J2EE基于Java2平台,提供了一种简化企业解决方案开发、...
通过学习《J2EE整合开发大全》,开发者不仅可以掌握Java企业级开发的基本技能,还能了解如何在实际项目中灵活运用这些技术,提高开发效率和代码质量。虽然现代Java开发趋势已经转向Spring Boot和微服务架构,但SSH的...
### Eclipse开发平台在J2EE中的应用 #### Eclipse平台概述 Eclipse是一个备受推崇的集成开发环境(IDE),被广泛应用于软件开发领域。它不仅是一个成熟的、精心设计且可扩展的开发平台,还是一个开放源代码项目。...
这减少了手动编写常见或重复代码的工作量,使开发者能更高效地进行开发。代码生成器通常包括数据库模式到对象映射(ORM)、API客户端生成、业务逻辑层代码生成等功能。 2. **J2EE架构**:J2EE提供了多种服务和组件...
本资源包含了几个J2EE开发中常用的库,分别是Struts2、Servlet、Ibatis和Json相关的jar包。这些组件对于开发高效、灵活的Web应用至关重要。 1. **Struts2**:Struts2是一个基于MVC设计模式的开源Java Web框架,它...
7. **部署与容器**:完成开发后,系统需要在应用服务器(如Tomcat、Glassfish)中部署,这些服务器为J2EE应用提供运行环境,并处理如线程管理、生命周期管理等工作。 通过这个“图书管理系统JAVA计算版”项目,初学...
通过"使用J2EE编写企业应用教程",读者可以期待学习到如何设计和实现一个完整的J2EE应用,从架构设计到具体的技术实施,包括案例分析和实践指导。"E书说明.txt"可能是关于如何阅读和使用这个教程的指南,而"阅读器...
J2EE的核心理念是组件化,通过预定义的接口和协议,使得不同的组件可以协同工作,减少代码重复,提高开发效率。 **J2EE架构** J2EE架构主要由以下几层组成: 1. **客户端层(Client Layer)**:这是用户与应用...
- **促进代码重用**:模型层的JavaBean可以在不同的项目中重用,减少了重复编码的工作量。 #### 实例分析 文章中提到使用一个具体的开发实例来说明如何利用JSP + Servlet + JavaBean的编程模式实现MVC架构。虽然...
- **减少代码量**:这些框架提供了大量的模板和预定义的方法,开发者无需从头开始编写代码。 - **提高开发效率**:由于框架的自动化功能,开发人员可以更专注于业务逻辑而非基础设施的实现细节。 - **降低维护成本**...
2. **组件化**:J2EE组件模型允许开发者复用代码,减少重复工作,提高开发效率。 3. **高可用性和可伸缩性**:支持负载均衡和集群部署,能应对大规模并发访问。 4. **安全性**:J2EE提供了多种安全机制,如认证、...
- **J2EE (Java 2 Platform, Enterprise Edition)** 是一种利用 Java 作为服务器端应用的框架,主要用来开发企业级应用。 - J2EE 的主要优势在于它的平台无关性和可移植性,能够支持多种操作系统环境。 **1.2 J2EE ...
在IT行业中,Java EE(Enterprise Edition)是一种广泛用于构建企业级Web应用的开发框架。它提供了丰富的组件和服务,包括数据库连接、事务管理、安全性和分布式应用程序支持。本篇将详细探讨"1j2ee环境搭建之开发...