Re: [問題] DAO 模式
噗
謝謝解說= =
我的理解是這樣
有問題糾正我一下 謝謝= =
一個dao介面抽象出所有資料表裡面可能操作的方法
再一個實作dao介面的類別實作出
然後再寫一個user類別封裝該資料表 user表
接著把使用者的參數放該user類別
然後呼叫 實作dao介面方法插user類別 之後從user裡面拿出參數帶入sql語句
從上面看來我只感覺的出來的好處
就是不用在jsp裡面打sql代碼
然後因為有了dao介面
換資料庫只要修改實作dao的方法
好處就以上二點是嗎??
上面我全都用推的
推dao在做的是什麼
然後怎麼分離而己
其實我不確定是不是這樣做
※ 引述《adrianshum (Alien)》之銘言:
: ※ 引述《etman395 (技術時代)》之銘言:
: : 我實在很不了解dao模式
: : 我只知道他的作用好像是不要在jsp裡面寫sql代碼
: : 把他分離出來
: : 這樣jsp就會省掉很多重覆的sql代碼
: : 然後為了換資料庫不會影響前台代碼
: : 所以做個 dao介面 和實作dao的類別 然後再寫個封裝資料表的類別
: : 上面這段我理解的很模糊
: : 其實我dao還是沒有懂....
: : 可以有高手幫我解釋一下嗎??
: : 用白話解釋也可以
: : 因為我也很想解整個構架是怎樣 和實際功能
: DAO 簡而言之, 就是我寫的logic 不用再管
: CRUD 的部份, 把 CRUD 交給一個 DAO. 某程度
: 上, 我的 logic 就不再需要理會背後用什麼
: persistence technology, 以後想比如換用別的
: DB, 只要換別的 DAO Impl 就好了. 感覺上就像:
: (Logic): 好, 建好一部車的資料了, DAO, 幫我
: 存好它:
: (DAO): 哦 (然後自己默默用 SQL 插入 DB)
: 或者
: (Logic): DAO, 幫我拿出所有紅色的車子
: (DAO): 哦 (然後自己默默用 SQL 找出 record,
: 把 record 轉為車子)
: 諾, 你要的車子
: (Logic): 好! (然後繼續工作)
: interface CarDao {
: void createCar(Car car);
: List<Car> findCarsByColor(Color color);
: }
: class CarDaoOracleImpl implements CarDao {
: // Oracle 的 sql 實作
: }
: class CarDaoMySqlImpl implements CarDao {
: // My SQL 的 sql 實作
: }
: 概念就這樣
: 最重要是 DAO 要把背後 persistence 的 techonlogy
: 隱藏起來, 比如看過有些人寫 DAO, return 的是
: resultset, 又或者傳進一句 SQL 來做 query,
: 這些就是換湯不換藥的做法, 對架構一點幫助都沒有.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.106.19.33
推
05/26 16:29, , 1F
05/26 16:29, 1F
推
05/26 16:35, , 2F
05/26 16:35, 2F
→
05/26 16:42, , 3F
05/26 16:42, 3F
推
05/26 19:07, , 4F
05/26 19:07, 4F
推
05/26 19:07, , 5F
05/26 19:07, 5F
推
05/26 19:31, , 6F
05/26 19:31, 6F
→
05/26 19:33, , 7F
05/26 19:33, 7F
推
05/27 01:41, , 8F
05/27 01:41, 8F
推
05/27 10:45, , 9F
05/27 10:45, 9F
推
05/27 10:48, , 10F
05/27 10:48, 10F
討論串 (同標題文章)
java 近期熱門文章
3
14
PTT數位生活區 即時熱門文章