程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> JavaEE學習中,JDBC、DriverManger類、Connection接口、Statement接口、ResultSet接口(java 學習中的小記錄),javaeedrivermanger

JavaEE學習中,JDBC、DriverManger類、Connection接口、Statement接口、ResultSet接口(java 學習中的小記錄),javaeedrivermanger

編輯:JAVA綜合教程

JavaEE學習中,JDBC、DriverManger類、Connection接口、Statement接口、ResultSet接口(java 學習中的小記錄),javaeedrivermanger


JavaEE學習中,JDBC、DriverManger類、Connection接口、Statement接口、ResultSet接口(java 學習中的小記錄)

作者:王可利(Star·星星)

 

JDBC(Java Data Base Connectivity,java數據庫連接)

是Java數據庫連接技術的簡稱,提供連接各種常用數據庫的能力。

1.DriverManger類

    依據數據庫的不同,管理JDBC驅動

2.Connection 接口

    負責連接數據庫並擔任傳送數據的任務,如:連接數據庫,要有一個通道,那麼這個通道就是Connection。

3.Statement 接口

    由 Connection 產生、負責執行SQL語句,如:有了通道了,我開個車過去就是Statement,執行SQL語句。

4.ResultSet 接口

    負責保存Statement執行後所產生的查詢結果,如,開了車過去了,把東西拿回來,那個東西就是ResultSet。

 

JDBC的工作原理

 

 

JDBC API 主要功能:與數據庫建立連接、執行SQL語句、處理結果。

 

JDBC工作原理

1.加載JDBC驅動(Class.forName(驅動類))

2.連接數據庫(地址、帳號、密碼)Connection 

3.獲取到對象,執行SQL語句,返回結果。Statement

4.使用完了釋放對象 (.close)

 

下面進行代碼對數據庫的  增、查 、刪、改、crud

實例一代碼如下:(增加)

快捷鍵:快捷導入包:Ctrl + shift + O

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.Statement;
 6 //實例一:純Java代碼 連接數據庫
 7 public class star {
 8     public static void main(String[] args) {
 9         Connection conn = null;
10         Statement stmt = null;//聲明Statement變量
11         
12         String sql = "INSERT INTO star_studyone (id,name,sex,age) VALUES ('1', '星星', '男', '12');";
13         
14         //1.加載驅動
15         try {
16             Class.forName("com.mysql.jdbc.Driver");//加載驅動類
17         } catch (Exception e) {
18         }
19         
20         //2.獲得連接對象
21         try {
22             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/starstudy", "root", "123456");//連接到數據庫
23             System.out.println("連接成功!");
24         } catch (Exception e) {
25             
26         }
27         
28         //3.獲取到Statement對象
29         try {
30             stmt = conn.createStatement();//獲取到Statement對象
31             stmt.execute(sql);//Statemen對象執行 SQL語句
32         } catch (Exception e) {
33             
34         }
35         
36         //4.關閉對象
37         //先添加的對象後關閉,後添加的對象先關閉
38         try {
39             stmt.close();
40             conn.close();
41         } catch (Exception e) {
42         }
43     }
44 }

 

 

實例二代碼如下:(查詢)

 

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.Statement;
 4 import java.sql.ResultSet;
 5 
 6 //實例二:
 7 public class star {
 8     public static void main(String[] args) {
 9         Connection conn = null;
10         Statement stmt = null;//聲明Statement變量
11         ResultSet rs =null; 
12         
13         String sql = "SELECT *FROM star_studyone";
14         
15         try {
16             //加載驅動
17             Class.forName("com.mysql.jdbc.Driver");
18             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/starstudy","root", "123456");
19             stmt = conn.createStatement();
20             rs = stmt.executeQuery(sql);//返回查詢
21             
22             //遍歷rs 
23             //rs.next();指針下移 返回的是布爾值
24             
25             while (rs.next()) {
26                 //在MYSQL數據庫中索引從1開始
27 //                System.out.println(rs.getInt(1)+"\t");
28 //                System.out.println(rs.getString(2)+"\t");
29 //                System.out.println(rs.getString("sex")+"\t");
30 //                System.out.println(rs.getInt("age")+"\t");
31                 
32                 System.out.println(rs.getObject(1)+"\t");
33                 System.out.println(rs.getObject(2)+"\t");
34                 System.out.println(rs.getObject("sex")+"\t");
35                 System.out.println(rs.getObject("age")+"\t");
36                 
37             }
38             System.out.println("=============================");
39             
40         } catch (Exception e) {
41             
42         }finally{
43             //如果他是空,才可以關
44             try {
45                 if (null != rs) {
46                     rs.close();
47                 }
48                 if (null != stmt) {
49                     stmt.close();
50                 }
51                 if (null != conn) {
52                     conn.close();
53                 }
54                 
55             } catch (Exception e2) {
56                 
57             }            
58         }        
59     }
60 }

 

實例代碼三:(改、刪除)

 

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.Statement; 5 
 6 //實例三:
 7 public class star {
 8     public static void main(String[] args) {
 9         Connection conn = null;
10         Statement stmt = null;//聲明Statement變量
11         
12         //String sql = "UPDATE star_studyone SET name='星星哥哥' WHERE id = '5' ";//SQL改變語句
13         String sql = "DELETE FROM star_studyone WHERE id = '5' ";//SQL刪除語句
14         
15         try {
16             //加載驅動
17             Class.forName("com.mysql.jdbc.Driver");
18             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/starstudy","root", "123456");
19             stmt = conn.createStatement();
20             stmt.executeUpdate(sql);
21                 
22             System.out.println("=========成功連接=========");
23             
24         } catch (Exception e) {
25             
26         }finally{
27             //如果他是空,才可以關
28             try {
29                 if (null != stmt) {
30                     stmt.close();
31                 }
32                 if (null != conn) {
33                     conn.close();
34                 }
35                 
36             } catch (Exception e2) {
37                 
38             }            
39         }        
40     }
41 }

自己犯的錯誤總結:

1. 導包不要導錯。導這類的包  import java.sql.Connection;

2. String url = "jabc:mysql://主機名或地址:端口號/數據庫的名稱";
    如:
    String url = "jabc:mysql://localhost:3306/StarXiaoLi";

3. Class.forName("com.mysql.jdbc.Driver");  復制類名的時候不能有 .class 多出來

4. String sql = "INSERT INTO star_studyOne (id,name,sex,age) VALUES (1,'星星','男',12)";

    格式是這樣的,字符要有單引號,INSERT INTO 表名(這裡直接是屬性名字,沒有單引號的)VALUES (1,'星星','男',12)";

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved