Commit 9dfaf2b4 by yuwei

项目初始化

parent 5989a957
package cn.datax.common.database;
import cn.datax.common.database.constants.DbType;
import cn.datax.common.database.query.QueryRegistry;
public class QueryFactory {
private static final QueryRegistry QUERY_REGISTRY = new QueryRegistry();
public static DbQuery getQuery(DbType dbType) {
return QUERY_REGISTRY.getQuery(dbType);
}
}
package cn.datax.common.database.datasource;
import cn.datax.common.database.DataSourceFactory;
import cn.datax.common.database.DbQuery;
import cn.datax.common.database.*;
import cn.datax.common.database.constants.DbQueryProperty;
import cn.datax.common.database.constants.DbType;
import cn.datax.common.database.exception.DataQueryException;
import cn.datax.common.database.query.MySqlDbQuery;
import cn.datax.common.database.query.AbstractDbQuery;
import com.zaxxer.hikari.HikariDataSource;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
......@@ -22,16 +21,11 @@ public abstract class AbstractDataSourceFactory implements DataSourceFactory {
}
public DbQuery createDbQueryTemplate(DataSource dataSource, DbType dbType) {
DbQuery dbQuery;
switch (dbType) {
case MYSQL: {
dbQuery = new MySqlDbQuery(dataSource);
break;
}
default: {
throw new DataQueryException("不支持的数据库类型");
}
}
DbDialect dbDialect = DialectFactory.getDialect(dbType);
AbstractDbQuery dbQuery = (AbstractDbQuery) QueryFactory.getQuery(dbType);
dbQuery.setDataSource(dataSource);
dbQuery.setJdbcTemplate(new JdbcTemplate(dataSource));
dbQuery.setDbDialect(dbDialect);
return dbQuery;
}
......
......@@ -3,7 +3,8 @@ package cn.datax.common.database.dialect;
import cn.datax.common.database.DbDialect;
import cn.datax.common.database.constants.DbType;
import java.util.*;
import java.util.EnumMap;
import java.util.Map;
public class DialectRegistry {
......
......@@ -6,6 +6,7 @@ import cn.datax.common.database.core.DbColumn;
import cn.datax.common.database.core.PageResult;
import cn.datax.common.database.exception.DataQueryException;
import com.zaxxer.hikari.HikariDataSource;
import lombok.Setter;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
......@@ -14,6 +15,7 @@ import java.sql.SQLException;
import java.util.List;
import java.util.Map;
@Setter
public abstract class AbstractDbQuery implements DbQuery {
protected DataSource dataSource;
......@@ -22,11 +24,6 @@ public abstract class AbstractDbQuery implements DbQuery {
protected DbDialect dbDialect;
public AbstractDbQuery(DataSource dataSource) {
this.dataSource = dataSource;
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
@Override
public boolean valid() throws SQLException {
Connection conn = dataSource.getConnection();
......
package cn.datax.common.database.query;
import cn.datax.common.database.dialect.MySqlDialect;
import javax.sql.DataSource;
public class MySqlDbQuery extends AbstractDbQuery {
public MySqlDbQuery(DataSource dataSource) {
super(dataSource);
dbDialect = new MySqlDialect();
}
}
package cn.datax.common.database.query;
public class MySqlQuery extends AbstractDbQuery {
}
package cn.datax.common.database.query;
import cn.datax.common.database.DbQuery;
import cn.datax.common.database.constants.DbType;
import java.util.EnumMap;
import java.util.Map;
public class QueryRegistry {
private final Map<DbType, DbQuery> query_enum_map = new EnumMap<>(DbType.class);
public QueryRegistry() {
query_enum_map.put(DbType.MYSQL, new MySqlQuery());
}
public DbQuery getQuery(DbType dbType) {
return query_enum_map.get(dbType);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment