Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SuppressExceptionJDBC

Suppress all Exceptions from JDBC

データベースから返されるSQLExceptionが煩わしいと思ったことはありませんか?

このライブラリを使用すれば、たとえデータベースが落ちたとしても例外に煩わされることはありません。

使用方法

現在は個別にビルドを行う必要があります。mavenでビルドを行ってください。

mvn package

JDBC 4.2に対応していますので、jarをクラスパスに導入するだけで使用できます。 データソースを使用している場合はJDBC URLに sej を足してください。

jdbc:oracle:thin:scott/tiger@localhost:1521:XE

↓

jdbc:sej:oracle:thin:scott/tiger@localhost:1521:XE

もしくは既存のコネクションを直接ラップすることもできます。 Connectionインターフェースではなく、実装を直接扱うことでSQLExceptionクラスを見ることすらありません。

Connection conn = getConnection();
SEConnection sec = new SEConnection(conn);
SEPreparedStatement sepstmt = sec.prepareStatement("select * from employee");
SEResultSet sers = sepstmt.executeQuery();
while(sers.next()) {
	・・・・
}

制限事項

Connectionインターフェースをそのまま使用する場合はSQLExceptionが投げられなくてもSQLExceptionをハンドリングする必要があります。

このライブラリはいくつかの点でJDBC標準には準拠していません。ご注意ください。(例えば、ResultSet#next()を呼び出さずにResultSet#getString(int)を呼び出してもSQLExceptionはスローされない。)

SEDeriver#jdbcCompliant()は委譲先のドライバがJDBC仕様に準拠しているかどうかにかかわらずtrueを返します。SEDeriver#connect()が呼び出されるまで委譲先のドライバが不明なのと、このメソッド自体がSEDeriver#connect()より先にフレームワークから呼び出されることが多いのと、フレームワークによってはSEDeriver#jdbcCompliant()がfalseを返す場合に有効なJDBCドライバとして認識してくれないためです。

About

Suppress all Exceptions from JDBC

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages