您好,登錄后才能下訂單哦!
本篇內容主要講解“JDBC中的添加、刪除、修改操作的共用方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“JDBC中的添加、刪除、修改操作的共用方法是什么”吧!
用來實現添加、刪除、修改操作的共用方法。分為兩個方法,一個是設置PreparedStatement ps;對象參數的方法。一個是執行泛型PreparedStatement ps;對象的.
下面來看一下吧:
/*
* Author:spring
* Date :09-03-06 20:28
*/
private PreparedStatement setPreparedStatement(PreparedStatement ps,
List pars) throws SQLException {
try {
// 1.獲取數組的長度這樣能提高一點性能
int x = pars.size();
// 2.循環設置ps中需要的參數
for (int i = 0; i ﹤ x; i++) {
ps.setObject(i + 1, pars.get(i));
System.out.println(pars.get(i));
}
// 3.添加到緩沖區中
ps.addBatch();
// 4.設置完參數的ps返回
return ps;
} finally {
}
}
/*
* 執行PreparedStatement泛型列表的方法
*/
privateboolean exceurePreparedStatement(List﹤PreparedStatement> pss)
throws SQLException {
int x = 0;
try {
// 1.為手動提交
this.conn.setAutoCommit(false);
// 2.執行所有的PreparedStatement對象
x = pss.size();
for (int i = 0; i ﹤ x; i++) {
pss.get(i).executeBatch();
}
// 3.沒有錯誤的話的就提交事務
this.conn.commit();
System.out.println("執行executeBatch()");
// 4.如果提交成功那就返回成功true
returntrue;
} catch (Exception e) {
// 出現異常回滾事務
e.printStackTrace();
System.out.println("執行批量時error");
this.conn.rollback();
//個性化異常
thrownew MyException("page.error.1000","1000 數據執行的批量出錯.");
//throw new SQLException();
} finally {
// ***把手動提交改為自動提交
this.conn.setAutoCommit(true);
// 關閉不用的資源
for (int i = 0; i ﹤ x; i++) {
DBUtils.close(pss.get(i));
}
}
}
//下面來介紹一下它們的用法
要實現一個用戶添加的功能,在添加的同時還要往log日志表中添加是誰操作的
這就要用到事務處理了
/*
*添加用戶
*/
public Boolean add_Users() throws SQLException {
try {
// 1.要執行的sql語句
sql1 = new StringBuilder()
.append("insert into spring_users(U_ID,u_Name,u_Password,u_Email,u_State)")
.append(" values(SEQ_USERS.NEXTVAL,?,?,?,?)");
// 添加日志
sql2 = new StringBuilder()
.append("insert into SPRING_LOG(L_ID,L_NAME,U_ID,L_MESSAGE,L_DATE)")
.append(" values(SEQ_LOG.nextval,?,?,?,?)");
// 2.要設置的參數列表
pars1 = new ArrayList();
pars1.add(dto.get("u_Name")); // 用戶名
pars1.add(dto.get("u_Password")); // 用戶密碼
pars1.add(dto.get("u_Email")); // 用戶E-email
pars1.add(dto.get("u_Rating"));//權限與用戶狀態
// 獲取當前操作員的u_id
String u_Id = (String) dto.get("u_Id");
pars2 = new ArrayList();
pars2.add("SPRING_USERS"); // 設置1 操作的表名
pars2.add(u_Id); // 設置2 操作人id
pars2.add("這是用戶添加操作:用戶名:" + this.dto.get("u_Name"));// 設置3
// 描述看看是不是添加操作
pars2.add(Tools.getSqlTimestamp()); // 設置4 操作時間
// 3.編譯sql語句并設置參數
pss = new ArrayList
ps1 = this.conn.prepareStatement(sql1.toString());
ps2 = this.conn.prepareStatement(sql2.toString());
// 設置參數
pss.add(this.setPreparedStatement(ps1, pars1));
pss.add(this.setPreparedStatement(ps2, pars2));
// 4.調用執行sql語句的方法
returnthis.exceurePreparedStatement(pss);
} finally {
// 5.釋放使用資源
DBUtils.close(ps1);
DBUtils.close(ps2);
}
}
這里的一些方法是我封裝的像獲取當前用戶的u_id , String u_Id = (String) dto.get("u_Id");這是我用的構造傳過來的dto所以我們不用管它;
分析一下用法:
1. 設置sql語句
2. 編譯sql語句(用PreparedStatement)
3. 定義一個泛型PreparedStatement
4. 設置PreparedStatement的參數返回來添加到泛型里
5. 調用執行泛型中的PreparedStatement 對象
6. 關閉不需要的資源
到此,相信大家對“JDBC中的添加、刪除、修改操作的共用方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。