package jef.database.dynamic; import java.sql.SQLException; import jef.database.DbClient; import jef.database.VarObject; import jef.database.meta.MetaHolder; import jef.database.meta.TupleMetadata; import jef.database.test.DataSource; import jef.database.test.DataSourceContext; import jef.database.test.DatabaseInit; import jef.database.test.JefJUnit4DatabaseTestRunner; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(JefJUnit4DatabaseTestRunner.class) @DataSourceContext({ @DataSource(name="oracle",url="${oracle.url}",user="${oracle.user}",password="${oracle.password}"), @DataSource(name = "mysql", url = "${mysql.url}", user = "${mysql.user}", password = "${mysql.password}"), @DataSource(name="postgresql",url="${postgresql.url}",user="${postgresql.user}",password="${postgresql.password}"), @DataSource(name="derby",url="jdbc:derby:./db;create=true"), @DataSource(name = "hsqldb", url = "jdbc:hsqldb:mem:testhsqldb", user = "sa", password = ""), @DataSource(name = "sqlite", url = "jdbc:sqlite:test.db?date_string_format=yyyy-MM-dd HH:mm:ss"), @DataSource(name = "sqlserver", url = "${sqlserver.url}",user="${sqlserver.user}",password="${sqlserver.password}") }) public class DynamicApplyTest { private DbClient db; @DatabaseInit public void test123() throws SQLException{ int n=0; for(String tableName:db.getMetaData(null).getTableNames()){ System.out.println("数据库表"+tableName+"已经扫描。"); MetaHolder.initMetadata(db, tableName); n++; if(n>5)break; } } @Test(expected=IllegalArgumentException.class) public void test2(){ TupleMetadata meta=MetaHolder.getDynamicMeta("CHILD"); if(meta!=null){ VarObject obj=meta.newInstance(); obj.set("id", "asdfsds"); //数据类型不一致。 }else{ throw new IllegalArgumentException(); } } }