JDBC—基於Mysql的基本操作

一、 JDBC訪問數據庫基本步驟:

在這裏插入圖片描述
1、查詢:

package jdbc1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.management.RuntimeErrorException;
import com.mysql.cj.jdbc.Driver;

public class JDBC1 {
	public static void main(String[] args) {
		Connection con = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			// 1、註冊並加載驅動
			//Driver driver = new Driver();
			//DriverManager.registerDriver(driver);//這種註冊方式會註冊兩次,推薦使用下面那種
			Class.forName("com.mysql.cj.jdbc.Driver");
			// 2、獲取連接對象
			String url = "jdbc:mysql://127.0.0.1:3306/student";
			String user = "root";
			String password = "";
			con = DriverManager.getConnection(url, user, password);
			// 3、獲取操作數據庫的對象
			stmt = con.createStatement();
			// 4、向數據庫發送查詢語句
			String sql = "select * from student ";
			rs = stmt.executeQuery(sql);
			// 5、遍歷結果集,獲取查詢對象
			while (rs.next()) {// 遍歷一行後,纔會跳轉到下一行
				int sno = rs.getInt("sno");//
				String sname = rs.getString(2);// 和上一行不同的寫法
				String sex = rs.getString(3);
				System.out.println(sno + " " + "" + sname + " " + sex);
			}
		} catch (Exception e) {
			throw new RuntimeException(e);
		} finally {

			// 6.關閉連接,釋放資源
			if (rs != null) {
				try {
					rs.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			if (stmt != null) {
				try {
					stmt.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			if (con != null) {
				try {
					con.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}

	}
}

2、更新:

package jdbc1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JDBC1 {
	public static void main(String[] args) {
		Connection con = null;
		Statement stmt = null;
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			// 2、獲取連接對象
			String url = "jdbc:mysql://127.0.0.1:3306/student";
			String user = "root";
			String password = "";
			con = DriverManager.getConnection(url, user, password);
			// 3、獲取操作數據庫的對象
			stmt = con.createStatement();
			// 3.創建SQL語句
			String sql = "insert into student values(121530601,'張三','女',16,6)";
			// 4. 執行SQL語句
			int row = stmt.executeUpdate(sql);
			System.out.println(row);
		} catch (Exception e) {
		} finally {
			// 5. 釋放資源
			if (stmt != null) {
				try {
					stmt.close();
				} catch (Exception e) {
					e.printStackTrace(); // 打印異常
				}
			}
			if (con != null) {
				try {
					con.close();
				} catch (Exception e) {
					e.printStackTrace(); // 打印異常
				}
			}

		}
	}
}

二、ResultSet更新數據

  • ResultSet是否滾動
    在這裏插入圖片描述
  • ResultSet是否可更新
    在這裏插入圖片描述
  • 查詢學號爲121530602的學生的基本信息輸出後修改其姓名:
String sql = "select * from student where sno=121530602";
			rs = stmt.executeQuery(sql);
			// 5、遍歷結果集,獲取查詢對象
			System.out.println("學              號"+"\t\t"+"姓名"+"\t\t"+"性別"+"\t\t"+"年齡"+"\t\t"+"班級");
			while (rs.next()) {// 遍歷一行後,纔會跳轉到下一行
				int sno = rs.getInt("sno");//
				String sname = rs.getString(2);// 和上一行不同的寫法
				String sex = rs.getString(3);
				String age = rs.getString(4);
				String Class = rs.getString(5);
				System.out.println(sno + "" + "\t\t" + sname + "\t\t" + sex+"\t\t"+age+"\t\t"+Class);
			}
			rs.absolute(1); 
			rs.updateString("sname","趙四"); 
			rs.updateRow(); //將當更新保存到數據庫
  • 輸出所有學生的所有信息,然後添加一名新學生:
	// 4、向數據庫發送查詢語句
			String sql = "select * from student";
			rs = stmt.executeQuery(sql);
			// 5、遍歷結果集,獲取查詢對象
			System.out.println("學              號"+"\t\t"+"姓名"+"\t\t"+"性別"+"\t\t"+"年齡"+"\t\t"+"班級");
			while (rs.next()) {// 遍歷一行後,纔會跳轉到下一行
				int sno = rs.getInt("sno");//
				String sname = rs.getString(2);// 和上一行不同的寫法
				String sex = rs.getString(3);
				String age = rs.getString(4);
				String Class = rs.getString(5);
				System.out.println(sno + "" + "\t\t" + sname + "\t\t" + sex+"\t\t"+age+"\t\t"+Class);
			}
			rs.moveToInsertRow(); //指定遊標到那一行;不寫則按主鍵排序。
			   rs.updateString("sno","121530605");  
			   rs.updateString("sname","老八");  
			   rs.updateString("sex","男" );  
			   rs.updateInt("age", 26); 
			   rs.updateInt("Class",8);                 
			   rs.insertRow();

三、預編譯語句實現數據更新**

  • 添加數據:
PreparedStatement pStmt = con.prepareStatement("insert  into student (name,pwd,email) values(?,?,?)");
pStmt.setString(1,"dream");
pStmt.setString(2,"111");
pStmt.setString(3, "[email protected]");
int rtn= pStmt.executeUpdate();
  • 修改數據:
PreparedStatement pStmt = con.prepareStatement("update student set pwd=?,email=? where name=?");
pStmt.setString(1,“222");
pStmt.setString(2,“[email protected]");
pStmt.setString(3,“dream");
int rtn= pStmt.executeUpdate();
  • 刪除數據:
PreparedStatement pStmt = con.prepareStatement("delete  from student where name=?");
pStmt.setString(1,"dream");
int rtn= pStmt.executeUpdate();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章