上一篇文章用用两种方式包装了SQLServer、MySQL、Oracle三种数据库的对应连接获取方式,这篇文章将通过JAVA枚举类做一个包装,使得通过枚举类也可以获取数据库连接。附上代码:
package com.jdbc;
import java.sql.Connection;
import java.sql.SQLException;
import oracle.jdbc.pool.OracleDataSource;
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
import com.microsoft.sqlserver.jdbc.SQLServerException;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
public enum GetConnectionByEnum{
Mysql{
@Override
public Connection getConnection(String db){
Connection connect=null;
MysqlDataSource msql=new MysqlDataSource();
msql.setServerName("localhost");
msql.setDatabaseName(db);
msql.setUser("root");
msql.setPassword("jack");
try{
connect=msql.getConnection();
}catch(SQLException e){
System.out.println(e.getMessage());
}
return connect;
}
@Override
public Connection getConnection(String server,String dbname,
String username,String password){
Connection connect=null;
MysqlDataSource msql=new MysqlDataSource();
msql.setServerName(server);
msql.setDatabaseName(dbname);
msql.setUser(username);
msql.setPassword(password);
try{
connect=msql.getConnection();
}catch(SQLException e){
System.out.println(e.getMessage());
}
return connect;
}
},
Oracle{
@Override
public Connection getConnection(String db){
OracleDataSource ods=null;
try{
ods=new OracleDataSource();
}catch(SQLException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
ods.setServerName("locahost");
ods.setDatabaseName(db);
ods.setUser("scott");
ods.setPassword("tiger");
// ---------------------------------------------------
ods.setDriverType("thin");
ods.setNetworkProtocol("tcp");
ods.setPortNumber(1521);
Connection connection= null;
try{
connection=ods.getConnection();
}catch(SQLException e){
System.out.println(e.getMessage());
}
return connection;
}
@Override
public Connection getConnection(String server,String dbname,
String username,String password){
OracleDataSource ods= null;
try{
ods=new OracleDataSource();
}catch(SQLException e){
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}
ods.setServerName(server);
ods.setDatabaseName(dbname);
ods.setUser(username);
ods.setPassword(password);
// ---------------------------------------------------
ods.setDriverType("thin");
ods.setNetworkProtocol("tcp");
ods.setPortNumber(1521);
Connection connection= null;
try{
connection=ods.getConnection();
}catch(SQLException e){
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}
return connection;
}
},
SqlServer{
@Override
public Connection getConnection(String db){
SQLServerDataSource sqlserver=new SQLServerDataSource();
sqlserver.setServerName("localhost");
sqlserver.setDatabaseName(db);
sqlserver.setUser("sa");
sqlserver.setPassword("guodefeng");
Connection con=null;
try{
con=sqlserver.getConnection();
}catch(SQLServerException e){
System.out.println(e.getMessage());
}
return con;
}
@Override
public Connection getConnection(String server,String dbname,
String username,String password){
SQLServerDataSource sqlserver=new SQLServerDataSource();
sqlserver.setServerName(server);
sqlserver.setDatabaseName(dbname);
sqlserver.setUser(username);
sqlserver.setPassword(password);
Connection con=null;
try{
con=sqlserver.getConnection();
}catch(SQLServerException e){
System.out.println(e.getMessage());
}
return con;
}
};
abstract public Connection getConnection(String db);
abstract public Connection getConnection(String server,String dbname,
String username,String password);
}