Iseries JAVA程序-连接问题

Iseries JAVA程序-连接问题,java,oracle,jdbc,Java,Oracle,Jdbc,我一直在测试一个Java程序,以便从iSeries连接到Oracle数据库。 如果我硬编码连接字符串,一切正常。 如果我将连接字符串的细节作为参数传递,然后在Java程序中构建连接字符串,我将收到一个驱动程序错误。 硬编码连接字符串(有效)为 当我传入IP地址、系统名、用户ID和密码时,我收到一个驱动程序错误。 Java程序是这样的 import java.sql.*; import com.ibm.as400.access.*; import java.sql.Clob; import jav

我一直在测试一个Java程序,以便从iSeries连接到Oracle数据库。 如果我硬编码连接字符串,一切正常。 如果我将连接字符串的细节作为参数传递,然后在Java程序中构建连接字符串,我将收到一个驱动程序错误。 硬编码连接字符串(有效)为

当我传入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 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);

首先执行此操作,以便获得一些在调试中实际有用的输出

class TST19 
{
  public static void main (String[] args) throws Exception{     
        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]);

为什么要添加
ios
标记?为什么要用双引号填充字符串值作为字符串的一部分?我不是Java程序员。我从这里得到了这个程序。很好。我按你说的做了更改,但仍然出现相同的错误。
class TST19 
{
  public static void main (String[] args) throws Exception{     
        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]);