实现根据mysql或oracle或sqlserver或 Postgresql的数据库类型创建数据源用java代码实现
时间: 2024-03-06 13:48:03 浏览: 18
可以使用Java中的JDBC来实现创建不同数据库类型的数据源。以下是一个示例代码:
```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DataSourceCreator {
private static final String MYSQL_DRIVER_CLASS = "com.mysql.jdbc.Driver";
private static final String ORACLE_DRIVER_CLASS = "oracle.jdbc.driver.OracleDriver";
private static final String SQLSERVER_DRIVER_CLASS = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String POSTGRESQL_DRIVER_CLASS = "org.postgresql.Driver";
private static final String MYSQL_URL = "jdbc:mysql://localhost:3306/mydatabase";
private static final String ORACLE_URL = "jdbc:oracle:thin:@localhost:1521:mydatabase";
private static final String SQLSERVER_URL = "jdbc:sqlserver://localhost:1433;databaseName=mydatabase";
private static final String POSTGRESQL_URL = "jdbc:postgresql://localhost:5432/mydatabase";
private static final String MYSQL_USERNAME = "myusername";
private static final String ORACLE_USERNAME = "myusername";
private static final String SQLSERVER_USERNAME = "myusername";
private static final String POSTGRESQL_USERNAME = "myusername";
private static final String MYSQL_PASSWORD = "mypassword";
private static final String ORACLE_PASSWORD = "mypassword";
private static final String SQLSERVER_PASSWORD = "mypassword";
private static final String POSTGRESQL_PASSWORD = "mypassword";
public static Connection createDataSource(String databaseType) throws SQLException, ClassNotFoundException {
String driverClass;
String url;
String username;
String password;
switch (databaseType) {
case "mysql":
driverClass = MYSQL_DRIVER_CLASS;
url = MYSQL_URL;
username = MYSQL_USERNAME;
password = MYSQL_PASSWORD;
break;
case "oracle":
driverClass = ORACLE_DRIVER_CLASS;
url = ORACLE_URL;
username = ORACLE_USERNAME;
password = ORACLE_PASSWORD;
break;
case "sqlserver":
driverClass = SQLSERVER_DRIVER_CLASS;
url = SQLSERVER_URL;
username = SQLSERVER_USERNAME;
password = SQLSERVER_PASSWORD;
break;
case "postgresql":
driverClass = POSTGRESQL_DRIVER_CLASS;
url = POSTGRESQL_URL;
username = POSTGRESQL_USERNAME;
password = POSTGRESQL_PASSWORD;
break;
default:
throw new IllegalArgumentException("Invalid database type: " + databaseType);
}
Class.forName(driverClass);
Connection connection = DriverManager.getConnection(url, username, password);
return connection;
}
}
```
以上代码会根据传入的参数 `databaseType` 来创建对应数据库类型的数据源,并返回一个 `Connection` 对象。可以通过以下代码来调用:
```
try {
Connection connection = DataSourceCreator.createDataSource("mysql");
// Do something with the connection...
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
}
```
需要注意的是,以上代码仅仅是创建了一个数据源,还需要根据具体需求使用该数据源来进行数据库操作。