代码如下:
public static void main( String[] args ) throws ClassNotFoundException, 
                        SQLException, InstantiationException, IllegalAccessException{
Class.forName( "com.mysql.jdbc.Driver" );
Connection c = 
             DriverManager.getConnection( "jdbc:mysql://localhost/test", "cgh", "cgh" );
System.out.println( c );
PreparedStatement ps = 
             c.prepareStatement("select next from hibernate_unique_key");
                                     //这里出现空指针错误!}如果使用Statement s = c.createStatement();则没有问题?很是郁闷,不知道哪里的原因,敬请指教。。

解决方案 »

  1.   

    异常如下;
    Exception in thread "main" java.lang.NullPointerException
    at com.mysql.jdbc.PreparedStatement.asSql(PreparedStatement.java:562)
    at com.mysql.jdbc.PreparedStatement.asSql(PreparedStatement.java:504)
    at com.mysql.jdbc.PreparedStatement.toString(PreparedStatement.java:3228)
    at java.lang.String.valueOf(Unknown Source)
    at java.lang.StringBuffer.append(Unknown Source)
    at com.mysql.jdbc.trace.Tracer.printParameters(Tracer.aj:240)
    at com.mysql.jdbc.trace.Tracer.printEntering(Tracer.aj:167)
    at com.mysql.jdbc.trace.Tracer.entry(Tracer.aj:126)
    at com.mysql.jdbc.trace.Tracer.ajc$before$com_mysql_jdbc_trace_Tracer$1$f51c62b8(Tracer.aj:45)
    at com.mysql.jdbc.Connection.registerStatement(Connection.java)
    at com.mysql.jdbc.Statement.<init>(Statement.java:190)
    at com.mysql.jdbc.PreparedStatement.<init>(PreparedStatement.java:429)
    at com.mysql.jdbc.ServerPreparedStatement.asSql(ServerPreparedStatement.java:338)
    at com.mysql.jdbc.PreparedStatement.asSql(PreparedStatement.java:504)
    at com.mysql.jdbc.ServerPreparedStatement.toString(ServerPreparedStatement.java:2226)
    at java.lang.String.valueOf(Unknown Source)
    at java.lang.StringBuffer.append(Unknown Source)
    at com.mysql.jdbc.trace.Tracer.printParameters(Tracer.aj:240)
    at com.mysql.jdbc.trace.Tracer.printEntering(Tracer.aj:167)
    at com.mysql.jdbc.trace.Tracer.entry(Tracer.aj:126)
    at com.mysql.jdbc.trace.Tracer.ajc$before$com_mysql_jdbc_trace_Tracer$1$f51c62b8(Tracer.aj:45)
    at com.mysql.jdbc.Connection.registerStatement(Connection.java)
    at com.mysql.jdbc.Statement.<init>(Statement.java:190)
    at com.mysql.jdbc.PreparedStatement.<init>(PreparedStatement.java:411)
    at com.mysql.jdbc.ServerPreparedStatement.<init>(ServerPreparedStatement.java:275)
    at com.mysql.jdbc.Connection.prepareStatement(Connection.java:4245)
    at com.mysql.jdbc.Connection.prepareStatement(Connection.java:4185)
    at StatementTest.main(StatementTest.java:25)
      

  2.   

    一般来讲,用PrepareStatement的是 Update,delete的操作,select操作用Statement