一、資料庫的基本操作
1.SQL陳述句四大類:
- (1)資料查詢/操縱/定義/控制語言(DQL/DML/DDL/DCL)
- (2)增刪改查CRUD
2.查詢資料
- 利用Statement實體通過執行靜態SELECT陳述句完成,也可以利用PreparedStatement實體通過執行SELECT陳述句進行完成,還可以利用CallableStatement實體通過執行存盤程序來完成,
- (1)利用Statement實體通過執行靜態SELECT陳述句查詢的代碼示例:
String sql = "select * from tb_record where sec=?";
Statement stmt = con.createStatement();
PreparedStatement pstmt = con.preparedStatement(sql);
CallableStatement cstmt = con.prepareCall("(CALL demoSp(?,?))");
- (2)利用PreaparedStatement實體通過執行動態SELECT陳述句查詢資料的代碼如下:
String sql = "select * from tb_record where sec=?";
PreparedStatement prpdStmt = connection.prepareStatement(sql);
prpdStmt.setString(1,"男");
ResultSet rs = prpdStmt.executeQuery();
- (3) 利用CallableStatement實體通過執行存盤程序查詢資料的代碼示例如下:
String call = "(call pro_record_select_by_sex(?))";
CallableStatement cablStmt = connection.prepareCall(call);
calStmt.setString(1,"男");
ResultSet rs = cablStmt.executeQuery();
- 無論使用哪種方式,都需要執行executeQuery()方法,這時才是真正開始執行Select陳述句,
package com.bjpowernode.java_learning;
import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class D135_1_SelectExercise {
private static final String URL = "jdbc:Access:///e:/xsgl.mdb";
static {
try {
Class.forName("com.hxtt.sql.access.AccessDriver");
}catch(ClassNotFoundException e) {
e.printStackTrace();//捕獲未找到該類的例外資訊
}
}
public static void main(String[] args) {
try {
Connection conn = DriverManager.getConnection(URL);
Statement stmt = conn.createStatement();
String sql = "select * from studentInfo"; //定義靜態的SELECT陳述句
ResultSet rs = stmt.executeQuery(sql); //執行靜態的SELECT陳述句
while(rs.next()) {
//遍歷結果集,通過next()方法可以判斷是否還存在符合條件的記錄
int id = rs.getInt(1); //通過列索引獲得指定列的值
String name = re.getString(2);
String sec = rs.getString(3);
System.out.println(id + " " + name + " " + sex);
}
stmt.close();
conn.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
}
- 上面使用了Statement實體執行了靜態SELECT陳述句,下面我們使用PreparedStatment實體執行動態SELECT陳述句查詢記錄
package com.bjpowernode.java_learning;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
public class D135_2_PreparedStatementSQL {
private static final String URL = "jdbc:Access:///e:/xsgl.mdb";
static {
try {
Class.forName("com.hxtt.sql.access.AccessDriver");
}catch(ClassNotFoundException e) {
e.printStackTrace(); //輸出捕獲到例外資訊
}
}
public static void main(String[] args) {
try {
Connection conn = DriverManager.getConnection(URL);
Statement stmt = conn.createStatement(sql);
String sql = "select * from studentInfo"; //定義靜態Select陳述句
PreparedStatement prpdStmt = conn.preparedStatement(sql); //預處理動態INSERT陳述句
ResultSet rs = prpdStmt.executeQuery(); //執行動態INSERT陳述句
ResultSetMetaData metaData = https://www.cnblogs.com/ruigege0000/p/rs.getMetaData(); //獲得ResultSetMetaData類的實體
System.out.println(metaData.getColumnName(1) + " ");//通過索引獲得指定列的名稱
System.out.println(metaData.getColumnName(2) + " ");
System.out.println(meatData.getColumnName(3) + " ");
while(rs.next()) {
int id = rs.getInt(1); //通過索引獲得指定列的值
String name = rs.getString(2);
String sex = rs.getString(3);
System.out.println(id + " " + name + " " + sex);
}
rs.close();
prpdStmt.close();
conn.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
}
二、原始碼:
- D135_1_SelectExercise.java
- D135_2_PreparedStatementSQL.java
- https://github.com/ruigege66/Java/blob/master/D135_1_SelectExercise.java
- https://github.com/ruigege66/Java/blob/master/D135_2_PreparedStatementSQL.java
- CSDN:https://blog.csdn.net/weixin_44630050
- 博客園:https://www.cnblogs.com/ruigege0000/
- 歡迎關注微信公眾號:傅里葉變換,個人賬號,僅用于技術交流

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/67401.html
標籤:Java
