ResultSet

1.      ResultSet光标控制

(1)    建立Statement或者PreparedStatement时,使用的是Connection的无参数的createStatement方法,如此以来,执行sql获得的ResultSet,将只能使用next方法逐条获得查询结果。

(2)    在建立Statement对象时指定resultSetType,可选参数有ResultSet.TYPE_FORWARD_ONLYResultSet.TYPE_SCROLL_INSENSITIVE ResultSet.TYPE_SCROLL_SENSITIV。默认是ResultSet.TYPE_FORWARD_ONLY,,也就是只能使用next()方法来逐条获得记录,指定第二个或第三个时,则可以使用ResultSetafterLast()previous()absolute()relative()等方法来移动以获得记录。TYPE_SCROLL_INSENSITIVETYPE_SCROLL_SENSITIVE的差别,在于能否获得ResultSet改变值后的数据。

(3)    另外必须指定resultSetConcurrency,有ResultSet.CONCUR_READ_ONLYResultSet.CONCUR_UPDATABLE两个参数可以设置,前者表示只能读取 ResultSet的数据,后者表示可以直接使用ResultSet来操作数据库,而不用通过sql语句的执行.默认为ResultSet.CONCUR_READ_ONLY

2.      ResultSet增加、修改、删除数据

(1)    增加某行数据

AmoveToInsertRow(),记录当前游标位置,将游标移动到插入行

B、使用updateXXXcolumn, value)方法来更新指定列数据。

C、使用insertRow()方法插入记录。

D、将游标指回原位,moveToCurrentRow()

    (2)修改某行数据

          A absolute(int row),将游标移动到指定行。

B、使用updateXXXcolumn, value)方法来更新指定列数据。

C、使用updateRow()方法更新指定的行。

(3)删除某行数据

       A absolute(int row),将游标移动到指定行。

B、使用deleteRow()方法删除记录。

String sql = "select * from mytable";
Class.forName ("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection ("jdbc:mysql://127.0.0.1:3306/test","root","root");
Statement st = conn.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = st.executeQuery (sql);
		//-----start update one row information-----
		rs.absolute (6);
		rs.updateString ("PASSWORD","pwd6");
		rs.updateRow ();
		//-----end update one row information-----
		//-----start insert one row information-----
		rs.moveToInsertRow ();
		rs.updateString ("name","yy7");
		rs.updateString ("password","pwd7");
		rs.insertRow ();
		//-----end insert one row information-----
		//-----start delete one row information-----
		rs.last ();
		rs.deleteRow ();
		//-----end delete one row information-----
		rs.absolute (1);
		//移动到开头位置
		rs.previous ();
		while (rs.next ()){
			System.out.println (rs.getInt ("no")+"  "+rs.getString("name")+"  "+rs.getString("password"));
		}
		rs.close ();
		st.close ();
	conn.close ();


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值