1. 程式人生 > >Java連線Mysql基本語法

Java連線Mysql基本語法

Java連線Mysql基本語法


(1)簡介:

Mysql基本語法與當前市場上的各大主流的關係型資料庫差不多,如果你已經掌握SQL server或oracle資料庫,那Mysql的基本語法學習起來就非常輕鬆了;如果你掌握一門程式語言(C++、Java、Python)那Mysql的語法就是小巫見大巫了。本篇主要由淺入深的學習java中的JDBC(Java DataBase Connection)與Mysql的關聯與優化。


(2)JDBC與Mysql基礎

  • connect Mysql資料庫

// 註冊MySQL驅動 (可以省略這一步)

  Class.forName("com.mysql.jdbc.Driver");

// 連線MySQL伺服器

  String username= "root";

  String password = "a1b2c3";

 String connectionUrl = 
  "jdbc:mysql://127.0.0.1:3306/af_school?useUnicode=true&characterEncoding=UTF-8";

 Connection conn = DriverManager.getConnection(connectionUrl, username, password);

 System.out.println("連線成功!");

說明:jdbc:mysql://127.0.0.1:3306/af_school?useUnicode=true&characterEncoding=UTF-8

127.0.0.1host,伺服器地址

3306mysql預設埠號

af_school:指定的資料庫

useUnicode=true&characterEncoding=UTF-8字元編碼指定

 

  • sql操作

  1. select查詢
// 資料庫查詢, Statement語句  ResultSet結果集
Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery("SELECT * FROM student");   

//如果有資料,rs.next()返回true
while(rs.next())
 {

   // 取出這一行記錄

    int id = rs.getInt("id");

    String name = rs.getString("name");

    String phone = rs.getString("phone"); // 可能為null

    Date birthday = rs.getDate("birthday");

 }
  1. insert into 插入

        

//編寫sql語句
String sql = "INSERT INTO student(`id`,`name`,`birthday`) "

                   + "VALUES ('20181200', '韓', '1997-4-19') ";

   System.out.println("SQL: "+ sql);



//執行insert into sql語句
Statement stmt = conn.createStatement();//與資料庫互動

stmt.execute(sql);

int count = stmt.getUpdateCount();

System.out.println("受影響的行數為: " + count);
  1. update修改
//編寫sql語句
String sql = 
 "UPDATE student SET `name`=’沈’ , `birthday`=’1997-09-01’ WHERE `id` = 20180001 ";

System.out.println("SQL: "+ sql);


//執行UPDATE sql語句
Statement stmt = conn.createStatement(); //與資料庫互動

stmt.execute(sql);

int count = stmt.getUpdateCount();

System.out.println("受影響的行數為: " + count);

(3)關閉連線,釋放資源

         conn.Close();

         System.out.println(“關閉資料庫連線”);

  說明:這裡的conn就是前面①建立的conn

以上就是JDBC與MySQL最基本的連線、操作、關閉方法;接下來介紹預處理查詢的方法。


(4)預處理查詢

      

// 註冊MySQL驅動 (可以省略這一步)
Class.forName("com.mysql.jdbc.Driver"); 


// 連線MySQL伺服器
  String username= "root";

  String password = "a1b2c3";

 String connectionUrl =                                                                                                          
  "jdbc:mysql://127.0.0.1:3306/af_school?useUnicode=true&characterEncoding=UTF-8";

  Connection conn = DriverManager.getConnection(connectionUrl, username, password);

  System.out.println("連線成功!");

                  

  //預處理查詢
      // 1 構造一個SQL, 引數值用?號代替,稱為佔位符
      String sql = "INSERT INTO student (id,name,birthday) VALUES (?, ?, ?) ";

     // 2 建立 PreparedStatement 物件 ( 與MySQL產生一次互動 )
      PreparedStatement ptmt = conn.prepareStatement(sql);                   

     // 3 設定引數值
       ptmt.setInt(1, 20183001);

       ptmt.setString(2, "小新");     

       ptmt.setString(3, "1993-3-10");
                  
      // 4 執行查詢
       ptmt.execute();                


 //關閉連線釋放資源
   conn.close();

   System.out.println("關閉連線!");

說明:由以上程式碼可知,JDBC的預處理查詢的方法就是提前與資料庫進行互動(指定了SQL語句的模版),之後就可以進行多次的相同操作(這裡就是向資料庫中插入資料)而不用重複的與資料庫互動(conn.createStatement();)。

         為什麼要這樣做呢?

我們知道與資料庫進行互動相較與sql執行操作是很費時間的(不信可以用Calendar calendar=Calendar.getInstance();  long time=calendar.getTimeInMillis(); 來進行測試,不過前提是資料表中的資料不能太多上萬條以上…),於是當我們要進行相同的sql操作時當然選擇預處理查詢的方式應該更加有效。

注:並不是所有的資料庫都支援預處理查詢技術(MySQL是支援的),如果你所用的資料庫不支援,那麼用預處理查詢並不會報錯,而是會按照普通的方式來進行一次資料庫互動一次execute()。

 

       下接JDBC的拓展知識見https://blog.csdn.net/biggerchong/article/details/83831698

感謝您的學習!歡迎一起探討!