① 向資料庫發送SQL查詢語句 首先使用Statement聲明一個SQL語句對象,然後讓已創建的連接對象con調用方法createStatement()創建SQL語句對象。 Statement sql = con.createStatement(); Connection con = null; S ...
① 向資料庫發送SQL查詢語句
首先使用Statement聲明一個SQL語句對象,然後讓已創建的連接對象con調用方法createStatement()創建SQL語句對象。
Statement sql = con.createStatement(); |
Connection con = null; String DBname = "jdb"; //資料庫名字 String url = "jdbc:mysql://localhost:3306/"+DBname+"?useSSL=true&characterEncoding=utf-8"; String username = "root";//資料庫賬號 String password = "root";//資料庫密碼 Statement sql = null; try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection(url, username, password);//連接代碼 sql = con.createStatement(); } catch (Exception e) { // TODO: handle exception System.out.println(e); } |
② 處理查詢結果
有了SQL語句對象後,可以調用相應的方法實現對資料庫中表的查詢和修改,並將結果放在一個ResultSet類聲明的對象中。換句話說,SQL查詢語句對資料庫的查詢操作將返回一個ResultSet對象,ResultSet對象由按"列"(欄位)組織的數據行構成。
ResultSet rs = sql.executeQuery("SELECT * FROM students");//查詢student表中的數據 |
Connection con = null; String DBname = "jdb"; //資料庫名字 String url = "jdbc:mysql://localhost:3306/"+DBname+"?useSSL=true&characterEncoding=utf-8"; String username = "root";//資料庫賬號 String password = "root";//資料庫密碼 Statement sql = null; ResultSet rs = null; try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection(url, username, password);//連接代碼 sql = con.createStatement(); rs = sql.executeQuery("SELECT * FROM students");//查詢student表中的數據 } catch (Exception e) { // TODO: handle exception System.out.println(e); } |
ResultSet對象的方法
NO. |
方法名稱 |
類型 |
描述 |
01 |
public boolean next()throws SQLException |
普通 |
將游標從當前位置向前移一行 |
02 |
public byte getByte(int columnIndex)throws SQLException |
普通 |
以byte的形式獲取當前行中指定列的值 |
03 |
public Date getDate(int columnIndex)throws SQLException |
普通 |
以java.sql.Date對象的形式獲取當前行中指定列的值 |
04 |
public double getDouble(int columnIndex)throws SQLException |
普通 |
以double的形式獲取此 當前行中指定列的值 |
05 |
public float getFloat(int columnIndex)throws SQLException |
普通 |
以float的形式獲取當前行中指定列的值 |
06 |
public int getInt(int columnIndex)throws SQLException |
普通 |
以int的形式獲取當前行中指定列的值 |
07 |
public long getLong(int columnIndex)throws SQLException |
普通 |
以long的形式獲取當前行中指定列的值 |
08 |
public String getString(int columnIndex)throws SQLException |
普通 |
以String的形式獲取當前行中指定列的值 |
09 |
public byte getByte(String columnName)throws SQLException |
普通 |
以byte的形式獲取當前行中指定列的值 |
10 |
public Date getDate(String columnName)throws SQLException |
普通 |
以java.sql.Date對象的形式獲取當前行中指定列的值 |
11 |
public double getDouble(String columnName)throws SQLException |
普通 |
以double的形式獲取此 當前行中指定列的值 |
12 |
public float getFloat(String columnName)throws SQLException |
普通 |
以float的形式獲取當前行中指定列的值 |
13 |
public int getInt(String columnName)throws SQLException |
普通 |
以int的形式獲取當前行中指定列的值 |
14 |
public long getLong(String columnName)throws SQLException |
普通 |
以long的形式獲取當前行中指定列的值 |
15 |
public String getString(String columnName)throws SQLException |
普通 |
以String的形式獲取當前行中指定列的值 |
說明:
無論欄位是何種屬性;都可以使用getString方法返回欄位值的串表示
③ 關閉連接
con.close(); |
註:使用ResultSet對象中的數據時,必須始終保持資料庫的連接,直到應用程式將ResultSet對象中的數據查看完畢。如果在rs之後立即關閉連接,那麼程式將無法獲取rs中的數據。
範例:控制statement對象游標
方法:public Statement createStatement(int resultSetType,int resultSetConcurrency) throws SQLException
//獲取Statement對象 Statement stmt = con.createStatement(int type,int concurrency); //返回結果集 ResultSet rs = stmt.executeQuery(SQL語句); resultSetType - 結果集類型, resultSetType:ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE 或 ResultSet.TYPE_SCROLL_SENSITIVE resultSetConcurrency:ResultSet.CONCUR_READ_ONLY 或 ResultSet.CONCUR_UPDATABLE |
ResulSet常用方法
NO. |
方法名稱 |
類型 |
描述 |
01 |
public void beforeFirst()throws SQLException |
普通 |
將游標移動到開頭,位於第一行之前 |
02 |
public void afterLast()throws SQLException |
普通 |
將游標移動到末尾,位於最後一行之後 |
03 |
public boolean first()throws SQLException |
普通 |
將游標移動到第一行 |
04 |
public boolean last()throws SQLException |
普通 |
將游標移動到最後一行 |
05 |
public boolean isBeforeFirst()throws SQLException |
普通 |
獲取游標是否位於第一行之前 |
06 |
public boolean isAfterLast()throws SQLException |
普通 |
獲取游標是否位於最後一行之後 |
07 |
public boolean isFirst()throws SQLException |
普通 |
獲取游標是否位於第一行 |
08 |
public boolean isLast()throws SQLException |
普通 |
獲取游標是否位於最後一行。調用 isLast 方法可能開銷很大 |
09 |
public int getRow()throws SQLException |
普通 |
獲取當前行編號 |
10 |
public boolean absolute(int row)throws SQLException |
普通 |
將游標移動到此 ResultSet 對象的給定行編號 |
註:如果row取負值,就是倒數的行數,absolute(-1)表示移到最後一行,absolute(-2)表示倒數第二行。