import java.sql.*;public class TestSQL{
public static void main(String args[]){
try{
Class.forName("com.mysql.jdbc.Driver");//驱动的名称
Connection c = DriverManager.getConnection("jdbc:mysql://localhost/justin?user=root&password=root");//访问的数据库的帐号密码
Statement s = c.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet r = s.executeQuery("select name, birDay from justin");//执行SQL语句
r.absolute(2);
r.updateString("name", "BaoBao");
r.updateRow();
while(r.next()){
System.out.println(r.getString("name"));//返回的结果
}
s.close();
}catch(Exception e){
e.printStackTrace();
} //捕获异常
}
} 在Eclipse环境下,运行出错:
com.mysql.jdbc.NotUpdatable: Result Set not updatable.This result set must come from a statement that was created with a result set type of ResultSet.CONCUR_UPDATABLE, the query must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.可是我已经在createStatement加了ResultSet.CONCUR_UPDATABLE字段了阿?
我的jar包是:mysql-connector-java-3.0.9-stable-bin.jar
public static void main(String args[]){
try{
Class.forName("com.mysql.jdbc.Driver");//驱动的名称
Connection c = DriverManager.getConnection("jdbc:mysql://localhost/justin?user=root&password=root");//访问的数据库的帐号密码
Statement s = c.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet r = s.executeQuery("select name, birDay from justin");//执行SQL语句
r.absolute(2);
r.updateString("name", "BaoBao");
r.updateRow();
while(r.next()){
System.out.println(r.getString("name"));//返回的结果
}
s.close();
}catch(Exception e){
e.printStackTrace();
} //捕获异常
}
} 在Eclipse环境下,运行出错:
com.mysql.jdbc.NotUpdatable: Result Set not updatable.This result set must come from a statement that was created with a result set type of ResultSet.CONCUR_UPDATABLE, the query must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.可是我已经在createStatement加了ResultSet.CONCUR_UPDATABLE字段了阿?
我的jar包是:mysql-connector-java-3.0.9-stable-bin.jar
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/justin?","root","123456");
//3306端口號,justin 数据库名称 ,root 用户,123456 密码
其实我原本的连接没问题,就是加了这行代码出了问题:
r.absolute(2);
r.updateString("name", "BaoBao");
r.updateRow();
按照楼上的意思我把连接改了:Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/justin?", "user=root", "password=root");
但出了新问题:Invalid authorization specification, message from server: "Access denied for user 'user=root'@'localhost' (using password: YES)"但我的密码明明是root阿?怎么会是YES呢?
第一步:更新连接驱动。
第二步:建立的数据库表一定要设置一个主键。
然后就没问题了,哈哈...
import java.sql.*;public class TestSQL{
public static void main(String args[]){
try{
Class.forName("com.mysql.jdbc.Driver");//驱动的名称
Connection c = DriverManager.getConnection("jdbc:mysql://localhost/avril?user=root&password=root");//访问的数据库的帐号密码
Statement s = c.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet r = s.executeQuery("select name, birDay from avril");//执行SQL语句
while(r.next()){
System.out.println( r.getString("name"));//返回的结果
}
r.absolute(2);
r.updateString("name", "Love");
r.updateRow();
r = s.executeQuery("select name, birDay from avril");
System.out.println("");
while(r.next()){
System.out.println( r.getString("name"));//返回的结果
}
s.close();
}catch(Exception e){
e.printStackTrace();
} //捕获异常
}
}运行结果:
Bao
LaogongBao
Love