1. 程式人生 > 其它 >JavaWeb5.1【JDBC:基本概念、快速入門】

JavaWeb5.1【JDBC:基本概念、快速入門】

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 }