簡單的MySQL資料庫demo
阿新 • • 發佈:2020-11-24
- A:DML(增刪改)語句的簡單Demo
Statement statement = null; Connection conn = null; try { //1 匯入驅動jar包 //2 註冊驅動 Class.forName("com.mysql.jdbc.Driver"); //3 獲取資料庫連線物件 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bocai", "root","root"); //4 定義sql語句 String sql = "update user set username = '菠菜飯糰' where id = 3"; //獲取執行sql的物件 statement = conn.createStatement(); int i = statement.executeUpdate(sql); } catch (Exception e) { e.printStackTrace(); }finally { //釋放資源 if(statement!=null){ try { statement.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if(conn!=null){ try { conn.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } }
- 資料庫物件
- 1.DriverManager:管理 JDBC 驅動程式的服務物件。
- 2.Connection :資料庫連線物件
- 3.Statement: 執行
靜態
SQL 語句物件,會導致SQL注入
。-
int executeUpdate(String sql): 執行DML語句(增刪改),DDL語句(與資料庫和表相關,不常用),返回值為該條sql語句執行後影響的行數
-
ResultSet executeQuery(String sql) : 執行DQL語句(查詢語句),返回值為一個結果集物件
-
- 4.ResultSet:資料庫結果集物件(資料表),具有一個當前資料行的游標,可
- 5.PreparedStatement
動態
)
Class.forName("com.mysql.jdbc.Driver")
中是通過靜態程式碼塊註冊驅動的,原始碼如下:
public class Driver extends NonRegisteringDriver implements java.sql.Driver { public Driver() throws SQLException { } //靜態程式碼塊在類載入時呼叫,並且只調用一次。 static { try { DriverManager.registerDriver(new Driver()); } catch (SQLException var1) { throw new RuntimeException("Can't register driver!"); } } }
驅動jar包5.0版本後可以不寫Class.forName("com.mysql.jdbc.Driver");
jar包已經寫在檔案中
- A:DQL(查詢)語句的簡單Demo
{
Statement statement = null;
Connection conn = null;
ResultSet rs = null;
try {
//1 匯入驅動jar包
//2 註冊驅動
Class.forName("com.mysql.jdbc.Driver");
//3 獲取資料庫連線物件
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bocai", "root","root");
//4 定義sql語句
String sql = "select * from user";
//獲取執行sql的物件
statement = conn.createStatement();
rs = statement.executeQuery(sql);
//判斷結果集是否有資料
while(rs.next()){
int id = rs.getInt("id");
String username = rs.getString("username");
String password = rs.getString("password");
System.out.println(id+"---"+username+"---"+password);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
//釋放資源
if(rs!=null){
try {
rs.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(statement!=null){
try {
statement.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
查詢結果如下