diff --git a/src/main/java/ua/net/uid/utils/db/Block.java b/src/main/java/ua/net/uid/utils/db/Block.java index e94b62a..cc61bee 100644 --- a/src/main/java/ua/net/uid/utils/db/Block.java +++ b/src/main/java/ua/net/uid/utils/db/Block.java @@ -15,8 +15,6 @@ */ package ua.net.uid.utils.db; -import java.sql.SQLException; - public interface Block { - void execute(Session db) throws SQLException; + void execute(Session db) throws Throwable; } diff --git a/src/main/java/ua/net/uid/utils/db/Database.java b/src/main/java/ua/net/uid/utils/db/Database.java index 89109f1..f22fa84 100644 --- a/src/main/java/ua/net/uid/utils/db/Database.java +++ b/src/main/java/ua/net/uid/utils/db/Database.java @@ -49,13 +49,13 @@ connector.release(connection); } - public void transaction(Solid tx) throws SQLException { + public void transaction(Solid tx) throws Throwable { Connection connection = null; try { connection = connection(); connection.setAutoCommit(false); tx.execute(new Transaction(connection)); - } catch (Exception ex) { + } catch (Throwable ex) { if (connection != null) connection.rollback(); throw ex; diff --git a/src/main/java/ua/net/uid/utils/db/Session.java b/src/main/java/ua/net/uid/utils/db/Session.java index eff6d5c..02f7ec6 100644 --- a/src/main/java/ua/net/uid/utils/db/Session.java +++ b/src/main/java/ua/net/uid/utils/db/Session.java @@ -31,7 +31,7 @@ return new Batch(this, query); } - public void block(Block block) throws SQLException { + public void block(Block block) throws Throwable { Connection connection = null; try { connection = connection(); diff --git a/src/main/java/ua/net/uid/utils/db/Solid.java b/src/main/java/ua/net/uid/utils/db/Solid.java index c76864d..e717994 100644 --- a/src/main/java/ua/net/uid/utils/db/Solid.java +++ b/src/main/java/ua/net/uid/utils/db/Solid.java @@ -15,8 +15,6 @@ */ package ua.net.uid.utils.db; -import java.sql.SQLException; - public interface Solid { - void execute(Transaction db) throws SQLException; + void execute(Transaction db) throws Throwable; } diff --git a/src/test/java/ua/net/uid/utils/db/DatabaseTest.java b/src/test/java/ua/net/uid/utils/db/DatabaseTest.java index 06afda0..ef46409 100644 --- a/src/test/java/ua/net/uid/utils/db/DatabaseTest.java +++ b/src/test/java/ua/net/uid/utils/db/DatabaseTest.java @@ -57,7 +57,7 @@ @SuppressWarnings("UnnecessaryBoxing") @Test - void blockTest() throws Exception { + void blockTest() throws Throwable { db.block(db -> { Connection connection = db.connection(); assertEquals(1, db.query("INSERT INTO \"test\" (\"name\") VALUES (?)", "Block").update()); @@ -70,7 +70,7 @@ @SuppressWarnings("UnnecessaryBoxing") @Test - void transactionManualRollbackTest() throws Exception { + void transactionManualRollbackTest() throws Throwable { db.transaction(pt -> { assertEquals(1, pt.query("INSERT INTO \"test\" (\"name\") VALUES (?)", "Transaction1").update()); assertEquals(1, pt.query("INSERT INTO \"test\" (\"name\") VALUES (?)", "Transaction1").update()); @@ -83,7 +83,7 @@ @SuppressWarnings("UnnecessaryBoxing") @Test - void transactionExceptionRollbackTest() throws Exception { + void transactionExceptionRollbackTest() throws Throwable { assertThrows(SQLException.class, () -> db.transaction(pt -> { assertEquals(1, pt.query("INSERT INTO \"test\" (\"name\") VALUES (?)", "Transaction2").update()); @@ -96,7 +96,7 @@ @SuppressWarnings("UnnecessaryBoxing") @Test - void transactionTest() throws Exception { + void transactionTest() throws Throwable { db.transaction(pt -> { assertEquals(1, pt.query("INSERT INTO \"test\" (\"name\") VALUES (?)", "Transaction3").update()); assertEquals(1, pt.query("INSERT INTO \"test\" (\"name\") VALUES (?)", "Transaction3").update()); @@ -108,7 +108,7 @@ @SuppressWarnings("UnnecessaryBoxing") @Test - void transactionCommitTest() throws Exception { + void transactionCommitTest() throws Throwable { db.transaction(pt -> { assertEquals(1, pt.query("INSERT INTO \"test\" (\"name\") VALUES (?)", "Transaction4").update()); assertEquals(Integer.valueOf(1), pt.query("SELECT COUNT(*) FROM \"test\" WHERE \"name\" = 'Transaction4'").select(Outcome.FIRST_INT)); diff --git a/src/test/java/ua/net/uid/utils/db/dao/DAOAbstractTest.java b/src/test/java/ua/net/uid/utils/db/dao/DAOAbstractTest.java index 9e64e47..f85c4a9 100644 --- a/src/test/java/ua/net/uid/utils/db/dao/DAOAbstractTest.java +++ b/src/test/java/ua/net/uid/utils/db/dao/DAOAbstractTest.java @@ -110,7 +110,7 @@ } @Test - void countAllInsertAndDelete() throws SQLException { + void countAllInsertAndDelete() throws Throwable { database().transaction((db -> { ItemDAO dao = new ItemDAO(database()); Item item; @@ -123,7 +123,7 @@ } @Test - void insertsAndFind() throws SQLException { + void insertsAndFind() throws Throwable { database().transaction((db) -> { ItemDAO dao = new ItemDAO(database()); for (int i = 0; i < 10; i++) {