博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
enum
阅读量:4485 次
发布时间:2019-06-08

本文共 3011 字,大约阅读时间需要 10 分钟。

package com.zte.ums.beas.base.datasource;

import java.util.Properties;

public enum Database implements DataSourceProtocolType {

ORACLE(0, "oracle") {

@Override
public String getUrl(String ip, String port, String dbName) {
return "jdbc:oracle:thin:@" + ip + ":" + port + ":" + dbName;
}

@Override

public String getDriverName() {
return "oracle.jdbc.driver.OracleDriver";
}
},
MYSQL(0, "mysql") {
@Override
public String getUrl(String ip, String port, String dbName) {
return "jdbc:mysql://" + ip + ":" + port + "/" + dbName + "?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull";
}

@Override

public String getDriverName() {
return "com.mysql.jdbc.Driver";
}

},

IMPALA(0, "impala") {
@Override
public String getUrl(String ip, String port, String dbName) {
return "jdbc:hive2://" + ip + ":" + port + "/" + dbName;
}

@Override

public String getDriverName() {
return "org.apache.hive.jdbc.HiveDriver";
}

@Override

public Properties getConnectProperties(String userName, String password, int flag) {
ImpalaAuthType authType = ImpalaAuthType.fromValue(flag);
Properties info = new Properties();
switch (authType) {
case NOAUTH:
info.put("auth", "noSasl");
break;
case KERBEROS:
info.put("auth", password);
break;
case LDAP:
info.put("user", userName);
info.put("password", password);
break;
default:
info.put("auth", "noSasl");
}
return info;
}
},
DB2(0, "db2") {
@Override
public String getUrl(String ip, String port, String dbName) {
return String.format("jdbc:db2://%s:%s/%s", ip, port, dbName);
}

@Override

public String getDriverName() {
return "com.ibm.db2.jcc.DB2Driver";
}
},
SYBASEASE(0, "sybaseASE") {
@Override
public String getUrl(String ip, String port, String dbName) {
return "jdbc:sybase:Tds:" + ip + ":" + port + "/" + dbName;
}

@Override

public String getDriverName() {
return "com.sybase.jdbc3.jdbc.SybDriver";
}
},
SQLSERVER(0, "sqlserver") {
@Override
public String getUrl(String ip, String port, String dbName) {
return "jdbc:sqlserver://" + ip + ":" + port + ";databaseName=" + dbName;
}

@Override

public String getDriverName() {
return "com.microsoft.sqlserver.jdbc.SQLServerDriver";
}
};

private int mark;

private String name;

public int getMark() {

return mark;
}

public String getName() {

return name;
}

private Database(int mark, String name) {

this.mark = mark;
this.name = name;
}

public static Database fromValue(String dbType) {

for (Database e : values()) {
if (e.getName().equalsIgnoreCase(dbType)) {
return e;
}
}
//throw new IllegalArgumentException("Not supported DB type:" + dbType);
return null;
}

public abstract String getUrl(String ip, String port, String dbName);

public abstract String getDriverName();

public Properties getConnectProperties(String userName, String password, int flag) {

Properties info = new Properties();
info.put("user", userName);
info.put("password", password);
return info;
}

@Override

public boolean match(int resourceShareType) {
return resourceShareType == getMark();
}
}

转载于:https://www.cnblogs.com/hyp5490-/p/6376636.html

你可能感兴趣的文章
Keil 4.0 生成bin文件
查看>>
sql语句的进化--hibernate篇
查看>>
python爬虫之cookie
查看>>
11.超市收银系统的项目
查看>>
2017年5月29号课堂笔记
查看>>
HDU4247【瞎搞】
查看>>
lightoj 1125【背包·从n个选m个】
查看>>
HDU 1243 反恐训练营(最长公共序列)
查看>>
mysql数据库隔离级别
查看>>
(六)buildroot使用详解
查看>>
chrome修改UserAgent,调试
查看>>
Source Insight4.0 试用。。试用。。试用。。
查看>>
python循环for,range,xrange;while
查看>>
hadoop的节点间的通信
查看>>
HashMap
查看>>
mysql 主从 重新同步
查看>>
论如何制做一个工程APP的测试内容
查看>>
如何通过Java启动linux脚本
查看>>
linux系统调用之网络管理2
查看>>
三种样式表插入方法
查看>>