package org.nutz.dao.test.normal;
import org.junit.Assert;
import org.junit.Test;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.test.DaoCase;
import org.nutz.lang.Strings;
public class CreateTableWithCommentTest extends DaoCase {
private static String FIND_TABLE_COMMENT_MYSQL = "select table_comment from information_schema.`tables` where table_name = @tableName";
private static String FIND_COLUMN_COMMENT_MYSQL = "select column_comment from information_schema.`columns` where table_name = @tableName and column_name = @columnName";
@Test
public void createTableInMySQL() throws Exception {
boolean isMySql = dao.meta().isMySql();
// 这个仅仅测试MySQL数据库
if (isMySql) {
dao.create(TableWithComment.class, true);
// 表注释
Sql findTableComment = Sqls.create(FIND_TABLE_COMMENT_MYSQL);
findTableComment.params().set("tableName", "t_twc");
findTableComment.setCallback(Sqls.callback.str());
dao.execute(findTableComment);
String tableComment = findTableComment.getString();
Assert.assertTrue(!Strings.isBlank(tableComment) && "测试表".equals(tableComment));
// 字段注释
Sql findIdComment = Sqls.create(FIND_COLUMN_COMMENT_MYSQL);
findIdComment.params().set("tableName", "t_twc").set("columnName", "id");
findIdComment.setCallback(Sqls.callback.str());
dao.execute(findIdComment);
String idComment = findIdComment.getString();
Assert.assertTrue(!Strings.isBlank(idComment) && "唯一主键".equals(idComment));
Sql findNameComment = Sqls.create(FIND_COLUMN_COMMENT_MYSQL);
findNameComment.params().set("tableName", "t_twc").set("columnName", "nm");
findNameComment.setCallback(Sqls.callback.str());
dao.execute(findNameComment);
String nameComment = findNameComment.getString();
Assert.assertTrue(!Strings.isBlank(nameComment) && "name".equals(nameComment));
Sql findNumComment = Sqls.create(FIND_COLUMN_COMMENT_MYSQL);
findNumComment.params().set("tableName", "t_twc").set("columnName", "num");
findNumComment.setCallback(Sqls.callback.str());
dao.execute(findNumComment);
String numComment = findNumComment.getString();
Assert.assertTrue(Strings.isBlank(numComment));
}
}
@Test
public void createTableInOracle() throws Exception {
boolean isOracle = dao.meta().isOracle();
// 这个仅仅测试Oracle数据库
if (isOracle) {
dao.create(TableWithComment.class, true);
// 表注释
// 字段注释
}
}
@Test
public void createTableInPostgersqlAndH2() throws Exception {
boolean isPostgresql = dao.meta().isPostgresql();
boolean isH2 = dao.meta().isH2();
// 这个仅仅测试Postgresql数据库
if (isPostgresql || isH2) {
dao.create(TableWithComment.class, true);
// 表注释
// 字段注释
}
}
@Test
public void createTableInDB2() throws Exception {
boolean isDB2 = dao.meta().isDB2();
// 这个仅仅测试DB2数据库
if (isDB2) {
dao.create(TableWithComment.class, true);
// 表注释
// 字段注释
}
}
@Test
public void createTableInHSQL() throws Exception {
boolean isHSQL = dao.meta().isHsql();
// 这个仅仅测试HSQL数据库
if (isHSQL) {
dao.create(TableWithComment.class, true);
// 表注释
// 字段注释
}
}
@Test
public void createTableInSqlServer() throws Exception {
boolean isSqlServer = dao.meta().isSqlServer();
// 这个仅仅测试SqlServer数据库
if (isSqlServer) {
dao.create(TableWithComment.class, true);
// 表注释
// 字段注释
}
}
}