![](/img/trans.png)
[英]com.sybase.jdbc4.jdbc.SybConnection@36d4f39c: com.sybase.jdbc4.jdbc.SybSQLException: dual not found
[英]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 /密碼等敏感信息的代碼? 這將有幾個主要好處:
任何幫助是極大的贊賞。 我對Java非常陌生,因此如果這是一個愚蠢的問題,我深表歉意。 我從互聯網上獲得了上述代碼,並將其修改為我的目的。 非常感謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.