?? dbcategory.java
字號:
package myshop.db;
import java.sql.*;
import java.util.*;
import myshop.Category;
/**
* 完成對商品類別的數據庫操作
*/
public abstract class DBCategory {
/** 私有空構造方法。保證本類不能夠被實例化 */
private DBCategory() {
}
/**
* 向數據庫中添加商品類別
* @param c Category 需要添加的商品類別。要求已經檢驗過類別屬性的合法性。
*/
public static void addCategory(Category c) {
Connection conn = null;
try {
conn = ConnectionManager.getConnection(); // 獲得數據連接
Statement stmt = conn.createStatement(); // 建立Statement用于執行SQL操作
stmt.executeUpdate("INSERT INTO CATEGORY (NAME) VALUES ('" +
c.getName() + "')"); // 執行SQL命令
stmt.close();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
ConnectionManager.closeConnection(conn);
}
}
/**
* 獲得全部商品分類
* @return Iterator 商品分類的迭代器
*/
public static Iterator getAllCategory() {
List l = new ArrayList(); //容器類。用于存放所有符合條件的對象。
Connection conn = null;
try {
conn = ConnectionManager.getConnection(); // 獲得數據連接
Statement stmt = conn.createStatement(); // 建立Statement用于執行SQL操作
ResultSet rs = stmt.executeQuery("SELECT ID, NAME FROM CATEGORY"); // 執行SQL命令
while (rs.next()) {
l.add(new Category(rs.getInt(1), rs.getString(2)));
}
stmt.close();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
ConnectionManager.closeConnection(conn);
}
return l.iterator();
}
/**
* 修改商品類別的屬性。目前只實現了修改名稱。
* @param c Category 已經填充新屬性的商品類別包裝類。
*/
public static void updateCategory(Category c) {
Connection conn = null;
try {
conn = ConnectionManager.getConnection(); // 獲得數據連接
// 使用PreparedStatement更新數據。
// 每個"?"代表一個占位符,在執行之前要一一設置各占位符的內容
PreparedStatement ps = conn.prepareStatement(
"UPDATE CATEGORY SET NAME=? WHERE ID=?");
// 設置第一個占位符的內容。設置內容類型為String
ps.setString(1, c.getName());
// 設置第二個占位符的內容。設置內容類型為int
ps.setInt(2, c.getId());
ps.executeUpdate(); //執行更新操作
ps.close();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
ConnectionManager.closeConnection(conn);
}
}
/**
* 獲得指定ID的商品類別對象
* @param id int 商品類別ID
* @return Category 商品類別對象
*/
public static Category getCategory(int id) {
Category c = null;
Connection conn = null;
try {
conn = ConnectionManager.getConnection(); // 獲得數據連接
// 建立PreparedStatement用于執行SQL操作
PreparedStatement ps = conn.prepareStatement(
"SELECT ID, NAME FROM CATEGORY WHERE ID=?");
ps.setInt(1, id); // 設置第一個占位符的內容
ResultSet rs = ps.executeQuery(); // 執行SQL命令
if (rs.next()) { //因為每個類別的ID是唯一的,所以只返回一個結果既可
c = new Category(rs.getInt(1), rs.getString(2));
}
ps.close();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
ConnectionManager.closeConnection(conn);
}
return c;
}
/**
* 刪除指定ID的商品類別
* @param id int 商品類別ID
*/
public static void deleteCategory(int id) {
Connection conn = null;
try {
conn = ConnectionManager.getConnection(); // 獲得數據連接
// 建立PreparedStatement用于執行SQL操作
PreparedStatement ps = conn.prepareStatement(
"DELETE FROM CATEGORY WHERE ID=?");
ps.setInt(1, id); // 設置第一個占位符的內容
ps.executeUpdate();
ps.close();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
ConnectionManager.closeConnection(conn);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -