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

來源:互聯網
上載者:User

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)";

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.