服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

在jdbc警告的帮助下修正数据库


  在jdbc警告的帮助下修正数据库

当数据库运行不正常却又没有报错和警告时,该查查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包,能把数据库警告信息传递给数据库管理员。

扫描关注微信公众号