WEB开发网
开发学院软件开发Java Java EE 应用中对前端用户的数据库操作的审计 阅读

Java EE 应用中对前端用户的数据库操作的审计

 2010-09-26 00:00:00 来源:WEB开发网   
核心提示: WSConnection.CLIENT_IDWSConnection.CLIENT_APPLICATION_NAMEWSConnection.CLIENT_OTHER_INFOWSConnection.OTHER_CLIENT_TYPE和开源项目的结合在实际大型项目中,直接通过 JDBC API

WSConnection.CLIENT_ID

WSConnection.CLIENT_APPLICATION_NAME

WSConnection.CLIENT_OTHER_INFO

WSConnection.OTHER_CLIENT_TYPE

和开源项目的结合

在实际大型项目中,直接通过 JDBC API 访问数据库比较少见,大多通过 O/R mapping 框架如 iBatis 或 Hibernate 去操纵数据库。这些框架往往对数据库连接进行了封装,同时客户的框架又经常进行了二次封装,这使得在连接上传递属性变得不太容易。下面针对 iBatis 和 Hibernate 提出了自己的一些实践解法。

下面都是针对 JDBC 4.0 之前的 JDBC driver 的编程实践。

在 iBatis 中传递连接属性

iBatis 提供了一个接口 com.ibatis.sqlmap.client.SqlMapClient,这个接口包含了数据库增删改查的常用方法。很多客户都是基于该接口的一个 wrapper 类去完成数据库操作。但 SqlMapClient 默认的方法封装掉了对连接的使用,即开发者无须获得连接和释放连接即可使用。

客户常用的 SqlMapClient 包装类的形式:

清单 5. 一个典型的 SqlMapClient 封装类

public class SqlMapClientUtil { 
 
  private SqlMapClient sqlMap ; 
   
  public SqlMapClientUtil(SqlMapClient sqlMap) { 
    this.sqlMap = sqlMap ; 
  } 
   
  public SqlMapClient getSqlMap() { 
    return sqlMap ; 
  } 
   
  … 
} 

客户使用这种包装类的好处是减轻调用方对 SqlMapClient 的初始化工作,同时也可以对 SqlMapClient 做一些增强。但如果需要在连接上传递属性,需要进行一些改造。改造办法是写一个自己的 SqlMapClient 实现,逐一实现 SqlMapClient 里的方法。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Java EE 应用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接