Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java在ms access中插入值_Java_Database_Ms Access_User Interface_Sqlexception - Fatal编程技术网

如何使用java在ms access中插入值

如何使用java在ms access中插入值,java,database,ms-access,user-interface,sqlexception,Java,Database,Ms Access,User Interface,Sqlexception,由此产生的错误是: try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con1=DriverManager.getConnection("jdbc:odbc:MyDatabase"); st1=con1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); System.out.println("Conn

由此产生的错误是:

try 
{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    con1=DriverManager.getConnection("jdbc:odbc:MyDatabase");
    st1=con1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    System.out.println("Connect database in BallMoves1.java .......");
    /*the below line giving error*/
    rs1 = st1.executeQuery("insert into highscore" + " (score) " + "values('"+score+"')");
    System.out.println("Score is inserted..");
    System.out.println("Score......."+score);
}catch(Exception e){ e.printStackTrace();}

/*highscore is table and attributes of table are (sid,score).

您正在对非查询的内容调用
executeQuery
。但是,您不应该使用相同的SQL调用
execute
,而应该使用
PreparedStatement

Connect database in BallMoves1.java .......
java.sql.SQLException: No ResultSet was produced
    at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:258)
    at BallMoves1.move(BallMoves1.java:378)
    at BallMoves1.run(BallMoves1.java:223)
    at java.lang.Thread.run(Thread.java:744)*/
始终使用参数化SQL,而不是将值直接插入SQL,这样可以防止SQL注入攻击、转换错误和难以读取的代码

使用try with resources语句(正如我所做的那样)自动关闭块末尾的语句和连接。

错误是。。。?(您应该始终包含错误消息的详细信息。)此外,使用参数化SQL而不是将值直接放入SQL。。。请以后更仔细地格式化你的文章,用空格代替标签。
String sql = "insert into highscore (score) values (?)";
try (Connection conn = DriverManager.getConnection("jdbc:odbc:MyDatabase");
    PreparedStatement statement = conn.prepareStatement(sql)) {
  statement.setInt(1, score);
  statement.executeUpdate();
  conn.commit();
}