我使用以下代码更新数据库中的记录。
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()中,如果我尝试使用文本或除整数之外的任何值更新记录,则会引发错误。有人能告诉我如何克服这个错误。
答案 0 :(得分:0)
如果我尝试使用text或any更新记录,请在stmt.executeUpdate()中 除整数之外的值会引发错误。有人能告诉我怎么做 克服这个错误。
现在,看看你的UPDATE语句:
UPDATE people SET id = 9842 WHERE birthyear=3434
我敢打赌是因为Id
列是一个整数,因此在整数字段中设置文本会引发异常。