Files
struts/apps/mailreader/src/main/java/mailreader2/service/SqlMapAppConfig.java
T

100 lines
2.5 KiB
Java
Raw Normal View History

package mailreader2.service;
import com.ibatis.common.resources.Resources;
import com.ibatis.common.jdbc.ScriptRunner;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import javax.sql.DataSource;
import java.sql.Connection;
import java.io.Reader;
import java.util.Properties;
public class SqlMapAppConfig {
// ---- TEST MODE SETUP ----
protected void runScript(String script) throws Exception {
DataSource ds = getSqlMap().getDataSource();
Connection conn = ds.getConnection();
Reader reader = Resources.getResourceAsReader(script);
ScriptRunner runner = new ScriptRunner(conn, false, false);
runner.setLogWriter(null);
runner.setErrorLogWriter(null);
runner.runScript(reader);
conn.commit();
conn.close();
reader.close();
}
final static String[] CONFIG_SCRIPTS =
{"sql/mailreader-schema.sql","sql/mailreader-sample.sql"};
private boolean testMode = true;
public boolean isTestMode() {
return testMode;
}
public void setTestMode(boolean testMode) {
this.testMode = testMode;
}
// ---- SQL MAP SETUP ----
final static String CONFIG_FILE = "sql-map-config.xml";
protected String configFile;
public String getConfigFile() {
if (configFile==null) return CONFIG_FILE;
return configFile;
}
public void setConfigFile(String configFile) {
this.configFile = configFile;
}
protected Properties configProps;
public Properties getConfigProps() {
return configProps;
}
public void setConfigProps(Properties configProps) {
this.configProps = configProps;
}
private SqlMapClient sqlMap;
public SqlMapClient getSqlMap() {
return sqlMap;
}
public void setSqlMap(SqlMapClient sqlMap) {
this.sqlMap = sqlMap;
}
public SqlMapAppConfig() {
try {
Reader reader =
Resources.getResourceAsReader(getConfigFile());
setSqlMap(SqlMapClientBuilder.buildSqlMapClient(reader,
getConfigProps()));
reader.close();
if (isTestMode())
for (String script : CONFIG_SCRIPTS) {
runScript(script);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}