在JDBC警告的帮助下修正数据库
来源:互联网 发布:qq刷钻软件 编辑:程序博客网 时间:2024/06/07 05:07
<script type="text/javascript">google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//</script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>当数据库运行不正常却又没有报错和警告时,该查查Java数据库连接(JDBC)警告信息。这些警告能帮助我们找到未知的错误,修正费解的缺陷和调整数据库。 有三种提供JDBC警告的类:java.sql.Statement,java.sql.Connection,java.sql.ResultSet。这三种类都有getWarnings()方法返回SQLWaring对象。该对象是SQLException的扩展,它以与SQLException封装错误信息集相同的方式封装了警告信息集。很容易打印出SQLWaring信息:package com.generationjava.sql;import java.sql.SQLWarning;public final class JdbcW {static public void printWarnings(SQLWarning warning) {if(warning == null) {return;}System.err.println( formatWarnings(warning) );}static public String formatWarnings(SQLWarning warning) {StringBuffer buffer = new StringBuffer();while(warning != null) {buffer.append("SQLWarning: ");buffer.append( warning.getMessage() );buffer.append("/nSQL State: ");buffer.append( warning.getSQLState( ));buffer.append("/nErrorCode: ");buffer.append( warning.getErrorCode( ));buffer.append("/n");warning = warning.getNextWarning();}return buffer.toString();}} 下面是如何使用这个类:Connection connection = ....;JdbcW.printWarnings(connection.getWarnings());Statement stmt = connection.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM Users");JdbcW.printWarnings(stmt.getWarnings());JdbcW.printWarnings(rs.getWarnings()); 最后,使用Apache Jakarta[http://jakarta.apache.org/log4j/docs/index.html]项目的Log4J包,能把数据库警告信息传递给数据库管理员。