gpt4 book ai didi

java - Iseries JAVA 程序 - 连接问题

转载 作者:行者123 更新时间:2023-12-02 11:50:49 25 4
gpt4 key购买 nike

我一直在测试 Java 程序以从 iSeries 连接到 Oracle 数据库。 如果我对连接字符串进行硬编码,一切都会正常。 如果我将连接字符串的详细信息作为参数传递,然后在 Java 程序中构建连接字符串,则会收到驱动程序错误。 硬编码的连接字符串(有效)是..

Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@10.65.7.124:1521:XXXRQT","USERID", "Passwd");

当我传入 IP 地址、系统名、用户 ID 和密码时,我收到驱动程序错误。 Java程序是这样的......

import java.sql.*;
import com.ibm.as400.access.*;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import java.io.*;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;
import java.lang.*;

class TST19
{
public static void main (String[] args) throws Exception
{



String IPad=args[0];
String Oserver=args[1] + '"';
String UserName='"' +args[2] + '"';
String Passw='"' +args[3] + '"';
String ID='"' +args[4] + '"';
String PortNo= ":1521:";
String url1= '"' + "jdbc:oracle:thin:@";
String url2= url1 + IPad + PortNo + Oserver + ',' + UserName + ',' + Passw;





//Let's get a connection to the Oracle server

DriverManager.registerDriver (new oracle.jdbc.OracleDriver());






System.out.println(url1);
System.out.println(url2);

Connection conn = DriverManager.getConnection(url1 + url2);


System.out.println(args[0]);
System.out.println(args[1]);
System.out.println(args[2]);
System.out.println(args[3]);
System.out.println(args[4]);

Statement stmt = conn.createStatement();

conn.close();

System.out.println ("DONE!");
}

}

我只是希望连接能够正常工作(即收到“完成”消息!) 这是我收到的错误...

 "jdbc:oracle:thin:@                                                      
"jdbc:oracle:thin:@10.67.7.124:1521:XXXRQT","USERID","Passwd"
Exception in thread "main" java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(DriverManager.java:446)
at java.sql.DriverManager.getConnection(DriverManager.java:374)
at Phone_TST19.main(Phone_TST19.java:52)
Java program completed with exit code 1

最佳答案

首先,您将 url1 连接到连接字符串两次,一次是在构建 url2 时:

String url2= url1 + IPad + PortNo + Oserver + ',' + UserName + ',' + Passw;

当您检索连接时再次:

Connection conn = DriverManager.getConnection(url1 + url2);

更糟糕的是,DriverManager.getConnection() 需要三个参数:连接 URL、用户名和密码。此外,虽然 String 文字需要用双引号 " 括起来,但 String 对象的值不应包含相同的双引号。因此,您还需要重新定义 String 对象。

试试这个:

String Driver = "jdbc:oracle:thin:@";
String IPad = args[0];
String PortNo = ":1521:";
String Oserver = args[1];
String UserName = args[2];
String Passw = args[3];
String url = Driver + IPad + PortNo + Observer;
....
Connection conn = DriverManager.getConnection(url, UserName, Passw);

关于java - Iseries JAVA 程序 - 连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47884213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com