1. ResultSet細節1
功能:封鎖結果集數據
操作:如何獲得(取出)結果
package com.sjx.a; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import org.junit.Test; //1. next方法,向下移動並判斷是否有內容 //2. getXXX方法,根據列索引或列名獲得列的內容 public class Demo { @Test public void fun1() throws Exception{ //1 注冊驅動 Class.forName("com.mysql.jdbc.Driver"); //2 獲得連接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day05", "root", "1234"); //3 創建Statement Statement st = conn.createStatement(); //4 書寫sql String sql = "select * from t_user" ; //5 執行sql ResultSet rs = st.executeQuery(sql); //向下移動一行,並判斷 while(rs.next()){ //有數據 //取數據:getXXX int id = rs.getInt(1);//獲得第一列的值 //int id rs.getInt("id");// 獲得id列的值 String name = rs.getString(2);//獲得第二列的值 int age = rs.getInt(3);//獲得第三列的值 System.out.println(id+"==>"+name+"==>"+age); //rs.gettimestamp(columnIndex) } //6關閉資源 st.close(); conn.close(); } /* 數據庫類型 java類型 int int double double decimal double char String varchar String datetime Date timestamp Timestamp/Date */ }
2.ResultSet細節2
- 結果集的滾動-->移動結果集的指針就是滾動
- 結果集反向修改數據庫
package com.sjx.a; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;
import org.junit.Test; public class Demo2 { @Test public void fun1() throws Exception{ //1 注冊驅動 Class.forName("com.mysql.jdbc.Driver"); //2 獲得連接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day05", "root", "1234"); //3 創建Statement Statement st = conn.createStatement(); //4 書寫sql String sql = "select * from t_user" ; //5 執行sql ResultSet rs = st.executeQuery(sql); //倒着遍歷 //1> 光標移動到最后一行之后 rs.afterLast(); //2> 遍歷=> while(rs.previous()){//向上移動光標,並判斷是否有數據 int id = rs.getInt("id");// 獲得id列的值 String name = rs.getString("name");//獲得第二列的值 int age = rs.getInt("age");//獲得第三列的值 System.out.println(id+"==>"+name+"==>"+age); } //6關閉資源 st.close(); conn.close(); } /* 數據庫類型 java類型 int int double double decimal double char String varchar String datetime Date timestamp Timestamp/Date */ }
3.使用ResultSet修改記錄
package com.sjx.a; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import org.junit.Test; //ResultSet細節 // 2.結果集反向修改數據庫 public class Demo3 { @Test public void fun1() throws Exception{ //1 注冊驅動 Class.forName("com.mysql.jdbc.Driver"); //2 獲得連接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day05", "root", "1234"); //3 創建Statement Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); //4 書寫sql String sql = "select * from t_user" ; //5 執行sql ResultSet rs = st.executeQuery(sql); //使用結果集 反向修改數據庫 rs.next();//將光標移動到第一行 rs.updateString("name", "湯姆");// 修改第一行name列的值為中文湯姆 rs.updateRow();// 確認修改 //6關閉資源 st.close(); conn.close(); } }