目录
图示
AbstractDatabaseFactory类
/**
* 这是一个抽象工厂
*/
public abstract class AbstractDatabaseFactory<T> {
// 获得抽象产品的接口
public abstract DatabaseReaderAndWrite<T> buildReaderAndWriter();
}
DatabaseReaderAndWrite类
/**
* 抽象产品接口,主要是对数据库的读写接口
*/
public interface DatabaseReaderAndWrite<T> {
/**
* 单项插入
* @param t
*/
public void writer(T t);
/**
* 批量插入
* @param lst
*/
public void writer(List<T> lst);
/**
* 读取用户传入的命令或sql语句,完成解析后对应的结果转为list集合
* @param sql
* @return
*/
public List<T> reader(String sql,Class cls);
}
MySqlDatabaseFactory类:
mysql具体工程,继承AbstractDatabaseFactory
/**
* 连接mysql数据库具体工厂
* @param <T>
*/
public class MySqlDatabaseFactory<T> extends AbstractDatabaseFactory<T> {
private Configuration config;
public MySqlDatabaseFactory(Configuration cfg) {
this.config = cfg;
}
private Connection createConnection() {
Connection conn =null;
try {
Class.forName(config.get("dirver"));
conn = DriverManager.getConnection(config.get("url"), config.get("username"), config.get("password"