私は現在、次の問題に直面しています。
XMLデータを解析してデータベースに配置するJavaプログラムを作成しました。私はMyBatisを使用しているので、データベースは既存のほぼすべてのデータベースである可能性があります。コードの一部を示してから、問題について説明します。
public void insert(SourceContent content){
SqlSession session = sqlSessionFactory.openSession();
try {
session.insert("SourceDocument.insert", content);
session.commit();
} catch (Exception e){
e.printStackTrace();
} finally {
session.close();
}
}
これは、MyBatisマッパーファイルのSQLステートメントを呼び出すための私のDAOクラスです。MyBatisのマッピング構成が正しく行われていれば、コンテンツ(Java Beanのインスタンス)の挿入は問題ありません。しかし、データベース内のテーブルの名前を変更すると、構成が間違っているために接続が失敗することを想像してみてください。今、私は次のエラーをキャッチしたいと思います。上記のようなステートメントを使用する場合:
catch (Exception e){
e.printStackTrace();
}
プログラムは正しい例外を出力します:###原因:java.sql.SQLSyntaxErrorException:ORA-00942:Tabelle oder View nicht vorhandenしかし、すべての例外をキャッチしたくはありません。SQLSyntaxErrorExceptionをキャッチしたいだけです。ユーザー、データベース内の彼のテーブルが利用できないこと。しかし、上記のような通常の例外を除いて、他の例外をキャッチすることはできません。はっきりとわかっていたらいいのにと思います。誰か助けてくれませんか?