zoukankan      html  css  js  c++  java
  • enum

    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();
    }
    }

  • 相关阅读:
    Xcode界面切换动画效果
    Objective—C中的排序及Compare陷阱
    串行口应用
    在windows上搭建C语言开发环境——借助eclipse和MinGW
    Leetcode--Two Sum
    C++语言笔记系列之十六——赋值兼容规则&多继承的二义性
    在Powerdesigner中创建概念数据模型
    数据模型
    数据描述的三个领域
    开启PowerDesigner15工具栏上的被禁用掉的图标
  • 原文地址:https://www.cnblogs.com/hyp5490-/p/6376636.html
Copyright © 2011-2022 走看看