12.1用於jdk6,jdk7,低於jdk6的都不被支援
12.1的jdbc驅動也支援oracle11.x,低於11的都不被支援
jdk6以後,不再需要class.forname("oracle.jdbc.oracledriver") 這句話
標準jdbc驅動中executequery沒有結果集返回時會有sqlexception,
oracle實現不會拋異常
同時關閉statement和resultset後,相應的游標才會關閉
如果是ddl,如建表,只能用statement
如果用preparedstatement,第一次可以執行,以後都會失敗
conn.setautocommit(false);
如果自動提交取消,但關閉了連線,則會自動提交所有
對於ddl總是會自動提交,dml中執行完ddl會自動提交所有
批更新只能是增,刪,改,如果是返回結果集的語句會報錯
使用之前要關閉自動提交
批更新主要用於preparedstatement,因為已經預編譯了,效能很高
用statement也行,但沒有任何優勢
statement stmt = conn.createstatement();
stmt.addbatch("insert into emp values(1000, 'joe jones')");
stmt.addbatch("insert into dept values(260, 'sales')");
stmt.addbatch("insert into emp_dept values(1000, 260)");
preparedstatement pstmt =
conn.preparestatement("insert into employees values(?, ?)");
pstmt.setint(1, 2000);
pstmt.setstring(2, "milo mumford");
pstmt.addbatch();
pstmt.setint(1, 3000);
pstmt.setstring(2, "sulu simpson");
pstmt.addbatch();
int updatecounts = pstmt.executebatch()
如果一共有5條
成功會返回5個記錄的陣列,第4條失敗,會丟擲 batchupdateexception 異常
batchupdateexception.getupdatecounts 包含了3個記錄的陣列
這時候即時成功的也可以rollback
在處理過程中出現了commit,則會提交已經處理了的那些
在處理過程中出現了rollback,並不會清空整個statement,要手動clearbatch
一旦addbatch了,或者excutebatch,或者clearbatch,否則報錯
excutebatch,或者clearbatch都會清空整個statement
clearbatch沒有返回值
executebatch之前不能呼叫其他的executexx
但他們可以使用同乙個statement
預設,查詢到的結果集是10行10行的處理的
setfetchsize 設定新值後會影響這個statement上之後的語句
結果集中也可以設定,將會覆蓋statement傳來的
resultset.refreshrow並不會真實重新整理底層資料,即時已經被刪除了仍會保留當前值
Oracle 12 1 Java開發2日通
oracle12c支援jdk6和jdk7 oracle.jdbc,oracle.sql包 jdbc oracle thin hr hr localhost 1521 oracle 預設乙個statement物件同時只能有乙個resultset物件能被讀取 因此要讀取多個resultset要用多個st...
JDBC開發步驟
jdbc開發步驟 1 載入資料庫驅動 2 通過drivermanager獲取資料庫連線connection 3 通過connection獲取statement preparedstatement 4 將sql語句繫結到statement preparedstatement中去,準備向資料庫傳送sql...
JDBC開發步驟
jdbc開發步驟 1 引包 2 開啟mysql服務,如果沒有開啟 3 準備好資料庫 4 進入開發階段 1.註冊資料庫驅動 2.和資料庫建立連線 3.獲得執行sql語句的物件 4.執行sql語句 1 更新操作 包括增 刪 改executelupdate 方法,返回乙個整型,對資料庫產生影響的行數 2 ...