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.1:host,伺服器地址
3306:mysql預設埠號
af_school:指定的資料庫
useUnicode=true&characterEncoding=UTF-8:字元編碼指定
-
sql操作
- 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"); }
- 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);
- 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
感謝您的學習!歡迎一起探討!