这是一个非常奇怪的问题,但我在想是否有任何解决方案?
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;
答案 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);