From 3b1870d2faf2eca53a812754633fe27c8ea48f82 Mon Sep 17 00:00:00 2001 From: nishihe0325 Date: Tue, 15 Apr 2014 10:06:59 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0finally=20{destroy();},?= =?UTF-8?q?=E7=A1=AE=E4=BF=9D=E5=9C=A8=E6=B5=8B=E8=AF=95=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=90=8E=E5=AF=B9=E7=8E=B0=E5=9C=BA=E7=9A=84=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- framework/org.tinygroup.vfs/pom.xml | 95 ++++++++++--------- .../tinygroup/vfs/impl/FtpFileObjectTest.java | 56 +++++++---- 2 files changed, 84 insertions(+), 67 deletions(-) diff --git a/framework/org.tinygroup.vfs/pom.xml b/framework/org.tinygroup.vfs/pom.xml index 3c6aca2b3..9135e7836 100644 --- a/framework/org.tinygroup.vfs/pom.xml +++ b/framework/org.tinygroup.vfs/pom.xml @@ -1,48 +1,49 @@ - 4.0.0 - - org.tinygroup - framework - 1.1.0-SNAPSHOT - - org.tinygroup.vfs - org.tinygroup.vfs - http://maven.apache.org - - UTF-8 - - - - org.tinygroup - org.tinygroup.exception - ${project.version} - - - commons-net - commons-net - 2.0 - - - org.tinygroup - org.tinygroup.vfs - ${project.version} - - - commons-net - commons-net - 3.3 - - - junit - junit - 3.8.1 - test - - - org.apache.ftpserver - ftpserver-core - 1.0.6 - test - - - + 4.0.0 + + org.tinygroup + framework + 1.1.0-SNAPSHOT + + org.tinygroup.vfs + + + org.tinygroup + org.tinygroup.exception + ${project.version} + + + commons-net + commons-net + 2.0 + + + commons-net + commons-net + 3.3 + + + junit + junit + 3.8.1 + test + + + org.apache.ftpserver + ftpserver-core + 1.0.6 + test + + + org.slf4j + slf4j-api + + + + + org.slf4j + slf4j-api + 1.6.6 + + + \ No newline at end of file diff --git a/framework/org.tinygroup.vfs/src/test/java/org/tinygroup/vfs/impl/FtpFileObjectTest.java b/framework/org.tinygroup.vfs/src/test/java/org/tinygroup/vfs/impl/FtpFileObjectTest.java index 037d268f5..edbf94585 100644 --- a/framework/org.tinygroup.vfs/src/test/java/org/tinygroup/vfs/impl/FtpFileObjectTest.java +++ b/framework/org.tinygroup.vfs/src/test/java/org/tinygroup/vfs/impl/FtpFileObjectTest.java @@ -53,24 +53,23 @@ public class FtpFileObjectTest extends TestCase { protected void tearDown() throws Exception { super.tearDown(); - if (ftpServer != null) { - ftpServer.stop(); // 停止服务器 - System.out.println("停止服务器成功"); - } - deleteFile(rootDir); // 清理文件,文件夹 } - public static void main(String[] args) throws Exception { - init(); // 初始化ftp服务器 - - FtpFileObjectTest ftpFileObjectTest = new FtpFileObjectTest(); - ftpFileObjectTest.fileTest(); - ftpFileObjectTest.folderTest(); - ftpFileObjectTest.folderTest2(); - ftpFileObjectTest.folderTest3(); + public static void main(String[] args) { + try { + init(); // 初始化 + + FtpFileObjectTest test = new FtpFileObjectTest(); + test.fileTest(); + test.folderTest(); + test.folderTest2(); + test.folderTest3(); + } catch (Exception e) { + throw new RuntimeException("测试失败", e); + } finally { + destroy(); + } - System.out.println("ftp服务器对应目录删除成功"); - deleteFile(rootDir); // 清理文件,文件夹 } private static void init() throws Exception { @@ -96,18 +95,25 @@ public class FtpFileObjectTest extends TestCase { ftpServer.start(); // 启动服务器 System.out.println("ftp服务器启动成功,服务器根路径:" + rootDir); } catch (FtpException e) { - deleteFile(rootDir); // 清理文件,文件夹 throw new RuntimeException("ftp服务器启动失败", e); } - } - public void test() throws Exception { - // init(); // 初始化ftp服务器 + inited = true; + } + public void test() { + // try { + // init(); + // // fileTest(); // folderTest(); // folderTest2(); // folderTest3(); + // } catch (Exception e) { + // throw new RuntimeException("测试失败", e); + // } finally { + // destroy(); + // } } private void fileTest() throws Exception { @@ -305,6 +311,7 @@ public class FtpFileObjectTest extends TestCase { try { fos.close(); } catch (IOException e) { + throw new RuntimeException("内容写入文件失败", e); } } if (pw != null) { @@ -363,8 +370,17 @@ public class FtpFileObjectTest extends TestCase { deleteFile(pathname + "/" + fileList[i]); } } - System.out.println(file.getAbsolutePath() + ",删除成功"); file.delete(); } + private static void destroy() { + if (ftpServer != null) { + ftpServer.stop(); // 停止服务器 + System.out.println("停止服务器成功"); + } + deleteFile(rootDir); // 清理文件,文件夹 + System.out.println("ftp服务器对应目录删除成功"); + System.out.println("测试现场处理完成"); + } + } -- Gitee From 88b71c5e5e7f92c9147feaa49791a908e3ffc6b5 Mon Sep 17 00:00:00 2001 From: nishihe0325 Date: Tue, 15 Apr 2014 10:44:16 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=B0=86=E6=B8=85=E7=90=86=E7=8E=B0?= =?UTF-8?q?=E5=9C=BA=E7=9A=84destroy=E6=96=B9=E6=B3=95=E6=94=BE=E5=88=B0fi?= =?UTF-8?q?nally=E5=9D=97=E4=B8=AD=EF=BC=8C=E7=A1=AE=E4=BF=9D=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E6=83=85=E5=86=B5=E4=B8=8B=E7=8E=B0=E5=9C=BA=E7=9A=84?= =?UTF-8?q?=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dbrouterjdbc3/jdbc/PrimarySlaveTest.java | 14 ++++++-------- .../jdbc/ShardModeDiffSchemaTest.java | 16 +++++++--------- .../jdbc/ShardModeSameSchemaTest.java | 11 ++++++----- 3 files changed, 19 insertions(+), 22 deletions(-) diff --git a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/PrimarySlaveTest.java b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/PrimarySlaveTest.java index a26aa7c27..c2754cfe6 100644 --- a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/PrimarySlaveTest.java +++ b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/PrimarySlaveTest.java @@ -53,12 +53,10 @@ public class PrimarySlaveTest extends TestCase { protected void setUp() throws Exception { super.setUp(); - // init(); // 初始化derby数据库和表 } protected void tearDown() throws Exception { super.tearDown(); - // destroy(); // 关闭derby数据库,并清理对应文件夹 } public static void main(String[] args) { @@ -74,15 +72,13 @@ public class PrimarySlaveTest extends TestCase { } public void test() { - // if (!inited) { // 未初始化 - // return; - // } - // // try { + // init(); // 初始化derby数据库和表 // commonTest(); // } catch (Exception e) { - // destroy(); // 关闭derby数据库,并清理对应文件夹 // throw new RuntimeException("测试失败", e); + // } finally { + // destroy(); // 关闭derby数据库,并清理对应文件夹 // } } @@ -235,11 +231,13 @@ public class PrimarySlaveTest extends TestCase { } catch (SQLException e) { // 关闭失败,忽略之 } + System.out.println("所有数据库已关闭!"); + System.out.println("相关目录已删除!"); FileUtil.deleteFile("derby.log"); // 删除derby日志文件 FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库文件夹 - System.out.println("derby数据库清理完成!"); + System.out.println("测试现场清理完成"); } } diff --git a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeDiffSchemaTest.java b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeDiffSchemaTest.java index 82332ceae..8b9a48607 100644 --- a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeDiffSchemaTest.java +++ b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeDiffSchemaTest.java @@ -32,18 +32,17 @@ public class ShardModeDiffSchemaTest extends TestCase { protected void setUp() throws Exception { super.setUp(); - // init(); } protected void tearDown() throws Exception { super.tearDown(); - // destroy(); } public static void main(String[] args) { Connection conn = null; try { init(); // 初始化derby数据库和表 + conn = DriverManager.getConnection(URL, USER, PASSWORD); ShardModeDiffSchemaTest test = new ShardModeDiffSchemaTest(); test.relatedQueryTest(conn); @@ -59,22 +58,20 @@ public class ShardModeDiffSchemaTest extends TestCase { } public void test() { - // if (!inited) { // 未初始化 - // return; - // } - // // Connection conn = null; // try { + // init(); // 初始化数据库和表 + // // conn = DriverManager.getConnection(URL, USER, PASSWORD); // relatedQueryTest(conn); // statementTest(conn); // resultSetTest(conn); // relatedQueryTest2(conn); // } catch (Exception e) { - // destroy(); // 关闭derby数据库,并清理对应文件夹 // throw new RuntimeException("测试失败", e); // } finally { // close(conn, null, null); + // destroy(); // 关闭derby数据库,并清理对应文件夹 // } } @@ -480,11 +477,13 @@ public class ShardModeDiffSchemaTest extends TestCase { } catch (SQLException e) { // 关闭失败,忽略之 } + System.out.println("所有数据库已关闭!"); FileUtil.deleteFile("derby.log"); // 删除derby日志文件 FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库文件夹 + System.out.println("相关目录已删除!"); - System.out.println("derby数据库清理完成!"); + System.out.println("测试现场清理完成!"); } /** @@ -541,7 +540,6 @@ public class ShardModeDiffSchemaTest extends TestCase { st.execute(t_sql); st.execute(s_sql); } catch (SQLException e) { - destroy(); // 关闭derby数据库,并清理对应文件夹 throw new RuntimeException("初始化表失败!", e); } finally { close(conn, st, null); diff --git a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeSameSchemaTest.java b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeSameSchemaTest.java index 74814b0b6..e786c942d 100644 --- a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeSameSchemaTest.java +++ b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeSameSchemaTest.java @@ -59,12 +59,10 @@ public class ShardModeSameSchemaTest extends TestCase { protected void setUp() throws Exception { super.setUp(); - // init(); } protected void tearDown() throws Exception { super.tearDown(); - // destroy(); } public static void main(String[] args) { @@ -88,16 +86,18 @@ public class ShardModeSameSchemaTest extends TestCase { public void test() { // Connection conn = null; // try { + // init(); // 初始化数据库和表 + // // conn = DriverManager.getConnection(URL, USER, PASSWORD); // relatedQueryTest(conn); // statementTest(conn); // resultSetTest(conn); // relatedQueryTest2(conn); // } catch (Exception e) { - // destroy(); // 关闭derby数据库,并清理对应文件夹 // throw new RuntimeException("测试失败", e); // } finally { // close(conn, null, null); // 关闭连接 + // destroy(); // 关闭derby数据库,并清理对应文件夹 // } } @@ -475,11 +475,13 @@ public class ShardModeSameSchemaTest extends TestCase { } catch (SQLException e) { // 关闭失败,忽略之 } + System.out.println("所有数据库已关闭!"); FileUtil.deleteFile("derby.log"); // 删除derby日志文件 FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库文件夹 + System.out.println("相关目录已删除!"); - System.out.println("derby数据库清理完成!"); + System.out.println("测试现场清理完成"); } /** @@ -537,7 +539,6 @@ public class ShardModeSameSchemaTest extends TestCase { st.execute(sb.toString()); } } catch (SQLException e) { - destroy(); // 关闭derby数据库,并清理对应文件夹 throw new RuntimeException("初始化表失败!", e); } finally { close(conn, st, null); -- Gitee From 7137edfc2c23ac5d78254d0b2b450241ba1381fb Mon Sep 17 00:00:00 2001 From: nishihe0325 Date: Tue, 15 Apr 2014 14:25:15 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dbrouterjdbc3/jdbc/PrimarySlaveTest.java | 61 +++-------- .../jdbc/ShardModeDiffSchemaTest.java | 97 ++++++----------- .../jdbc/ShardModeSameSchemaTest.java | 102 ++++++------------ 3 files changed, 80 insertions(+), 180 deletions(-) diff --git a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/PrimarySlaveTest.java b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/PrimarySlaveTest.java index c2754cfe6..8cc5bae66 100644 --- a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/PrimarySlaveTest.java +++ b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/PrimarySlaveTest.java @@ -49,7 +49,6 @@ public class PrimarySlaveTest extends TestCase { private static final String[] DERBY_DBS = { "db01", "db02", "db03" }; // derby数据库 private static RouterManager routerManager; // tiny路由管理器 - private static boolean inited; // 是否已初始化 protected void setUp() throws Exception { super.setUp(); @@ -59,11 +58,10 @@ public class PrimarySlaveTest extends TestCase { super.tearDown(); } - public static void main(String[] args) { + public void test() { try { init(); // 初始化derby数据库和表 - PrimarySlaveTest test = new PrimarySlaveTest(); - test.commonTest(); + commonTest(); } catch (Exception e) { throw new RuntimeException("测试失败", e); } finally { @@ -71,17 +69,6 @@ public class PrimarySlaveTest extends TestCase { } } - public void test() { - // try { - // init(); // 初始化derby数据库和表 - // commonTest(); - // } catch (Exception e) { - // throw new RuntimeException("测试失败", e); - // } finally { - // destroy(); // 关闭derby数据库,并清理对应文件夹 - // } - } - private void commonTest() throws Exception { Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, @@ -140,31 +127,22 @@ public class PrimarySlaveTest extends TestCase { * * @throws Exception */ - private static void init() { - if (inited) { // 已初始化 - return; - } + private static void init() throws Exception { + Class.forName(TINY_DRIVER); // 加载tiny数据库驱动 + Class.forName(DERBY_DRIVER).newInstance(); // 加载derby数据库驱动,调用newInstance()方法是解决有时注册加载驱动失败的问题 - try { - Class.forName(TINY_DRIVER); // 加载tiny数据库驱动 - Class.forName(DERBY_DRIVER); // 加载derby数据库驱动 - } catch (ClassNotFoundException e) { - throw new RuntimeException("数据库驱动加载失败!", e); - } - - // 初始化routerManager + // 初始化routerManager,并添加路由 routerManager = RouterManagerBeanFactory.getManager(); routerManager.addRouters(ROUTER_CONFIG); FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库路径 // 建表sql - StringBuffer sb = new StringBuffer(); - sb.append("CREATE TABLE "); - sb.append("teacher").append("("); - sb.append("ID int not null,"); - sb.append("NAME varchar(20))"); - String sql = sb.toString(); + StringBuffer sql = new StringBuffer(); + sql.append("CREATE TABLE "); + sql.append("teacher").append("("); + sql.append("ID int not null,"); + sql.append("NAME varchar(20))"); // 在每个数据库中建表 String derbyDbpath = DERBY_DBPATH; @@ -176,21 +154,12 @@ public class PrimarySlaveTest extends TestCase { url.append(derbyDbpath + derbyDB); url.append(";create=true"); - Connection conn = null; - Statement st = null; - try { - conn = DriverManager.getConnection(url.toString()); - st = conn.createStatement(); - st.execute(sql); - } catch (SQLException e) { - destroy(); // 关闭derby数据库,并清理对应文件夹 - throw new RuntimeException("建表失败!", e); - } finally { - close(conn, st, null); - } + Connection conn = DriverManager.getConnection(url.toString()); + Statement st = conn.createStatement(); + st.execute(sql.toString()); + close(conn, st, null); } - inited = true; System.out.println("数据库和表初始化完成!"); } diff --git a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeDiffSchemaTest.java b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeDiffSchemaTest.java index 8b9a48607..1a969c2a8 100644 --- a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeDiffSchemaTest.java +++ b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeDiffSchemaTest.java @@ -28,7 +28,6 @@ public class ShardModeDiffSchemaTest extends TestCase { private static final String[] DERBY_DBS = { "db01", "db02", "db03" }; // derby数据库 private static RouterManager routerManager; // tiny路由管理器 - private static boolean inited; // 是否已初始化 protected void setUp() throws Exception { super.setUp(); @@ -38,17 +37,16 @@ public class ShardModeDiffSchemaTest extends TestCase { super.tearDown(); } - public static void main(String[] args) { + public void test() { Connection conn = null; try { - init(); // 初始化derby数据库和表 + init(); // 初始化数据库和表 conn = DriverManager.getConnection(URL, USER, PASSWORD); - ShardModeDiffSchemaTest test = new ShardModeDiffSchemaTest(); - test.relatedQueryTest(conn); - test.statementTest(conn); - test.resultSetTest(conn); - test.relatedQueryTest2(conn); + relatedQueryTest(conn); + statementTest(conn); + resultSetTest(conn); + relatedQueryTest2(conn); } catch (Exception e) { throw new RuntimeException("测试失败", e); } finally { @@ -57,24 +55,6 @@ public class ShardModeDiffSchemaTest extends TestCase { } } - public void test() { - // Connection conn = null; - // try { - // init(); // 初始化数据库和表 - // - // conn = DriverManager.getConnection(URL, USER, PASSWORD); - // relatedQueryTest(conn); - // statementTest(conn); - // resultSetTest(conn); - // relatedQueryTest2(conn); - // } catch (Exception e) { - // throw new RuntimeException("测试失败", e); - // } finally { - // close(conn, null, null); - // destroy(); // 关闭derby数据库,并清理对应文件夹 - // } - } - /** * 两张表关联查询测试 * @@ -488,41 +468,34 @@ public class ShardModeDiffSchemaTest extends TestCase { /** * 初始化derby数据库和表 + * + * @throws Exception */ - private static void init() { - if (inited) { // 已初始化 - return; - } - - try { - Class.forName(TINY_DRIVER); // 加载tiny数据库驱动 - Class.forName(DERBY_DRIVER); // 加载derby数据库驱动 - } catch (ClassNotFoundException e) { - throw new RuntimeException("数据库驱动加载失败!", e); - } + private static void init() throws Exception { + Class.forName(TINY_DRIVER); // 加载tiny数据库驱动 + Class.forName(DERBY_DRIVER).newInstance(); // 加载derby数据库驱动,调用newInstance()方法是解决有时注册加载驱动失败的问题 - // 初始化routerManager + // 初始化routerManager,并添加路由 routerManager = RouterManagerBeanFactory.getManager(); routerManager.addRouters(ROUTER_CONFIG); - FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库路径 + FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库路径,该目录不为空,则derby数据库创建失败 - StringBuffer sb = new StringBuffer(); - sb.append("CREATE TABLE "); - sb.append("teacher").append("("); - sb.append("ID int not null,"); - sb.append("NAME varchar(20))"); - String t_sql = sb.toString(); + // 建teacher表sql + StringBuffer t_sql = new StringBuffer(); + t_sql.append("CREATE TABLE teacher("); + t_sql.append("ID int not null,"); + t_sql.append("NAME varchar(20))"); - sb = new StringBuffer(); - sb.append("CREATE TABLE student("); - sb.append("ID int not null,"); - sb.append("TID int,"); - sb.append("AGE int,"); - sb.append("NAME varchar(20))"); - String s_sql = sb.toString(); + // 建student表sql + StringBuffer s_sql = new StringBuffer(); + s_sql.append("CREATE TABLE student("); + s_sql.append("ID int not null,"); + s_sql.append("TID int,"); + s_sql.append("AGE int,"); + s_sql.append("NAME varchar(20))"); - // 在每个数据库中建表 + // 新建数据库,并在每个新建的数据库上新建teacher表和student表 String derbyDbpath = DERBY_DBPATH; if (!derbyDbpath.endsWith("/") && !derbyDbpath.endsWith("\\")) { derbyDbpath = derbyDbpath + "/"; @@ -532,21 +505,13 @@ public class ShardModeDiffSchemaTest extends TestCase { url.append(derbyDbpath + derbyDB); url.append(";create=true"); - Connection conn = null; - Statement st = null; - try { - conn = DriverManager.getConnection(url.toString()); - st = conn.createStatement(); - st.execute(t_sql); - st.execute(s_sql); - } catch (SQLException e) { - throw new RuntimeException("初始化表失败!", e); - } finally { - close(conn, st, null); - } + Connection conn = DriverManager.getConnection(url.toString()); + Statement st = conn.createStatement(); + st.execute(t_sql.toString()); + st.execute(s_sql.toString()); + close(conn, st, null); } - inited = true; System.out.println("数据库和表初始化完成!"); } diff --git a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeSameSchemaTest.java b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeSameSchemaTest.java index e786c942d..cb5002cc7 100644 --- a/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeSameSchemaTest.java +++ b/db/org.tinygroup.dbrouterjdbc3/src/test/java/org/tinygroup/dbrouterjdbc3/jdbc/ShardModeSameSchemaTest.java @@ -55,7 +55,6 @@ public class ShardModeSameSchemaTest extends TestCase { "student0", "student1", "student2" }; // derby数据库存放目录 private static RouterManager routerManager; // tiny路由管理器 - private static boolean inited; // 是否已初始化 protected void setUp() throws Exception { super.setUp(); @@ -65,42 +64,24 @@ public class ShardModeSameSchemaTest extends TestCase { super.tearDown(); } - public static void main(String[] args) { + public void test() { Connection conn = null; try { - init(); // 初始化derby数据库和表 + init(); // 初始化数据库和表 + conn = DriverManager.getConnection(URL, USER, PASSWORD); - ShardModeSameSchemaTest test = new ShardModeSameSchemaTest(); - test.relatedQueryTest(conn); - test.statementTest(conn); - test.resultSetTest(conn); - test.relatedQueryTest2(conn); + relatedQueryTest(conn); + statementTest(conn); + resultSetTest(conn); + relatedQueryTest2(conn); } catch (Exception e) { throw new RuntimeException("测试失败", e); } finally { - close(conn, null, null); + close(conn, null, null); // 关闭连接 destroy(); // 关闭derby数据库,并清理对应文件夹 } } - public void test() { - // Connection conn = null; - // try { - // init(); // 初始化数据库和表 - // - // conn = DriverManager.getConnection(URL, USER, PASSWORD); - // relatedQueryTest(conn); - // statementTest(conn); - // resultSetTest(conn); - // relatedQueryTest2(conn); - // } catch (Exception e) { - // throw new RuntimeException("测试失败", e); - // } finally { - // close(conn, null, null); // 关闭连接 - // destroy(); // 关闭derby数据库,并清理对应文件夹 - // } - } - /** * 两张表关联查询测试 * @@ -487,25 +468,17 @@ public class ShardModeSameSchemaTest extends TestCase { /** * 初始化derby数据库和表 * - * @throws SQLException + * @throws Exception */ - private static void init() throws SQLException { - if (inited) { // 已初始化 - return; - } - - try { - Class.forName(TINY_DRIVER); // 加载tiny数据库驱动 - Class.forName(DERBY_DRIVER); // 加载derby数据库驱动 - } catch (ClassNotFoundException e) { - throw new RuntimeException("数据库驱动加载失败!", e); - } + private static void init() throws Exception { + Class.forName(TINY_DRIVER); // 加载tiny数据库驱动 + Class.forName(DERBY_DRIVER).newInstance(); // 加载derby数据库驱动,调用newInstance()方法是解决有时注册加载驱动失败的问题 - // 初始化routerManager + // 初始化routerManager,并添加路由 routerManager = RouterManagerBeanFactory.getManager(); routerManager.addRouters(ROUTER_CONFIG); - FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库路径 + FileUtil.deleteFile(DERBY_DBPATH); // 删除derby数据库路径,该目录不为空,则derby数据库创建失败 String derbyDbpath = DERBY_DBPATH; if (!derbyDbpath.endsWith("/") && !derbyDbpath.endsWith("\\")) { @@ -515,36 +488,29 @@ public class ShardModeSameSchemaTest extends TestCase { url.append(derbyDbpath + DERBY_DB); url.append(";create=true"); - Connection conn = DriverManager.getConnection(url.toString()); + Connection conn = DriverManager.getConnection(url.toString()); // 新建数据库 Statement st = conn.createStatement(); - try { - for (String teacher : DERBY_TEACHER_TABLES) { - StringBuffer sb = new StringBuffer(); - sb.append("CREATE TABLE "); - sb.append(teacher).append("("); - sb.append("ID int not null,"); - sb.append("NAME varchar(20))"); - st.execute(sb.toString()); - } - - for (String student : DERBY_STUDENT_TABLES) { - StringBuffer sb = new StringBuffer(); - sb.append("CREATE TABLE "); - sb.append(student); - sb.append("("); - sb.append("ID int not null,"); - sb.append("TID int,"); - sb.append("AGE int,"); - sb.append("NAME varchar(20))"); - st.execute(sb.toString()); - } - } catch (SQLException e) { - throw new RuntimeException("初始化表失败!", e); - } finally { - close(conn, st, null); + for (String teacher : DERBY_TEACHER_TABLES) { // 在该数据库上新建表 + StringBuffer sb = new StringBuffer(); + sb.append("CREATE TABLE "); + sb.append(teacher).append("("); + sb.append("ID int not null,"); + sb.append("NAME varchar(20))"); + st.execute(sb.toString()); + } + for (String student : DERBY_STUDENT_TABLES) { // 在该数据库上新建表 + StringBuffer sb = new StringBuffer(); + sb.append("CREATE TABLE "); + sb.append(student); + sb.append("("); + sb.append("ID int not null,"); + sb.append("TID int,"); + sb.append("AGE int,"); + sb.append("NAME varchar(20))"); + st.execute(sb.toString()); } + close(conn, st, null); - inited = true; System.out.println("数据库和表初始化完成!"); } -- Gitee