import java.sql.*;public class PreStmt
{
public static void main(String args[])
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:taobao");
String sql = "insert into 123(a2,a3,a4) values('?','?','?')";
PreparedStatement stmt = conn.prepareStatement(sql);
conn.setAutoCommit(false);
stmt.setString(1,"abcdefg");
stmt.setString(2,"abcdefg");
stmt.setString(2,"abcdefg");
System.out.println(stmt);
stmt.execute(sql);
stmt.close();
conn.commit();
conn.close();
System.out.println("success");
}catch(Exception e){
e.printStackTrace();
}
}
}在Access中直接运行SQL语句insert into 123(a2,a3,a4) values('?','?','?')能够插入JAVA中报出
java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.clearParameter(JdbcOdbcPreparedStatement.java:1023)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setChar(JdbcOdbcPreparedStatement.java:3057)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setString(JdbcOdbcPreparedStatement.java:766)
at CsvtoDb.PreStmt.main(PreStmt.java:26)
百思不得其解。求高人。
{
public static void main(String args[])
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:taobao");
String sql = "insert into 123(a2,a3,a4) values('?','?','?')";
PreparedStatement stmt = conn.prepareStatement(sql);
conn.setAutoCommit(false);
stmt.setString(1,"abcdefg");
stmt.setString(2,"abcdefg");
stmt.setString(2,"abcdefg");
System.out.println(stmt);
stmt.execute(sql);
stmt.close();
conn.commit();
conn.close();
System.out.println("success");
}catch(Exception e){
e.printStackTrace();
}
}
}在Access中直接运行SQL语句insert into 123(a2,a3,a4) values('?','?','?')能够插入JAVA中报出
java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.clearParameter(JdbcOdbcPreparedStatement.java:1023)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setChar(JdbcOdbcPreparedStatement.java:3057)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setString(JdbcOdbcPreparedStatement.java:766)
at CsvtoDb.PreStmt.main(PreStmt.java:26)
百思不得其解。求高人。
conn.setAutoCommit(false);
stmt.setString(1,"abcdefg");
stmt.setString(2,"abcdefg");
stmt.setString(2,"abcdefg");
System.out.println(stmt);
stmt.execute(sql);
-》stmt.executeUpdate();
lz分析下root cause看看是你代码具体哪行就知道了,以后这样的错误就知道如何找了。
stmt.setString(2,"abcdefg");
stmt.setString(2,"abcdefg");
改成 stmt.setString(1,"abcdefg");
stmt.setString(2,"abcdefg");
stmt.setString(3,"abcdefg");
stmt.setString(2,"abcdefg");
stmt.setString(3,"abcdefg");还是一样出错。
运行到stmt.setString(1,"abcdefg");就报错停止了。
实在头大