SQLNonTransientException的可能解决方案

时间:2013-05-21 15:05:03

标签: java db2 database-connection

我对使用Java的数据库连接非常陌生,并且很难连接到我提供的数据库。到目前为止,我已经了解到安装正确的DB2驱动程序可能是一个问题,并将它们放在程序的CLASSPATH中。我这样做了,我仍然无法建立连接。请帮助!

以下是Eclipse中我的错误报告的打印:

  

com.ibm.db2.jcc.am.SqlNonTransientConnectionException:   [jcc] [t4] [10380] [11951] [4.13.127]必需属性“URLname”是   未知主机。 ERRORCODE = -4222,SQLSTATE = 08001 at   com.ibm.db2.jcc.am.id.a(id.java:667)at   com.ibm.db2.jcc.am.id.a(id.java:60)at   com.ibm.db2.jcc.am.id.a(id.java:103)at   com.ibm.db2.jcc.t4.a.(a.java:231)at   com.ibm.db2.jcc.t4.b.a(b.java:1901)at   com.ibm.db2.jcc.am.kb.a(kb.java:700)at   com.ibm.db2.jcc.am.kb.(kb.java:653)at   com.ibm.db2.jcc.t4.b.(b.java:332)at   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)at   com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:113)at at   java.sql.DriverManager.getConnection(未知来源)at   java.sql.DriverManager.getConnection(未知来源)at   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
    }
}

1 个答案:

答案 0 :(得分:1)

我不确定这是否就这么简单,但你设置:

static final String DB_URL = "jdbc:db2://URLname/portNumber";

并且错误是Required property "URLname" is unknown host,因此您似乎提供了错误的DB_URL值,它应该类似jdbc:db2://localhost:50000/your_database_name,假设您的数据库在50000端口上本地运行,您需要提供正确的数据库名称。