默认打开的ResultSet是不可更新的,如果想要创建可以更新的文件可以在Statement或者PreparedStatement中传入额外的参数,
resultSetType :
ResultSet.TYPE_SCROLL_INSENSITIVE 控制指针自由的移动,但底层数据的修改不会赢下ResultSet内容
ResultSet.TYPE_SCROLL_SENSITIVE 控制指针自由的移动,但底层数据的修改会赢下ResultSet内容
resultSetConcurrency :
ResultSet.CONCUR_UPDATABLE 可更新的并发模式
ResultSet.CONCUR——READ——ONLY 只读的并发模式
package LoginFrame;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class CallableStatementTedy {
private String driver;
private String url;
private String username;
private String password;
Connection connection;
PreparedStatement preparedStatement;
ResultSet resultSet;
public CallableStatementTedy() {
this.driver = "com.mysql.cj.jdbc.Driver";
this.url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=GMT";
this.username = "root";
this.password = "123456";
}
// 数据库添加 ALTER TABLE student_table ADD PRIMARY KEY (name)
public void Query(String sql) throws Exception {
Class.forName(driver);
connection= DriverManager.getConnection(this.url,this.username,this.password);
preparedStatement = connection.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
resultSet=preparedStatement.executeQuery();
resultSet.last();
int rowCount=resultSet.getRow();
for(int i=rowCount;i>0;i--){
resultSet.absolute(i);
System.out.println(resultSet.getString(1)+"\t"
+resultSet.getString(2)+"\t"+"学生名"+i);
resultSet.updateString(2,"学生名"+);
resultSet.updateRow();
}
if (resultSet != null) {
resultSet.close();
}
if (preparedStatement != null) {
preparedStatement.close();
}
if (connection != null) {
connection.close();
}
}
}
public class testdemo
{
public static void main(String[] args) throws Exception{
CallableStatementTedy demo =new CallableStatementTedy();
demo.Query("select * from student_table");
}
}