JDBC 筆記(2)

JDBC第二天
上午:
一.PreparedStatement(從Statement繼承而來)
同構SQL:SQL語句基本一樣,只是具體參數值不同.
異構SQL:SQL語句完全不一樣.
Statement不足:
1.效率比較低;
2.對字段類型的支持比較差;
3.語法含義不清晰.(結構不清楚)


由於編譯時不需要參數,PreparedStatement 可以使用"?"來替代sql語句中的某些參數,它先將不帶參數的sql語句發送到數據庫,進行預編譯,然後PreparedStatement會再將設置好的參數發送給數據庫。
在使用PreparedStatement設置相應參數時,要指明參數的位置和類型,以及給出參數的具體值
根據不同的參數類型使用不同的setXXX(參數的位置,參數值)來設置參數
如:
    String sql = "update XXX set x=? where XXX;"; //?代表佔位符,在這裏並沒有設置具體值.
    PreparedStatement ps = con.prepraredStatement(SQL);//SQL語句已經送到數據庫去編譯了,即預編譯
    ps.setXXX(參數的位置,參數值)//把參數值存放在PreparedStatment對象中.
    ps.executeUpdate();//由於已經預編譯過,因此不需要再傳入SQL語句,就可以直接執行
    
下午:
元數據:數據類型結構本身的信息,它就是存儲用戶數據的容器的數據結構。
JDBC中有兩種元數據,一種是用戶元數據,另一種是結果集元數據。


結果集元數據:
1.獲得字段個數
2.獲得字段名稱
3.獲得字段類型


如:
ResultSet rs=ps.executeQuery(sql);
ResultSetMetaData m=rs.getMetaData();
getColumnCount(),獲得實際列數
getColumnName(int colnum),獲得指定列的列名
getColumnType(int colnum),獲得指定列的數據類型(Types裏面的類型,存放的是整數)
getColumnTypeName(int colnum),獲得指定列的數據類型名


持久化:
OID來唯一標識一個對象.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章