jdbc行级对数据库进行增删改

jdbc行级对数据库进行增删改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package RowSet;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
import com.sun.rowset.CachedRowSetImpl;
/***
* 行级进行增删改
* @author HDC
*/
public class Test4 {
public static void main(String[] args) throws Exception {
//行级的使用
//1、导入行级jar包(包括jdbc驱动)
//2、填充行级数据(1.使用结果集填充行级2、直接使用行级连接数据库)
//注册驱动
Properties p = new Properties();
p.load(new FileInputStream("Ch4/RowSet/db.properties"));
Class.forName(p.getProperty("dirStr"));
Connection con = DriverManager.getConnection(p.getProperty("conStr"),p.getProperty("username"),p.getProperty("pwd"));
Statement stm = con.createStatement();
String sql = "select id,chinese,english,history from score";
ResultSet rs = stm.executeQuery(sql);
//使用结果集填充行级
CachedRowSetImpl rows = new CachedRowSetImpl();//创建一个
rows.populate(rs);//把结果集的数据复制到行级对象里面
//可以关闭数据库连接,还可以操作行级,但结果集不能操作了
//con.close();//增删改时不能关闭连接
con.setAutoCommit(false);//手动提交
//rs.next();
//遍历行级
while(rows.next()){
System.out.println(rows.getInt("id")+"\t"+rows.getInt("chinese")+"\t"+rows.getInt("english")+"\t"+rows.getInt("history"));
}
//行级删除数据
// rows.last();//定位到行级最后一位
// rows.deleteRow();
// rows.acceptChanges(con);//给行级设置一个可用的连接,并且这个连接是可用连接
//行级修改数据
// rows.last();
// rows.updateInt("chinese", 0);
// rows.updateInt("english", 1);
// rows.updateInt(4, 2);
// rows.updateRow();//同步到数据库中
// rows.acceptChanges(con);
//行级增加数据
rows.setTableName("score");//必须有 设置行级对象操作的是
rows.moveToInsertRow();//行级增加新行,并且把指针移动到这一行
rows.updateInt(1, 6);
rows.updateInt("chinese", 10);
rows.updateInt("english", 10);
rows.updateInt(4, 10);
rows.insertRow();
rows.moveToCurrentRow();//必须移回原来一行
rows.acceptChanges(con);
}
}