add h2 and derby test

This commit is contained in:
Looly 2020-04-23 13:50:59 +08:00
parent e8c0a75e7f
commit 01ac0f94dc
7 changed files with 125 additions and 21 deletions

View File

@ -135,5 +135,11 @@
<version>1.7.26</version> <version>1.7.26</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -45,9 +45,7 @@ public class DialectFactory {
/** JDBC 驱动 H2 */ /** JDBC 驱动 H2 */
public static final String DRIVER_H2 = "org.h2.Driver"; public static final String DRIVER_H2 = "org.h2.Driver";
/** JDBC 驱动 Derby */ /** JDBC 驱动 Derby */
public static final String DRIVER_DERBY = "org.apache.derby.jdbc.ClientDriver"; public static final String DRIVER_DERBY = "org.apache.derby.jdbc.AutoloadedDriver";
/** JDBC 驱动 Derby嵌入式 */
public static final String DRIVER_DERBY_EMBEDDED = "org.apache.derby.jdbc.EmbeddedDriver";
/** JDBC 驱动 HSQLDB */ /** JDBC 驱动 HSQLDB */
public static final String DRIVER_HSQLDB = "org.hsqldb.jdbc.JDBCDriver"; public static final String DRIVER_HSQLDB = "org.hsqldb.jdbc.JDBCDriver";
/** JDBC 驱动 达梦7 */ /** JDBC 驱动 达梦7 */
@ -126,12 +124,9 @@ public class DialectFactory {
driver = DRIVER_HIVE; driver = DRIVER_HIVE;
} else if (nameContainsProductInfo.contains("h2")) { } else if (nameContainsProductInfo.contains("h2")) {
driver = DRIVER_H2; driver = DRIVER_H2;
} else if (nameContainsProductInfo.startsWith("jdbc:derby://")) {
// Derby数据库网络连接方式
driver = DRIVER_DERBY;
} else if (nameContainsProductInfo.contains("derby")) { } else if (nameContainsProductInfo.contains("derby")) {
// 嵌入式Derby数据库 // 嵌入式Derby数据库
driver = DRIVER_DERBY_EMBEDDED; driver = DRIVER_DERBY;
} else if (nameContainsProductInfo.contains("hsqldb")) { } else if (nameContainsProductInfo.contains("hsqldb")) {
// HSQLDB // HSQLDB
driver = DRIVER_HSQLDB; driver = DRIVER_HSQLDB;

View File

@ -3,19 +3,17 @@ package cn.hutool.db.dialect.impl;
import cn.hutool.db.Page; import cn.hutool.db.Page;
import cn.hutool.db.dialect.DialectName; import cn.hutool.db.dialect.DialectName;
import cn.hutool.db.sql.SqlBuilder; import cn.hutool.db.sql.SqlBuilder;
import cn.hutool.db.sql.Wrapper;
/** /**
* H2数据库方言 * H2数据库方言
* *
* @author loolly * @author loolly
*
*/ */
public class H2Dialect extends AnsiSqlDialect { public class H2Dialect extends AnsiSqlDialect {
private static final long serialVersionUID = 1490520247974768214L; private static final long serialVersionUID = 1490520247974768214L;
public H2Dialect() { public H2Dialect() {
wrapper = new Wrapper('"', '"'); // wrapper = new Wrapper('"');
} }
@Override @Override

View File

@ -0,0 +1,50 @@
package cn.hutool.db;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import java.sql.SQLException;
import java.util.List;
/**
* Derby数据库单元测试
*
* @author looly
*
*/
public class DerbyTest {
private static final String DS_GROUP_NAME = "derby";
@BeforeClass
public static void init() throws SQLException {
Db db = Db.use(DS_GROUP_NAME);
try{
db.execute("CREATE TABLE test(a INTEGER, b BIGINT)");
}catch (SQLException e){
// 数据库已存在
return;
}
db.insert(Entity.create("test").set("a", 1).set("b", 11));
db.insert(Entity.create("test").set("a", 2).set("b", 21));
db.insert(Entity.create("test").set("a", 3).set("b", 31));
db.insert(Entity.create("test").set("a", 4).set("b", 41));
}
@Test
@Ignore
public void queryTest() throws SQLException {
List<Entity> query = Db.use(DS_GROUP_NAME).query("select * from test");
Assert.assertEquals(4, query.size());
}
@Test
@Ignore
public void findTest() throws SQLException {
List<Entity> query = Db.use(DS_GROUP_NAME).find(Entity.create("test"));
Assert.assertEquals(4, query.size());
}
}

View File

@ -0,0 +1,42 @@
package cn.hutool.db;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import java.sql.SQLException;
import java.util.List;
/**
* H2数据库单元测试
*
* @author looly
*
*/
public class H2Test {
private static final String DS_GROUP_NAME = "h2";
@BeforeClass
public static void init() throws SQLException {
Db db = Db.use(DS_GROUP_NAME);
db.execute("CREATE TABLE test(a INTEGER, b BIGINT)");
db.insert(Entity.create("test").set("a", 1).set("b", 11));
db.insert(Entity.create("test").set("a", 2).set("b", 21));
db.insert(Entity.create("test").set("a", 3).set("b", 31));
db.insert(Entity.create("test").set("a", 4).set("b", 41));
}
@Test
public void queryTest() throws SQLException {
List<Entity> query = Db.use(DS_GROUP_NAME).query("select * from test");
Assert.assertEquals(4, query.size());
}
@Test
public void findTest() throws SQLException {
List<Entity> query = Db.use(DS_GROUP_NAME).find(Entity.create("test"));
Assert.assertEquals(4, query.size());
}
}

View File

@ -1,15 +1,12 @@
package cn.hutool.db; package cn.hutool.db;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.List; import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import cn.hutool.db.Db;
import cn.hutool.db.Entity;
/** /**
* HSQLDB数据库单元测试 * HSQLDB数据库单元测试
* *
@ -20,8 +17,8 @@ public class HsqldbTest {
private static final String DS_GROUP_NAME = "hsqldb"; private static final String DS_GROUP_NAME = "hsqldb";
@Before @BeforeClass
public void init() throws SQLException { public static void init() throws SQLException {
Db db = Db.use(DS_GROUP_NAME); Db db = Db.use(DS_GROUP_NAME);
db.execute("CREATE TABLE test(a INTEGER, b BIGINT)"); db.execute("CREATE TABLE test(a INTEGER, b BIGINT)");
db.insert(Entity.create("test").set("a", 1).set("b", 11)); db.insert(Entity.create("test").set("a", 1).set("b", 11));
@ -35,4 +32,10 @@ public class HsqldbTest {
List<Entity> query = Db.use(DS_GROUP_NAME).query("select * from test"); List<Entity> query = Db.use(DS_GROUP_NAME).query("select * from test");
Assert.assertEquals(4, query.size()); Assert.assertEquals(4, query.size());
} }
@Test
public void findTest() throws SQLException {
List<Entity> query = Db.use(DS_GROUP_NAME).find(Entity.create("test"));
Assert.assertEquals(4, query.size());
}
} }

View File

@ -30,6 +30,16 @@ url = jdbc:hsqldb:mem:mem_hutool
user = SA user = SA
pass = pass =
# 测试用HSQLDB数据库
[h2]
url = jdbc:h2:mem:h2_hutool
user = sa
pass =
# 测试用HSQLDB数据库
[derby]
url = jdbc:derby:.derby/test_db;create=true
# 测试用Oracle数据库 # 测试用Oracle数据库
[orcl] [orcl]
url = jdbc:oracle:thin:@//looly.centos:1521/XE url = jdbc:oracle:thin:@//looly.centos:1521/XE