jdbc java數據庫連接 3)Statement接口之執行DDL、DML、DQL


 

|- Statement接口 用於執行靜態的sql語句

    |- int executeUpdate(String sql)   執行靜態的更新sql語句(DDLDML

    |- ResultSet executeQuery(String sql)  :執行的靜態的查詢sql語句(DQL

  |-PreparedStatement接口(Statement接口的子類):用於執行預編譯sql語句

      |- int executeUpdate() 執行預編譯的更新sql語句(DDLDML

      |-ResultSet executeQuery()   執行預編譯的查詢sql語句(DQL

 

 

  代碼:(用DDL語句中的創建來舉例,其他的DDL語句,除了發送的sql語句不一樣之外,都一樣)

  

 1 public class Statement_one {
 2 
 3     // 數據庫的信息
 4     // URL
 5     private static String url = "jdbc:mysql://localhost:3306/day1029";
 6     // 用戶名和密碼
 7     private static String user = "root";
 8     private static String password = "root";
 9 
10     // 執行DDL語句(創建表為例)
11     private static void DDL() {
12         // 為了在關閉連接,在這里創建對象
13         Connection conn = null;
14         Statement stsm = null;
15 
16         try {
17             // 創建驅動注冊對象
18             Class.forName("com.mysql.jdbc.Driver");
19 
20             // 獲取連接的數據庫對象
21             /* Connection */conn = DriverManager.getConnection(url, user,
22                     password);
23 
24             // 創建Statement對象
25             /* Statement */stsm = conn.createStatement();
26 
27             // 創建要執行的sql語句
28             String sql = "CREATE TABLE person(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(10),sex VARCHAR(5),age INT,psot VARCHAR(10),email VARCHAR(20),phone INT)";
29 
30             // 使用Statement發送該DDL語句,返回的時該sql語句所影響的行數,int類
31             int result = stsm.executeUpdate(sql);
32         } catch (Exception e) {
33             e.printStackTrace();
34         }
35         // 最后關閉連接(后開啟的先關閉)
36         finally {
37             if (stsm != null) {
38                 try {
39                     stsm.close();
40                 } catch (SQLException e) {
41                     // TODO Auto-generated catch block
42                     e.printStackTrace();
43                     throw new RuntimeException(e);
44                 }
45             }
46             if (conn != null) {
47                 try {
48                     conn.close();
49                 } catch (SQLException e) {
50                     // TODO Auto-generated catch block
51                     e.printStackTrace();
52                     throw new RuntimeException(e);
53                 }
54             }
55         }
56     }

 

 

  代碼:用DML的插入數據舉例

 1     private static void DML() {
 2 
 3         Connection conn = null;
 4         Statement stsm = null;
 5 
 6         try {
 7             // 創建驅動獲取對象
 8             Class.forName("com.mysql.jdbc.Driver");
 9 
10             // 獲取要連接的數據庫對象
11             conn = DriverManager.getConnection(url, user, password);
12 
13             // 創建Statement對象
14             stsm = conn.createStatement();
15 
16             // 准備要執行的sql語言
17             String sql = "INSERT INTO person (NAME,sex,age) VALUES ('小紅','女',20);";
18 
19             // 執行語句
20             stsm.executeUpdate(sql);
21         } catch (Exception e) {
22             e.printStackTrace();
23         } finally {
24 
25             if (stsm != null) {
26                 try {
27                     stsm.close();
28                 } catch (SQLException e) {
29                     // TODO Auto-generated catch block
30                     e.printStackTrace();
31                     throw new RuntimeException(e);
32                 }
33             }
34             if (conn != null) {
35                 try {
36                     conn.close();
37                 } catch (SQLException e) {
38                     // TODO Auto-generated catch block
39                     e.printStackTrace();
40                     throw new RuntimeException(e);
41                 }
42             }
43 
44         }
45 
46     }

 

  代價:執行DQL

 1 //DQL(查詢數據)
 2     private static void DQL() {
 3         Connection conn = null;
 4         Statement stsm = null;
 5         
 6     try{    
 7         //創建驅動獲取對象
 8         Class.forName("com.mysql.jdbc.Driver");
 9         
10         //創建要連接的數據庫對象
11         conn = DriverManager.getConnection(url, user, password);
12 
13         //創建Statement對象
14         stsm = conn.createStatement();
15         
16         //准備sql語言
17         String sql = "SELECT * FROM person;";
18         
19         //執行sql語言
20         //返回的是ResultSet,表示數據庫結果集的數據表
21         ResultSet rs = stsm.executeQuery(sql);
22         
23         //打印一行數據,例:打印第二行的數據 24         
25         //一:移動光標到第二行,具體看API的ResultSet
26         rs.next();
27         rs.next();
28         //根據列名查詢
29         int id = rs.getInt("id");
30         String name = rs.getString("name");
31         String sex = rs.getString("sex");
32         //打印
33         System.out.println(id+","+name+","+sex);
34         
35         
36         //二:打印所有數據,利用迭代。具體查看API的ResultSet
37     /*    while(rs.next()){
38             //通過列名來查詢,列名的英文字母不分大小寫
39             int id = rs.getInt("id");
40             String name = rs.getString("name");
41             String sex = rs.getString("sex");
42             System.out.println(id+","+name+","+sex);
43             
44         }*/
45         
46     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM