[问题] 想请问写log到数据库的方法

楼主: love112302 (小黑炭)   2015-01-31 21:32:42
各位好
今天在加班的时候遇到一个问题不知道该怎么解决比较好
我在做一个简单的CRUD的接口
然后我想要把 修改前 跟 修改后的资讯存起来(log?)
我用DAO的方式操作
public interface TargetDAO{
public add(Target target);
public update(Target target);
public del(Target targeget);
}
public interface LogDAO {
public add(Log log);
}
类似这样,我的数据库设计的table很简单
<Log>
================================
id, editTarget, sqlstmt, sqlwkt, timestamp
<Target>
=================================
id, name, geom, note
如果我要修改一个target, 我会这样写
TargetDAO target = new TargetDAOImpl();
targte.update(target);
请问在这种情况下,log的 DAO 应该要在何时使用呢?
如果是写在 target.update 的底下,
现在是把 log 写在 TargetDAOImpl 底下
但是这样怎么想怎么蠢...
想请问如果我要 LOG CRUD 的东西
应该要把 LogDAO 写在那边比较好 QQ?
作者: ssccg (23)   2015-01-31 22:07:00
log是你DAO的api吗? 是实作细节当然在Impl底下啊如果还需要把log切出来,你该看看AOP
作者: force416 (艾瑞克)   2015-01-31 22:41:00
用aop比较方便,不用动到原本的程式码。
作者: yyc1217 (somo)   2015-02-01 00:47:00
如果是用Hibernate的话 可以用它的Interceptor
作者: ssccg (23)   2015-02-01 00:59:00
因为log不该是个DAO,是log里面存log的方式会用logDAO当然如果你的log不是通用功能,只是各DAO的CRUD会用到的一个额外insert方法,那直接写个BaseDAO来放就好

Links booklink

Contact Us: admin [ a t ] ucptt.com