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 に答える