Java第十九章-資料庫操作
阿新 • • 發佈:2020-02-06
緒論
//資料庫系統是由資料庫、資料庫管理系統、應用系統、資料庫管理員構成的。
連線資料庫
//通過建立的getConnection()方法,獲取與MySQL資料庫的連線。 package 資料庫操作; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; public class Conn { //宣告Connection物件 Connection conn; public Connection getConnection() { //載入資料庫驅動類 try { Class.forName("com.myaql.jbdc.Driver"); System.out.println("資料庫載入成功"); } catch (ClassNotFoundException e) { e.printStackTrace(); } //通過訪問資料庫的URL,獲取資料庫連線物件 try { conn = DriverManager.getConnection("jdbc.mysql:" + "//127.0.0.1:3306/test","root","123456"); System.out.println("資料庫連線成功"); } catch (SQLException e) { e.printStackTrace(); } return conn; } public static void main(String args[]) { Conn c = new Conn(); c.getConnection(); } }
順序查詢
//將資料表中的資料檢索出來,儲存在遍歷查詢結果集ResultSet中,並遍歷該結果集 package 資料庫操作; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; public class Gradation { //宣告Connection類物件 static Connection con; //宣告Statement類物件 static Statement sql; //宣告ResultSet類物件 static ResultSet res; public Connection getConnection() { //載入資料庫驅動類 try { Class.forName("com.myaql.jbdc.Driver"); System.out.println("資料庫載入成功"); } catch (ClassNotFoundException e) { e.printStackTrace(); } //通過訪問資料庫的URL,獲取資料庫連線物件 try { con = DriverManager.getConnection("jdbc.mysql:" + "//127.0.0.1:3306/test","123456"); System.out.println("資料庫連線成功"); } catch (SQLException e) { e.printStackTrace(); } return con; } public static void main(String args[]) { //建立本類物件 Gradation c = new Gradation(); //與資料連線 con = c.getConnection(); try { //例項化Statement物件 sql = con.createStatement(); //執行SQL語句,返回結果值 res = sql.executeQuery("select","from tb_stu"); //如果當前語句不是最後一條,進入迴圈 while (res.next()) { //獲取列名是id的欄位值 String id = res.getString("id"); //獲取列名是name的欄位值 String name = res.getString("name"); //獲取列名是sex的欄位值 String sex = res.getString("sex"); //獲取列名是birthday的欄位名 String birthday = res.getString("birthday"); //將列值輸出 System.out.println("編號:" + id); System.out.println("姓名" + name); System.out.println("性別:" + sex); System.out.println("生日:" + birthday); } } catch (Exception e) { e.printStackTrace(); } } }
模糊查詢
//將姓張的同學資訊檢索出來 package 資料庫操作; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; public class Train { //宣告Connection類物件 static Connection con; //宣告Statement類物件 static Statement sql; //宣告ResultSet類物件 static ResultSet res; public Connection getConnection() { //載入資料庫驅動類 try { Class.forName("com.myaql.jbdc.Driver"); System.out.println("資料庫載入成功"); } catch (ClassNotFoundException e) { e.printStackTrace(); } //通過訪問資料庫的URL,獲取資料庫連線物件 try { con = DriverManager.getConnection("jdbc.mysql:" + "//127.0.0.1:3306/test","123456"); System.out.println("資料庫連線成功"); } catch (SQLException e) { e.printStackTrace(); } return con; } public static void main(String args[]) { //建立本類物件 Train c = new Train(); //與資料連線 con = c.getConnection(); try { //例項化Statement物件 sql = con.createStatement(); //執行SQL語句,返回結果值 res = sql.executeQuery("select","from tb_stu where" + "name like '張%'"); //如果當前語句不是最後一條,進入迴圈 while (res.next()) { //獲取列名是id的欄位值 String id = res.getString("id"); //獲取列名是name的欄位值 String name = res.getString("name"); //獲取列名是sex的欄位值 String sex = res.getString("sex"); //獲取列名是birthday的欄位名 String birthday = res.getString("birthday"); //將列值輸出 System.out.println("編號:" + id); System.out.println("姓名" + name); System.out.println("性別:" + sex); System.out.println("生日:" + birthday); } } catch (Exception e) { e.printStackTrace(); } } }
預處理語句
//使用預處理語句可以使應用程式更容易的動態改變SQL語句中關於欄位值條件的設定
package 資料庫操作;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class Prep {
//宣告各類物件
static Connection con;
static PreparedStatement sql;
static ResultSet res;
//與資料庫連線的方法
public Connection getConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql:" +
"//127.0.0.1:3306/test","123456");
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
public static void main(String args[]) {
//建立本類物件
Prep c = new Prep();
//獲取與資料庫的連線
con = c.getConnection();
try {
//例項化與處理物件
sql = con.prepareStatement("select * from table_name " +
" where id = ?");
//設定引數
sql.setInt(1,19);
//執行預處理語句
res = sql.executeQuery();
//如果當前記錄不是聚合集中的最後一行,則進入迴圈體
while (res.next()) {
//獲取結果列中第一列的值
String id = res.getString(1);
//獲取name、sex、birthday的列值
String name = res.getString("name");
String sex = res.getString("sex");
String birthday = res.getString("birthday");
//輸出資訊
System.out.println("編號:" + id);
System.out.println("姓名:" + name);
System.out.println("性別:" + sex);
System.out.println("生日:" + birthday);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
新增、修改、刪除記錄
//完成以上功能可以通過PreparedStatement類得指定參宿動態的資料表種的元素進行修改,並通過executeUpdate()方法執行更新後的語句
package 資料庫操作;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class Renewal {
//宣告各類物件
static Connection con;
static PreparedStatement sql;
static ResultSet res;
//與資料庫連線的方法
public Connection getConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql:" +
"//127.0.0.1:3306/test","123456");
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
public static void main(String args[]) {
//例項化本類物件
Renewal c = new Renewal();
//呼叫連線資料庫的方法
con = c.getConnection();
try {
//查詢資料庫
sql = con.prepareStatement("select * from tb_stu");
//執行SQL語句
res = sql.executeQuery();
System.out.println("執行新增、修改、刪除操作之前的資料");
while (res.next()) {
String id = res.getString("1");
String name = res.getString("name");
String sex = res.getString("sex");
String birthday = res.getString("birthday");
System.out.println("編號:" + id);
System.out.println("姓名:" + name);
System.out.println("性別:" + sex);
System.out.println("生日:" + birthday);
}
//預處理新增資料
sql = con.prepareStatement("insert into tb_stu" + "values(?,?,?)");
sql.setString(1,"張一");
sql.setString(2,"女");
sql.setString(3,"2012-12-1");
sql.executeUpdate();
//更新資料資訊
sql = con.prepareStatement("update tb_stu birthday" +
"=? where id = (select min(id) from tb_stu)");
sql.setString(1,"2012-12-02");
sql.executeUpdate();
//刪除資料
sql.executeUpdate("delete from tb_stu where id = " +
"(select min(id)from tb_stu)");
sql.setInt(1,1);
sql.executeUpdate();
//查詢修改資料後tb_stu表中的資料
sql = con.prepareStatement("select * from tb_stu");
//執行SQL語句
res = sql.executeQuery();
System.out.println("執行增加、修改、刪除後的資料");
while (res.next()) {
String id = res.getString("1");
String name = res.getString("name");
String sex = res.getString("sex");
String birthday = res.getString("birthday");
System.out.println("編號:" + id);
System.out.println("姓名:" + name);
System.out.println("性別:" + sex);
System.out.println("生日:" + birthday);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}