Java数据库错误

时间:2012-03-13 14:43:41

标签: java mysql

我使用以下代码更新数据库中的记录。

import java.sql.* ;

class JDBCUpdate
{
 public static void main( String args[] )
 {
       String DB_URL = "jdbc:mysql://localhost/mydatabase";
  try
     {

      Class.forName( "com.mysql.jdbc.Driver" ) ;



   //  Database credentials
    String USER = "user";
    String PASS = "pass";

      // Get a connection to the database
       Connection  conn = DriverManager.getConnection(DB_URL, USER, PASS);


      // Print all warnings
      for( SQLWarning warn = conn.getWarnings(); warn != null; warn = warn.getNextWarning() )
         {
          System.out.println( "SQL Warning:" ) ;
          System.out.println( "State  : " + warn.getSQLState()  ) ;
          System.out.println( "Message: " + warn.getMessage()   ) ;
          System.out.println( "Error  : " + warn.getErrorCode() ) ;
         }

      // Get a statement from the connection
      Statement stmt = conn.createStatement() ;

      // Execute the Update
      int rows = stmt.executeUpdate( "UPDATE people SET id = 9842 WHERE birthyear=3434" ) ;

      // Print how many rows were modified
      System.out.println( rows + " Rows modified" ) ;

      // Close the statement and the connection
      stmt.close() ;
      conn.close() ;
     }
  catch( SQLException se )
     {
      System.out.println( "SQL Exception:" ) ;

      // Loop through the SQL Exceptions
      while( se != null )
         {
          System.out.println( "State  : " + se.getSQLState()  ) ;
          System.out.println( "Message: " + se.getMessage()   ) ;
          System.out.println( "Error  : " + se.getErrorCode() ) ;

          se = se.getNextException() ;
         }
     }
  catch( Exception e )
     {
      System.out.println( e ) ;
     }
 }
}

在stmt.executeUpdate()中,如果我尝试使用文本或除整数之外的任何值更新记录,则会引发错误。有人能告诉我如何克服这个错误。

1 个答案:

答案 0 :(得分:0)

  

如果我尝试使用text或any更新记录,请在stmt.executeUpdate()中   除整数之外的值会引发错误。有人能告诉我怎么做   克服这个错误。

现在,看看你的UPDATE语句:

UPDATE people SET id = 9842 WHERE birthyear=3434

我敢打赌是因为Id列是一个整数,因此在整数字段中设置文本会引发异常。