快速业务通道

Java EE应用中对前端用户的数据库操作的审计 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
  } finally {        try {          conn.close() ;        } catch (Exception e2) {          // TODO: handle exception         }      }      return retObj ;    }    //other methods … .  }

于是将上面的 SqlMapClientUtil 重构成:

清单 7. 重构过的 SqlMapClient 封装类

public class SqlMapClientUtil {    private SqlMapClient sqlMap ;    public SqlMapClient getSqlMapClient() {      return new MySqlMapClient(sqlMap) ;   } … }

在 Hibernate 中传递连接属性

典型的使用 Hibernate 操作数据库的编程模型如下:

清单 8. Hibernate 的典型编程模型

Session sess = factory.openSession(); Transaction tx; try {    tx = sess.beginTransaction();    //do some work     ...     tx.commit(); } catch (Exception e) {    if (tx!=null) tx.rollback();    throw e; } finally {    sess.close(); }

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

时间:2010-11-03 IBM 库俊国

为了能在会话内传递用户标识,将上述编程模型改造成下面方式即可:

清单 9. 加进传递用户标识后的 Hibernate 编程模型

Session sess = factory.openSession(); Transaction tx; Connection conn ; try {    tx = sess.beginTransaction() ;    conn = sess.connection() ;    OracleConnection oraconn = (OracleConnection)conn ;    // 上面连接或转换成 DB2Connection,视数据库而定     oraconn.setClientIdentifier("") ;    //do some work     oraconn.clearClientIdentifier("") ;    tx.commit(); } catch (Exception e) {    if (tx!=null) tx.rollback();      throw e; } finally {    sess.close(); }

结束语

本文源于客户的真实场景,很多客户在实际 Java EE 项目中都有“在数据库端审计前端登录用户”的需求。本文针对几种典型场景给出了如何传递用户标识的编程实践,并介绍了如何在数据库端进行审计查看。希望能给相关开发者提供一些借鉴。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号