java - SQLNonTransientException 的可能解决方案

标签 java db2 database-connection

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

这是我在 Eclipse 中打印的错误报告:

com.ibm.db2.jcc.am.SqlNonTransientConnectionException: [jcc][t4][10380][11951][4.13.127] Required property "URLname" is unknown host. 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) at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:197) at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:472) at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:113) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) 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
    }
}

最佳答案

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

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

错误是必需的属性“URLname”是未知主机,因此您似乎提供了错误的DB_URL值,它应该类似于jdbc:db2://localhost: 50000/your_database_name,假设您的数据库在 50000 端口上本地运行,您需要提供正确的数据库名称。

关于java - SQLNonTransientException 的可能解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16673316/

相关文章:

java - 尝试转换时遇到问题

stored-procedures - 如何从 DB2 上的 COBOL 存储过程调用 COBOL 批处理程序

java - 从 domino 使用 JDBC 连接到 DB2

mysql - phpmyadmin (wamp) 不再工作

java.lang.ClassNotFoundException : org. jsoup.nodes.Document 使用 Maven

java - BSON 序列化器/反序列化器

java - 如何轻松地从 Intellij 制作 jar 文件并正确运行它?

db2 - 在 SquirrelSQL 中显示 db2 错误代码

php - fatal error : Call to a member function fetch() on boolean by reading records from database

c++ - 连接时mysql cpp连接器抛出UnknownException