簡單的CRUD(一),簡單CRUD(
一、JDBC的概述--(來源於百度)
JDBC(Java DataBase Connectivity,java資料庫連接)是一種用於執行SQL語句的Java API,可以為多種關聯式資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。JDBC提供了一種基準,據此可以構建更進階的工具和介面,使資料庫開發人員能夠編寫資料庫應用程式。JDBC對Java程式員而言是API,對實現與資料庫連接的服務提供者而言是介面模型。
JDBC 可做三件事:與資料庫建立串連、發送操作資料庫的語句並處理結果。
JDBC API提供了以下介面和類:
DriverManager: 這個類管理資料庫驅動程式的列表。確定內容是否符合從Java應用程式使用的通訊子協議正確的資料庫驅動程式的串連請求。識別JDBC在一定子協議的第一個磁碟機將被用來建立資料庫連接。
Driver: 此介面處理與資料庫伺服器通訊。很少直接直接使用驅動程式(Driver)對象,一般使用DriverManager
中的對象,它用於管理此類型的對象。它也抽象與驅動程式對象工作相關的詳細資料
Connection : 此介面與接觸資料庫的所有方法。連線物件表示通訊上下文,即,與資料庫中的所有的通訊是通過此唯一的連線物件。
Statement : 可以使用這個介面建立的對象的SQL語句提交到資料庫。一些派生的介面接受除執行預存程序的參數。
ResultSet: 這些對象儲存從資料庫後,執行使用Statement
對象的SQL查詢中檢索資料。它作為一個迭代器,可以通過移動它來檢索下一個資料。
SQLException: 這個類用於處理髮生在資料庫應用程式中的任何錯誤。
二、CRUD
crud是指在做計算處理時的增加(Create)、讀取查詢(Retrieve)、更新(Update)和刪除(Delete)幾個單詞的首字母簡寫。crud主要被用在描述軟體系統中資料庫或者持久層(dao層)的基本操作功能。
三、實現簡單的CRUD1.實現條件
1.jar包, mysql-connector-java-5.1.26-bin.jar
2.資料庫MySQL
2.具體代碼
1.dao層介面
1 public interface ILoginUserDao { 2 /** 3 * 增加 4 * @param loginUser 5 */ 6 void save(LoginUser loginUser); 7 8 /** 9 * 刪除10 * @param id11 */12 void delete(Integer id);13 14 /**15 * 更新16 * @param loginUser17 */18 void update(LoginUser loginUser);19 20 /**21 * 查詢22 * @return23 */24 List query();25 }
2.dao層實現
1 public class LoginUserDao implements ILoginUserDao { 2 @Override 3 public void save(LoginUser loginUser) { 4 System.out.println("----save----"); 5 // 首先載入jdbc實作類別 6 try { 7 // 1.載入驅動 8 Class.forName("com.mysql.jdbc.Driver"); 9 // 2.建立連結 10 Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin"); 11 // 3.建立編譯語句 12 Statement statement = connection.createStatement(); 13 // 4.執行sql語句 14 String sql = "INSERT INTO loginuser(username, password) VALUES ('王五', '6666')"; 15 int i = statement.executeUpdate(sql); 16 // 5.釋放資源 17 statement.close(); 18 connection.close(); 19 20 } catch (Exception e) { 21 e.printStackTrace(); 22 } 23 } 24 25 @Override 26 public void delete(Integer id) { 27 System.out.println("----delete----"); 28 try { 29 // 1.載入驅動 30 Class.forName("com.mysql.jdbc.Driver"); 31 // 2.建立連結 32 Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin"); 33 // 3.建立編譯語句 34 Statement statement = connection.createStatement(); 35 // 4.執行語句 36 String sql = "DELETE FROM loginuser WHERE id = 2"; 37 int i = statement.executeUpdate(sql); 38 // 5.釋放資源 39 statement.close(); 40 connection.close(); 41 } catch (Exception e) { 42 e.printStackTrace(); 43 } 44 } 45 46 @Override 47 public void update(LoginUser loginUser) { 48 System.out.println("----update----"); 49 try { 50 // 1.載入驅動 51 Class.forName("com.mysql.jdbc.Driver"); 52 // 2.建立連結 53 Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin"); 54 // 3.建立編譯語句 55 Statement statement = connection.createStatement(); 56 // 4.執行sql語句 57 String sql = "UPDATE loginuser SET username = '王五', password = '55555' WHERE id = 1"; 58 int i = statement.executeUpdate(sql); 59 // 5.釋放資源 60 statement.close(); 61 connection.close(); 62 } catch (Exception e) { 63 e.printStackTrace(); 64 } 65 } 66 67 @Override 68 public List query() { 69 System.out.println("----query----"); 70 // new一個list集合對象 71 List<LoginUser> list = new ArrayList<>(); 72 try { 73 // 1.載入驅動 74 Class.forName("com.mysql.jdbc.Driver"); 75 // 2.建立連結 76 Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin"); 77 // 3.建立編譯語句 78 Statement statement = connection.createStatement(); 79 // 4.執行sql語句 80 String sql = "SELECT id, username, password FROM loginuser WHERE id > 4"; 81 ResultSet resultSet = statement.executeQuery(sql); 82 // 取出查詢內容 83 while (resultSet.next()) { 84 String username = resultSet.getString("username"); 85 String password = resultSet.getString("password"); 86 // 建立LoginUser對象 87 LoginUser loginUser = new LoginUser(); 88 loginUser.setUsername(username); 89 loginUser.setPassword(password); 90 // 添加到集合 91 list.add(loginUser); 92 } 93 // 5.釋放資源 94 resultSet.close(); 95 statement.close(); 96 connection.close(); 97 98 } catch (Exception e) { 99 e.printStackTrace();100 }101 return list;102 }103 }
3.注意事項
1.使用DriverManager擷取串連.
Connection conn = DriverManager.getConnection(String url,String user,String password)
2.增加、刪除、修改執行sql語句 statement.executeUpdate(sql) 使用的是 executeUpdate,而查詢使用的是 executeQuery ==》ResultSet resultSet = statement.executeQuery(sql)