java使用工厂模式实现hive与mysql数据源连接
时间: 2024-09-20 12:13:14 浏览: 48
spring-boot集成mybtis+druid实现hive/mysql多数据源切换
4星 · 用户满意度95%
在Java中,工厂模式可以用于实现Hive和MySQL等不同数据库的数据源连接,通过创建一系列的工厂类,每个工厂类负责生产对应数据库类型的连接对象。以下是使用工厂模式的一个简单示例:
首先,定义一个`DatabaseConnection`接口,包含通用的数据库连接方法:
```java
public interface DatabaseConnection {
void execute(String sql);
}
```
然后,分别创建`HiveConnection`和`MysqlConnection`类,它们都实现了`DatabaseConnection`接口,但具体的连接实现不同:
```java
public class HiveConnection implements DatabaseConnection {
// 实现Hive连接的方法...
}
public class MysqlConnection implements DatabaseConnection {
// 实现MySQL连接的方法...
}
```
接下来,创建一个`ConnectionFactory`接口,它有一个静态方法`getDatabaseConnection`,返回不同数据库的连接实例:
```java
public interface ConnectionFactory {
static DatabaseConnection getConnection(String dbType);
}
```
最后,为`ConnectionFactory`实现提供具体的数据库连接逻辑:
```java
public class HiveConnectionFactory implements ConnectionFactory {
public static DatabaseConnection getConnection(String dbType) {
if ("hive".equals(dbType)) {
return new HiveConnection();
}
throw new IllegalArgumentException("Unsupported database type: " + dbType);
}
}
public class MysqlConnectionFactory implements ConnectionFactory {
public static DatabaseConnection getConnection(String dbType) {
if ("mysql".equals(dbType)) {
return new MysqlConnection();
}
throw new IllegalArgumentException("Unsupported database type: " + dbType);
}
}
```
在需要使用数据源的地方,你可以通过`ConnectionFactory`获取相应的连接:
```java
String dbType = ...; // 根据实际情况选择"Hive"或"mysql"
DatabaseConnection connection = ConnectionFactory.getConnection(dbType);
connection.execute(sql);
```
阅读全文