利用JDBC連線MySQL資料庫並實現增刪改查的程式碼示例
一、實現增刪改:
比較簡單:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Demo2 {
/*
* 1.連線資料庫
* 2。對資料庫做增刪改
*/
public static void main(String[] args) throws ClassNotFoundException, SQLException{
/*
* 一、得到Connection
* 1.準備四大引數
* 2.準備四大引數
* 3.得到Connection
*/
//準備四大引數
String driverClassName = "com.mysql.jdbc.Driver";
//jdbc協議的格式!jdbc:廠商的名稱:子協議(由廠商自己來規定)
//對mysql而言,它的子協議結構://主機:埠號/資料庫名稱
String url = "jdbc:mysql://localhost:3306/mydb1";
String username = "root";
String password = "12345678";
//載入驅動類
Class.forName(driverClassName);
//使用DriverManager,以及剩下的3個引數,得到Connection
Connection con = DriverManager.getConnection(url,username,password);
/*
* 對資料庫做增、刪、改
* 1.通過Connection物件建立Statement
* > Statement語句的傳送器,他的功能就是向資料庫傳送sql語句!
* 2.呼叫他的int executeUpdate(String sql),它可以傳送DML、DDL
*
*/
//1.通過Connection得到Statement物件
Statement stmt = con.createStatement();
//2.使用Statement傳送sql語句!
// String sql = "INSERT INTO student VALUES('7','學生7')";
// String sql = "UPDATE student SET sname='學生666' where sid='6'";
String sql = "SET FOREIGN_KEY_CHECKS = 0";
int r1 = stmt.executeUpdate(sql);
sql = "DELETE FROM student";
int r = stmt.executeUpdate(sql);
System.out.println(r);
}
}
二、執行查詢,比增刪改多一步對查詢結果的解析:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Demo2_1 {
/*
* 執行查詢
*/
/*
* 一、得到Connecion
* 二、得到Statement,傳送select語句
* 三、對查詢返回的“表哥”進行解析!
*/
public static void main(String[] args) throws ClassNotFoundException, SQLException{
/*
* 一、得到連線
* 1.準備四大連線引數
*/
String driverClassName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/mydb3";
String username = "root";
String password = "12345678";
/*
* 2.載入驅動類
*/
Class.forName(driverClassName);
/*
* 通過剩下的三個引數呼叫DriverManager的getconnection(),得到連線
*/
Connection con = DriverManager.getConnection(url,username,password);
/*
* 二、得到Statement,執行select語句
* 1.得到Statment物件:Connection的createStatement()方法
*/
Statement stmt = con.createStatement();
/*
* 2.呼叫Statement的ResultSet rs = executeQuery(String querySQL)
*/
ResultSet rs = stmt.executeQuery("select * from emp");
/*
* 三、解析ResultSet
* 1.把游標移動到第一行,可以呼叫next()方法完成!
*/
while(rs.next()){//把游標向下移動一行,並判斷下一行是否存在!
int empno = rs.getInt(1);//通過列編號來獲取該列的值
String ename = rs.getString("ename");//通過列名稱來獲取該列的值
double sal = rs.getDouble("sal");
System.out.println(empno + "," + ename + "," + sal);
}
/*
* 四、關閉資源
* 倒關(先得到的物件後關閉,後得到的物件先關閉)
*/
rs.close();
stmt.close();
con.close();//必須關閉,不關就死-->軟病
}
}