Java 记录数据库更新、访问、修改等的最后日期/时间的简单方法

Java 记录数据库更新、访问、修改等的最后日期/时间的简单方法,java,database,jdbc,Java,Database,Jdbc,我编写了Java/JDBC代码,它在数据库上执行简单/基本的操作。 我想添加代码,帮助我跟踪某个特定数据库何时被该程序访问、更新、修改等。 我正在考虑在我的DBMS中创建另一个数据库,其中将为每个涉及的数据库存储这些详细信息或日志。 这是最好的方法吗?有没有其他方法(最好是简单的方法)可以做到这一点 编辑- 将“last_modified”列添加到表中,然后在表上添加更新触发器以将其设置为db当前时间,这是非常标准的。那么你的应用程序就不需要担心了。此外,还经常使用“创建时间”,由插入触发器填充

我编写了Java/JDBC代码,它在数据库上执行简单/基本的操作。 我想添加代码,帮助我跟踪某个特定数据库何时被该程序访问、更新、修改等。 我正在考虑在我的DBMS中创建另一个数据库,其中将为每个涉及的数据库存储这些详细信息或日志。
这是最好的方法吗?有没有其他方法(最好是简单的方法)可以做到这一点

编辑-


将“last_modified”列添加到表中,然后在表上添加更新触发器以将其设置为db当前时间,这是非常标准的。那么你的应用程序就不需要担心了。此外,还经常使用“创建时间”,由插入触发器填充

评论后更新:

似乎您正在查找审核日志。有些人编写的应用程序只通过存储过程进行数据操作,而不是通过插入和更新。一个固定的api。因此,如果要向表中添加项,请调用存储过程:

addItem(itemName, itemDescription)
然后proc将插入到item表中,并执行任何必要的日志记录


另一种技术,如果您使用某种框架进行jdbc访问(比如Spring),则可能是在该层进行拦截。

在几乎所有的表中,我有以下几列:

  • 创造的
  • 创建数据
这些列分别具有当前用户和当前时间的默认值。当添加一行时,将填充它们

这只解决了你的问题的一部分。您可以开始添加触发器,但这会变得复杂。另一种方法是通过存储过程强制对数据库进行修改访问,然后记录存储过程。在控制用户可以做什么方面,这还有其他优势。但是,您可能需要更大的灵活性

第三种可能是审计工具,它跟踪数据库上运行的所有查询。我认为大多数数据库都有一种打开内部审计的方式,尽管这些方式非常特定于数据库。还有第三方工具可以让您查看发生了什么。但是,请注意,如果您的数据库正在执行大量事务,这些方法将影响性能


有关更多信息,请修改您的问题,以指定您正在使用或计划使用的数据库。

目前,我使用的是MySQL。但是,我也希望我的代码至少能与Oracle SQL和MS-SQL一起工作。
addItem(itemName, itemDescription)