Java JDBC 數據庫連接小結隨筆

 

Java JDBC 數據庫連接小結隨筆java

1、連接數據庫的步驟mysql

2、 關於Statement  和  PrepareStatement 二者區別 用法sql

3、關於 ResultSet 的一些小結數據庫

4、自定義工具類的封裝數組

5、一些異常的解釋服務器

 

1、連接數據庫的步驟ide

  •  註冊驅動
  •  得到連接對象
  •  建立sql容器
  •  執行sql語句
  •  查詢操做
  •  關閉資源: 

  

 1 package demo1;
 2 
 3 import java.sql.*;
 4 
 5 public class demo1 {
 6     public static void main(String[] args) {
 7         try {
 8             Class.forName("com.mysql.cj.jdbc.Driver");
 9             String url="jdbc:mysql://127.0.0.1:3306/jdbc?serverTimezone=UTC";
10             /*目前手動改變 sql 服務器 時區報錯問題*/
11             String username="root";
12             String password="root";
13             /*  com.mysql.cj.jdbc.Driver   */
14 
15             Connection con= DriverManager.getConnection(url,username,password);
16             System.out.println(con);
17             Statement stmt = con.createStatement();
18             ResultSet rs = stmt.executeQuery("select * from test");
19             while (rs.next()){
20                 int id=rs.getInt("id");
21                 String name=rs.getString(2);
22                 System.out.println("id:"+id+"-"+"name:"+name);
23             }
24 
25         }
26         catch (ClassNotFoundException e){
27             e.printStackTrace();
28         }
29         catch (SQLException e){
30             e.printStackTrace();
31         }
32     }
33 }
View Code

 

 

2、 關於Statement  和  PrepareStatement 二者區別 用法工具

    PrepareStatement 繼承自 Statement 接口  擁有Statement 中的方法url

    execute()
   executeQuery()
   executeUpdate()

 

 1 package demo1;
 2 
 3 import Util.connectionUtil;
 4 
 5 import java.sql.*;
 6 
 7 public class TestDemo {
 8     /*
 9     * 1. prepareStatement   Statement 區別
10     *
11     *   1)prepareStatement繼承自 statement
12     *           prepareStatement{  execute、 executeQuery 和 executeUpdate 已被更改以使之再也不須要參數}
13 
14     * 2.   接口用法
15 
16     * */
17 
18     public static void main(String[] args) {
19 
20         //直接使用 Util 包下自定義的 連接數據庫方法
21             Connection con=connectionUtil.getConnections("jdbc");
22             Statement stmt=null;
23             PreparedStatement ps=null;
24 
25             ResultSet resultSet=null;
26             ResultSet rs=null;
27 
28             String selectSql="select * from test";
29             try {
30                 stmt=con.createStatement();
31                 resultSet=stmt.executeQuery(selectSql);
32 
33 
34             System.out.println("Statement 接口:");
35             while (resultSet.next()){
36                 int id=resultSet.getInt("id");
37                 String name=resultSet.getString("name");
38                 System.out.println("id:"+id+"---"+"name:"+name);
39             }
40 
41 
42             System.out.println("PrepareStatement 接口:");
43 
44 
45             /* PrepareStatement */
46             ps=con.prepareStatement(selectSql);
47             rs=ps.executeQuery();
48             while (rs.next()){
49                 int id=rs.getInt("id");
50                 String name=rs.getString("name");
51                 System.out.println("id:"+id+"---"+"name:"+name);
52             }
53 
54 
55         } catch (SQLException e) {
56             e.printStackTrace();
57         }
58         finally {
59             if(con!=null){
60                 try {
61                     con.close();
62                 } catch (SQLException e) {
63                     e.printStackTrace();
64                 }
65             }
66         }
67     }
68 }
View Code

 

 

 

基本能用PrepareStatement 就不用 Statement    儘可能避開   ‘1’ or "1"="1"    1的狀況spa

 也會比 Statement 更靈活  

   execute()   executeQuery()  executeUpdate()    這三個方法也不須要用參數  直接調用

   例:

      PrepareStatement>

       String sql="select * from test where id= ?";

        PreparedStatement ps=con.prepareStatement(sql);
        ps.setInt(1,1)  

      /* ? 至關於 佔位符
         setInt(index,value); 來給佔位符設置值
         
set數據類型(index,value);
      */
      

      ----------------------------------------------------------
      Statement>
        stmt=con.createStatement();
resultSet=stmt.executeQuery(selectSql);
 

  

3、關於 ResultSet 的一些小結

     ResultSet  結果集   接收一個二維的數組集

     關於ResultSet 的一些方法

        

boolean next()              將光標從當前位置向前移一行。
String  getString(int columnIndex)     獲取此ResultSet對象的當前行中指定列的值
String  getString(String columnLabel)    獲取此ResultSet對象的當前行中指定列的值

4、自定義工具類的封裝

   

5、一些異常的解釋

 

 上述內容爲 自學筆記  可自行參考

相關文章
相關標籤/搜索