Jdbc异常处理

时间:2017-01-13 12:01:06

标签: java log4j

我创建了下面的JDBC连接,现在使用下面的代码工作正常,我正在使用log4j,如果任何JDBC连接失败,我想在日志文件中记录,而不是在控制台中显示

public class projectDaoJdbcImpl implements projectDao {
static Logger logger = Logger.getLogger(projectDaoJdbcImpl.class);


@Override
public boolean updateproject(updateentity projectObj) throws Exception {
    FileInputStream fis = new FileInputStream("C:\\Users\\kdhandap\\database.properties");
    Properties props = new Properties();
    props.load(fis);
    String JDBC_DRIVER = props.getProperty("Driver");
    String USER = props.getProperty("Username");
    String PASS = props.getProperty("Password");
    String url = "jdbc:mysql://" + projectObj.getServerName() + ":3306/tablename";
    boolean result = false;
    Connection conn = null;
    PreparedStatement stmt = null;
    String sql = "UPDATE table SET columnname='" + projectObj.getFlagStatus()
            + "' WHERE projectID IN (" + projectObj.projectId() + ")";

    try {
        Class.forName(JDBC_DRIVER);
        conn = DriverManager.getConnection(url, USER, PASS);
        stmt = conn.prepareStatement(sql);
        if (stmt.executeUpdate() != 0) {
            result = true;
        }

    }

    catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SQLException se) {
        se.printStackTrace();
    }
    finally{
        stmt.close();
        conn.close();
    }
    return result;

}

尝试拥有logger.warn状态并在日志文件中捕获并且不确定在哪里处理它

1 个答案:

答案 0 :(得分:1)

您可以在 catch

中执行此操作
logger.warn("YourMessage",e);

将在日志文件中记录并打印stracktrace。

来自JavaDoc

  

在WARN级别记录CharSequence,包括作为参数传递的Throwable t的堆栈跟踪。

根据您的要求,您可以为其他级别执行此操作。