我正在尝试使用IBM Bluemix上的SSL连接到DB2数据库。
当我第一次尝试连接时没有使用SSL,它不起作用。阅读完文档后,我意识到它已启用SSL连接到数据库。
我尝试使用以下代码将其连接到数据库:
public boolean connect() {
try {
String url = "jdbc:db2://" + serverName + ":" + port + "/" + dbName+
":securityMechanism=9";
connection = DriverManager.getConnection(url, userName, passWord);
st = connection.createStatement();
return true;
} catch (Exception e) {
System.err.println(e.getMessage());
}
return false;
}
我仍然不太确定如何使用上面代码提供的SSL证书。
我尝试搜索示例,但大多数解释都不清楚或用于其他数据库系统。
答案 0 :(得分:1)
根据SQLDB documentation,如果您使用最新的 com.ibm.db2.jcc.DB2Driver 与JDBC连接,当前的SSL证书与驱动程序捆绑在一起不需要手动安装。
以下代码段显示了如何使用VCAP_SERVICES中提供的连接详细信息通过SSL连接到SQLDB。
public class SSLTEST {
/**
* @param args
*/
public static void main(String[] args) {
String ServerName = "hostname or IP address";
int PortNumber = 50001;
String DatabaseName = "SQLDB";
String user = "your_user_id_from_VCAP_SERVICES";
String userPassword = "your_password_from_VCAP_SERVICES";
java.util.Properties properties = new java.util.Properties();
properties.put("user", "user ID that has access to SQLDB");
properties.put("password", "password for the user ID that has access to SQLDB");
properties.put("sslConnection", "true");
String url = "jdbc:db2://" + ServerName + ":"+ PortNumber + "/" +
DatabaseName + ":" + traceFileLocation + ";";
java.sql.Connection con = null;
try
{
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
}
catch ( Exception e )
{
System.out.println("Error: failed to load Db2 jcc driver.");
}
try
{
System.out.println("url: " + url);
con = java.sql.DriverManager.getConnection(url, properties);
if (con != null) {
System.out.println("Success");
} else {
System.out.println("Failed to make the connection");
}
con.close();
}
catch (Exception e)
{
if (con != null) {
try {
con.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
e.printStackTrace();
}
}
答案 1 :(得分:1)
如果您使用Liberty,则会为您生成数据源,您可以使用jndi查找。
mle2(A~dskellam2(gmlambda=exp(logmu),ldiff=exp(logs), data=mydata,
parameters=list(logmu~B+C+D),
start=list(logmu=0,logs=0)))
" MYDB"是SQLDB服务的名称
https://developer.ibm.com/bluemix/2014/02/07/java-db2-10-minutes/
答案 2 :(得分:0)
最后我使用datasource连接数据库。 Context ic = new InitialContext(); DataSource db =(DataSource)context.lookup(" jdbc / MyDatabase");