[問題] 想請問寫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