如何使用 iBATIS 实现审计拦截器?
我想使用名为 AuditEvent 的表来记录数据库中的所有更改,该表存储修改的行 ID(主键)、表名、列名、先前值、新值、更改日期(时间戳)、操作类型(插入/更新/删除)以及进行更改的用户的名称。
我正在使用 SQL Server 2005,但我不想使用触发器,因为由于我使用连接池,因此很难找到当前用户。
基于拦截器的 Hibernate 解决方案非常简单。 使用 iBATIS / iBATOR 时如何做类似的事情?
I want to log all changes in my database for auditing purposes, using a table called AuditEvent that stores the modified row ID (primary key), table name, column name, previous value, new value, date of change (timestamp), operation type (insert / update / delete) and the name of the user who did the changes.
I'm using SQL Server 2005, but I don't want to use triggers, because since I use a connection pool it would be difficult to find the current user.
The Hibernate solution based on an Interceptor is pretty simple. How do I do something similar when using iBATIS / iBATOR ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您使用的是 Spring,则可以使用 SqlMapClientDaoSupport 来编写模板 Dao 对象,这些对象将审计与您正在使用的任何事务支持结合起来。 如果没有,有一个 iBatis Doa 模板选项,即 iBatis DAO。 这已经被贬值了,所以 Spring 可能会更好。
If you're using spring, you might be able to use SqlMapClientDaoSupport to write template Dao objects that wrap auditing up with whatever transaction support you are using. If not, there is an iBatis Doa template option, iBatis DAO. That has been depreciated so you might be better off with Spring.