簡體   English   中英

導入com.sybase.jdbc4.jdbc。*; 錯誤

[英]import com.sybase.jdbc4.jdbc.*; error

我正在編寫我的第一個應連接到數據庫的Java程序。 我已經成功創建了JDBC驅動程序(4.0版),並且可以ping通。 接下來,我正在嘗試下面的代碼,它不起作用。 我發現我需要導入com.sybase。*; 為了那個原因。 出現編譯錯誤,指出無法解決導入。 (我對java非常陌生。這是我的第一個程序,因此對您的幫助非常感謝)。 謝謝。 我正在使用sybase15.x。

enter code here

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.sybase.jdbc4.jdbc.*;    --> this is where I see error. 


public class DBConnTest {
       // JDBC driver name and database URL
       //static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
        //static final String DB_URL = "jdbc:mysql://localhost/EMP";
        static final String JDBC_DRIVER = "Sybase15";
        static final String DB_URL = "jdbc:sybase:Tds:<IP>:<PORT>/<DB>?CHARSET=iso_1";

       //  Database credentials
       static final String USER = "abc";
       static final String PASS = "def";

       public static void main(String[] args) {
       Connection conn = null;
       Statement stmt = null;
       try{
          //STEP 2: Register JDBC driver
          //Class.forName("com.sybase.jdbc4.jdbc.SybDriver");
           Class.forName("com.sybase.jdbc4.jdbc.SybDriver");

          //STEP 3: Open a connection
          System.out.println("Connecting to database...");
          conn = DriverManager.getConnection(DB_URL,USER,PASS);

          //STEP 4: Execute a query
          System.out.println("Creating statement...");
          stmt = conn.createStatement();
          String sql;
          sql = "SELECT ID,AGE,FIRST,AST FROM testtbl";
          ResultSet rs = stmt.executeQuery(sql);

          //STEP 5: Extract data from result set
          while(rs.next()){
             //Retrieve by column name
             int id  = rs.getInt("ID");
             int age = rs.getInt("AGE");
             String first = rs.getString("FIRST");
             String last = rs.getString("LAST");

             //Display values
             System.out.print("ID: " + id);
             System.out.print(", AGE: " + age);
             System.out.print(", FIRST: " + first);
             System.out.println(", LAST: " + last);
          }
          //STEP 6: Clean-up environment
          rs.close();
          stmt.close();
          conn.close();
       }catch(SQLException se){
          //Handle errors for JDBC
          se.printStackTrace();
       }catch(Exception e){
          //Handle errors for Class.forName
          e.printStackTrace();
       }finally{
          //finally block used to close resources
          try{
             if(stmt!=null)
                stmt.close();
          }catch(SQLException se2){
          }// nothing we can do
          try{
             if(conn!=null)
                conn.close();
          }catch(SQLException se){
             se.printStackTrace();
          }//end finally try
       }//end try
       System.out.println("Goodbye!");
    }//end main
    }//end FirstExample

所以我讓這部分工作。 我必須將C:\\ Sybase \\ jconnect-7 \\ classes(這是我安裝Sybase組件的位置)中的jconn4.jar放到我的Java代碼所在的位置:C:\\ Program Files \\ Java \\ jdk1.6 .. \\ jre \\ lib,現在我可以連接和查詢數據庫了。 完成此操作后,無需在導入中放入import com.sybase語句。

我還有一個問題。 上面代碼的編寫方式,IP,端口,用戶ID,密碼所有內容都硬編碼在.java文件中。 但是,在上述代碼中使用JDBC驅動程序“ Sybase15”時,我已經插入了所有這些信息。

如何編寫直接使用驅動程序並消除放置IP / PORT,用戶ID /密碼等敏感信息的代碼? 這將有幾個主要好處:

  1. 如果驅動程序信息發生更改,我只能更新驅動程序,並且代碼仍然有效,並且
  2. 用戶ID /密碼信息不必嵌入到代碼中。 因此,為了提高安全性,多個人可以通過配置自己的JDBC連接性來使用相同的.java源代碼。

任何幫助是極大的贊賞。 我對Java非常陌生,因此如果這是一個愚蠢的問題,我深表歉意。 我從互聯網上獲得了上述代碼,並將其修改為我的目的。 非常感謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM