JavaWeb5.1【JDBC:基本概念、快速入門】
阿新 • • 發佈:2021-06-25
1. 概念 Java DataBase Connectivity Java 資料庫連線, Java語言操作資料庫 JDBC本質:其實是官方(sun公司)定義的一套操作所有關係型資料庫的規則,即介面。 各個資料庫廠商去實現這套介面,提供資料庫驅動jar包。 我們可以使用這套介面(JDBC)程式設計,真正執行的程式碼是驅動jar包中的實現類。 2. 快速入門 步驟 1. 匯入驅動jar包 mysql-connector-java-5.1.37-bin.jar 1.複製mysql-connector-java-5.1.37-bin.jar到專案的libs目錄下 (在模組下新建libs資料夾,與src同級)(建目錄方便管理,建不建都行,名稱任意) 2.在jar包/libs目錄上右鍵-->Add As Library 2. 註冊驅動 3. 獲取資料庫連線物件 Connection 4. 定義sql語句 5. 獲取執行sql語句的物件 Statement 6. 執行sql,接收返回結果 7. 處理結果 8. 釋放資源
CREATE TABLE account ( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10), balance DOUBLE ); INSERT INTO account (NAME, balance) VALUES ('zhangsan', 1000), ('lisi', 1000);
1 package com.yub4by.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.Statement;6 94 public class JDBCDemo1 { 95 public static void main(String[] args) throws Exception { 96 //1 匯入驅動jar包 97 98 //2 註冊驅動 99 Class.forName("com.mysql.jdbc.Driver"); 100 101 //3 獲取資料庫連線物件 102 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/hm_db2", "root", "root");103 // Connection conn = DriverManager.getConnection("jdbc:mysql:///hm_db2", "root", "root"); 104 105 //4 定義sql語句 106 String sql = "update account set balance=500 where id=1"; 107 108 //5 獲取執行sql語句的物件 109 Statement stmt = conn.createStatement(); 110 111 //6 執行sql語句,接收返回結果 112 int count = stmt.executeUpdate(sql); 113 114 //7 處理結果 115 System.out.println(count); //1 116 117 //8 釋放資源 118 stmt.close(); 119 conn.close(); 120 121 } 122 }
優化寫法-例子
1 package com.yub4by.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 8 /** 9 * 練習: 10 * 1. account表 新增一條記錄 11 * 2. account表 修改記錄 12 * 3. account表 刪除一條記錄 13 */ 14 //新增一條記錄 15 public class JDBCDemo2 { 16 public static void main(String[] args) { 17 18 19 Connection conn = null; 20 Statement stmt = null; 21 try { 22 //1註冊驅動 23 Class.forName("com.mysql.jdbc.Driver"); 24 25 //2獲取資料庫連線物件Connection 26 // conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/hm_db2", "root", "root"); 27 conn = DriverManager.getConnection("jdbc:mysql:///hm_db2", "root", "root"); 28 29 //3獲取執行sql語句的物件Statement 30 stmt = conn.createStatement(); 31 32 //4定義sql語句 33 String sql = "insert into account values(null, '王五', 3000)"; 34 35 //5執行sql語句 36 int count = stmt.executeUpdate(sql); //返回影響資料庫的行數 37 38 //6處理結果 39 System.out.println(count); 40 if(count > 0){ 41 System.out.println("新增成功"); 42 }else { 43 System.out.println("新增失敗"); 44 } 45 } catch (ClassNotFoundException | SQLException e) { 46 e.printStackTrace(); 47 }finally { 48 //7釋放資源 49 if(stmt != null){ //避免空指標異常 50 try { 51 stmt.close(); 52 } catch (SQLException e) { 53 e.printStackTrace(); 54 } 55 } 56 if(conn != null){ 57 try { 58 conn.close(); 59 } catch (SQLException e) { 60 e.printStackTrace(); 61 } 62 } 63 } 64 65 66 } 67 }
1 package com.yub4by.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 8 /** 9 * 練習: 10 * 1. account表 新增一條記錄 11 * 2. account表 修改記錄 12 * 3. account表 刪除一條記錄 13 */ 14 //修改記錄 15 public class JDBCDemo3 { 16 public static void main(String[] args) { 17 18 Connection conn = null; 19 Statement stmt = null; 20 try { 21 Class.forName("com.mysql.jdbc.Driver"); 22 conn = DriverManager.getConnection("jdbc:mysql:///hm_db2", "root", "root"); 23 stmt = conn.createStatement(); 24 25 String sql = "update account set balance=1500 where id=3"; 26 int count = stmt.executeUpdate(sql); 27 System.out.println(count); 28 if(count != 0){ 29 System.out.println("修改成功"); 30 }else { 31 System.out.println("修改失敗"); 32 } 33 } catch (ClassNotFoundException | SQLException e) { 34 e.printStackTrace(); 35 }finally { 36 if(stmt != null){ 37 try { 38 stmt.close(); 39 } catch (SQLException e) { 40 e.printStackTrace(); 41 } 42 } 43 if(conn != null){ 44 try { 45 conn.close(); 46 } catch (SQLException e) { 47 e.printStackTrace(); 48 } 49 } 50 } 51 52 } 53 }
1 package com.yub4by.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 8 /** 9 * 練習: 10 * 1. account表 新增一條記錄 11 * 2. account表 修改記錄 12 * 3. account表 刪除一條記錄 13 */ 14 //刪除一條記錄 15 public class JDBCDemo4 { 16 public static void main(String[] args) { 17 18 Connection conn = null; 19 Statement stmt = null; 20 try { 21 Class.forName("com.mysql.jdbc.Driver"); 22 conn = DriverManager.getConnection("jdbc:mysql:///hm_db2", "root", "root"); 23 stmt = conn.createStatement(); 24 25 String sql = "delete from account where id=3"; 26 int count = stmt.executeUpdate(sql); 27 System.out.println(count); 28 if(count != 0){ 29 System.out.println("刪除成功"); 30 }else { 31 System.out.println("刪除失敗"); 32 } 33 } catch (ClassNotFoundException | SQLException e) { 34 e.printStackTrace(); 35 }finally { 36 if(stmt != null){ 37 try { 38 stmt.close(); 39 } catch (SQLException e) { 40 e.printStackTrace(); 41 } 42 } 43 if(conn != null){ 44 try { 45 conn.close(); 46 } catch (SQLException e) { 47 e.printStackTrace(); 48 } 49 } 50 } 51 52 } 53 }
1 package com.yub4by.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 8 //建立表 9 public class JDBCDemo5 { 10 public static void main(String[] args) { 11 12 Connection conn = null; 13 Statement stmt = null; 14 try { 15 Class.forName("com.mysql.jdbc.Driver"); 16 conn = DriverManager.getConnection("jdbc:mysql:///hm_db2", "root", "root"); 17 stmt = conn.createStatement(); 18 19 String sql = "create table student(id int, name varchar(20))"; 20 int count = stmt.executeUpdate(sql); 21 System.out.println(count); //0 22 } catch (ClassNotFoundException | SQLException e) { 23 e.printStackTrace(); 24 }finally { 25 if(stmt != null){ 26 try { 27 stmt.close(); 28 } catch (SQLException e) { 29 e.printStackTrace(); 30 } 31 } 32 if(conn != null){ 33 try { 34 conn.close(); 35 } catch (SQLException e) { 36 e.printStackTrace(); 37 } 38 } 39 } 40 41 } 42 }