连接字符串名称

时间:2014-10-14 14:22:13

标签: java string

这是一个非常奇怪的问题,但我在想是否有任何解决方案?

Scenerio是我想要连接一个字符串名称

就像有一个字符串:

public static final String MYSQL_USERNAME = "mysql_user";
public static final String DB2_USERNAME = "db2admin";
public static final String ORACLE_USERNAME = "oracleuser";

...

if(dbType == "mysql"){
   username = "MYSQL"+_username;
   ...
}else if(dbType == "db2"){
   username = "DB2"+_username;
   ...
}else if(dbType == "oracle"){
   username = "ORACLE"+_username;
   ...
}

即。在运行时我想基于dbType连接String并获取用户名。

基本上我想制作"MYSQL"+_username = MYSQL_USERNAME

我想避免这3个

应该只有一行

username = dbType+_username;

2 个答案:

答案 0 :(得分:1)

我认为这是一个糟糕的解决方案。

更好的方法是使用每个数据库具有相同键名的特定于数据库的.properties文件。您的代码无需知道或关心您以这种方式连接的数据库。

答案 1 :(得分:0)

使用用户名设置地图。

public static final Map<String, String> userNames = new HashMap<>();
{
    userNames.put("mysql",  "mysql_user");
    userNames.put("db2",    "db2admin");
    userNames.put("oracle", "oracleuser");
}

然后,您可以在给定数据库名称的情况下在地图中查找所需的条目。

userName = userNames.get(dbType);