0

我正在调用下面的方法,需要通过存储过程将记录插入到表中。

在我的本地机器上,更新总是有效的。在服务器更新停止后插入一个

记录。它不打印任何异常。

我的方法

public void executeTableUpdate(String sql) throws Exception {
    StatelessSession session = null;
    try {
        session = getSessionFactory().openStatelessSession();
        session.beginTransaction();
        int result = session.createSQLQuery(sql).executeUpdate();
    } catch (Exception ex) {
        e.getMessage();
    } finally {
        if (session != null) {
            try {
                session.getTransaction().commit();
                session.close();                    
            } catch (Exception exception) {
             exception.getMessage();
            }
        }
    }
}

传递的 SQL 是

调用 SP_UPDATE_STATUS(NOW(),'value1',NOW(),'value1',1,'summary',)

4

1 回答 1

0

当然你看不到任何异常,因为你只是忽略它们:

e.getMessage();

这不是你处理异常的方式。

快速解决方法是:

e.printStackTrace();
  1. 更好的解决方案是使用日志框架(Logback 或 Lof4j)
  2. 每次调用此方法时打开一个会话根本没有效率
  3. 对于要部署在服务器上的代码(使用 Java EE、Spring 或编写自己的拦截器来处理此任务),不应手动打开/关闭事务
于 2014-07-15T06:08:19.960 回答