java处理sql的警告信息,javasql警告,在连接到数据库执行sql
分享于 点击 36740 次 点评:177
java处理sql的警告信息,javasql警告,在连接到数据库执行sql
在连接到数据库执行sql语句时,有时候会出现一些警告信息,在jdbc中可否读取到这些警告信息呢?肯定是可以的,如下代码:
package cn.outofmemory.snippets.core;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.SQLWarning;import java.sql.Statement;public class SQLWarning { public static void main(String[] args) { Connection connection = null; try { // Load the Oracle JDBC driver String driverName = "oracle.jdbc.driver.OracleDriver"; Class.forName(driverName); // Create a connection to the database String serverName = "localhost"; String serverPort = "1521"; String sid = "mySchema"; String url = "jdbc:oracle:thin:@" + serverName + ":" + serverPort + ":" + sid; String username = "username"; String password = "password"; connection = DriverManager.getConnection(url, username, password); System.out.println("Successfully Connected to the database!"); } catch (ClassNotFoundException e) { System.out.println("Could not find the database driver " + e.getMessage()); } catch (SQLException e) { System.out.println("Could not connect to the database " + e.getMessage()); } try { // Get warnings risen while connecting to the database SQLWarning connectionWarning = connection.getWarnings(); while (connectionWarning != null) { String warningMessage = connectionWarning.getMessage(); String warningSQLState = connectionWarning.getSQLState(); int warningErrorCode = connectionWarning.getErrorCode(); System.out.println("Connection warning : " + warningErrorCode +" Message : " + warningMessage + " SQL state " + warningSQLState); connectionWarning = connectionWarning.getNextWarning(); } // Create a statement Statement statement = connection.createStatement(); // Use the statement... // Get warnings risen while using the statement SQLWarning statementWarning = statement.getWarnings(); if (statementWarning != null) { String warningMessage = statementWarning.getMessage(); String warningSQLState = statementWarning.getSQLState(); int warningErrorCode = statementWarning.getErrorCode(); System.out.println("Statement warning : " + warningErrorCode +" Message : " + warningMessage + " SQL state " + warningSQLState); statementWarning = statementWarning.getNextWarning(); } // Get the result set from the statement ResultSet resultSet = statement.executeQuery("SELECT * FROM test_table"); while (resultSet.next()) { // Use result set ... // Get warnings on the current row of the result set SQLWarning resultsetWarning = resultSet.getWarnings(); if (resultsetWarning != null) { String warningMessage = resultsetWarning.getMessage(); String warningSQLState = resultsetWarning.getSQLState(); int warningErrorCode = resultsetWarning.getErrorCode(); System.out.println("Resultset warning : " + warningErrorCode +" Message : " + warningMessage + " SQL state " + warningSQLState); resultsetWarning = resultsetWarning.getNextWarning(); } } } catch (SQLException e) { } }}
输出:
Successfully Connected to the database!
用户点评