package org.test4j.module.dbfit.utility;
import java.sql.PreparedStatement;
import org.test4j.module.database.utility.DBHelper;
import org.test4j.module.dbfit.environment.DbFitEnvironment;
public class DbFixtureUtil {
/**
* 执行statement语句
*
* @param dbEnvironment
* @param statement
* @return
*/
public static final boolean execute(final DbFitEnvironment dbEnvironment, final String statement) {
PreparedStatement st = null;
try {
st = dbEnvironment.createStatementWithBoundFixtureSymbols(statement);
// return st.execute();
// 注释掉的原因是apache的dbcp中st.execute()执行成功也是返回false,郁闷!
st.execute();
return true;
} catch (Throwable e) {
throw new RuntimeException(e);
} finally {
DBHelper.closeStatement(st);
st = null;
}
}
/**
* 清除表table中所有数据
*
* @param env
* @param table
*/
public static void cleanTable(DbFitEnvironment env, String table) {
PreparedStatement st = null;
try {
String statement = String.format("delete from %s ", table);
st = env.createStatementWithBoundFixtureSymbols(statement);
st.execute();
} catch (Throwable e) {
throw new RuntimeException(e);
} finally {
DBHelper.closeStatement(st);
st = null;
}
}
public static void setParameter(String name, String value) {
if (value == null || "<null>".equals(value.toString().toLowerCase())) {
SymbolUtil.setSymbol(name, null);
} else if (value != null && value.toString().startsWith("<<")) {
String varname = value.toString().substring(2);
if (!name.equals(varname)) {
SymbolUtil.setSymbol(name, org.test4j.module.dbfit.utility.SymbolUtil.getSymbol(varname));
}
} else {
SymbolUtil.setSymbol(name, value);
}
}
}