正因如此,我們在dao中的類,他的語句以及思路,應該是圍繞著與資料庫之間的互動展開的。
我認為dao中的類的語句可以分為這幾部分:
①首先,我們需要連線上資料庫
connection conn = jdbcutil.
getconnection()
;
②我們需要乙個sql語句
string sql =
"insert into users(username,password,***,email)values(?,?,?,?)"
;
③我們需要獲取乙個執行sql語句的物件
可以使用這種方式
statement stmt = conn.
createstatement()
;resultset rs =
executequery
(sql)
;
也可以使用預編譯的方式(這種方式的優點在於,如果傳入引數中可能包含對sql語句起作用的語句,通過預先編譯了sql語句,也不會對結果產生影響),而現在一般也是在使用這個
preparedstatement ps = null;
ps = conn.
preparestatement
(sql)
;
④我們需要向sql語句中傳入資料(這裡用ps舉例)
//這時候的前提是servlet介面被瀏覽器中傳入了乙個user物件,servlet將這個user物件傳入了dao中,讓其傳入資料庫中
ps.setstring(1
, user.
getusername()
);ps.setstring(2
, user.
getpassword()
);ps.setstring(3
, user.
get***()
);ps.setstring(4
, user.
getemail()
);
⑤執行sql語句
result = ps.
executeupdate()
;
⑥關閉資料庫連線
jdbcutil.
close
(conn, ps, rs)
;
這就是dao與資料庫互動的真個過程,也就是相當於乙個小的jdbc在工作一遍的過程,而正因如此,每次的使用者操作都會導致與資料庫的連線斷開,所以我們會選擇使用***直接在程式開始時直接獲得連線,在程式關閉時自動釋放連線,正如上篇文章所說。 關於Service和Dao的關係
在新的專案裡,沒有辦法理解service和dao的意義,今天在晚上查詢了一下 service層的作用,在jdon上搜到了一篇帖子,層的職責的請教,看到了裡面的一些討論,自己對這兩個層次的劃分也明確了許多。service層是業務邏輯,包括對一些資料的預處理啊,這樣的一層也便於以後業務變化後,改動的代價...
dao層 service層 事務的理解
dao層 對應資料最底層操作,一般來說,乙個資料庫table對應乙個dao,單錶操作。service層 把客戶多方面要求進行彙總,對外只有引數即可,至於服務層操作多少個dao與客戶無關。事務四大特性 1.原子性 原子性是指事務是乙個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。2.一致性...
關於swf類庫的理解
swc 的作用 只是 幫助逃過編譯期檢查。swf才作為真正的類庫,其中包含了編譯後的 類 但如果,沒有相應的swc,類庫swf中的類不能在其他類中 顯式 地引用 直接通過類名引用,例var f myfont new myfont 但也可以用 getdefinitionbyname 存在與swf類庫中...