Я очень новичок в подключении к базе данных с Java, и мне трудно подключиться к базе данных, которую я предоставил. До сих пор я узнал, что установка правильных драйверов DB2 могла быть проблемой и помещать их в программу CLASSPATH
. Я сделал это, и я до сих пор не могу установить соединение. Пожалуйста помоги!Возможные решения для SQLNonTransientException
Вот распечатка моего отчета об ошибке в Eclipse:
com.ibm.db2.jcc.am.SqlNonTransientConnectionException: [СТК] [t4] [10380] [11951] [4,13. 127] Обязательное свойство «URLname» - неизвестный хост. ERRORCODE = -4222, SQLSTATE = 08001 на com.ibm.db2.jcc.am.id.a (id.java:667) на com.ibm.db2.jcc.am.id.a (id.java: 60) по адресу com.ibm.db2.jcc.am.id.a (id.java:103) по адресу com.ibm.db2.jcc.t4.a. (a.java:231) по адресу com.ibm .db2.jcc.t4.ba (b.java:1901) по адресу com.ibm.db2.jcc.am.kb.a (kb.java:700) по адресу com.ibm.db2.jcc.am.kb . (kb.java:653) в com.ibm.db2.jcc.t4.b. (b.java:332) в com.ibm.db2.jcc.DB2SimpleDataSource.getConnection (DB2SimpleDataSource.java:231) на com.ibm.db2.jcc.DB2SimpleDataSource.getConnection (DB2SimpleDataSource.java:197) на com.ibm.db2.jcc.DB2Driver.connect (DB2Driver.java:472) на com.ibm.db2 .jcc.DB2Driver.connect (DB2Driver.java:113) в java.sql.DriverManager.getConnection (Неизвестный источник) в java.sql.DriverManager.getConnection (Неизвестный источник) в ServerAcessDemo.main (ServerAcessDemo.java:23)
Вот код, я разработал до сих пор:
import java.sql.*;
public class ServerAcessDemo{
// jdbc driver name and database URL
static final String JDBC_DRIVER = "com.ibm.db2.jcc.DB2Driver";
static final String DB_URL = "jdbc:db2://URLname/portNumber";
// Database credentials
static final String USER = "userID";
static final String PASSWORD = "password";
public static void main(String[] args){
Connection conn = null;
try{
// Register JDBC driver
Class.forName(JDBC_DRIVER);
// open a connection
System.out.println("Connecting to a selected database...");
conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
}
catch(Exception e){
// handle errors for Class.forName
e.printStackTrace();
}
finally{
// finally block used to close resources
try{
if(conn!=null)
conn.close();
}
catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
}
}
Да, я понял. Это была синтаксическая ошибка в URL моего имени базы данных. Я положил косую черту вместо двоеточия перед портом #. Это всегда мелочи. Спасибо. – user2406060