gpt4 book ai didi

java - 导入 com.sybase.jdbc4.jdbc.*;错误

转载 作者:行者123 更新时间:2023-11-29 08:51:43 25 4
gpt4 key购买 nike

我正在编写我的第一个应该连接到数据库的 java 程序。我已经成功地创建了 JDBC 驱动程序(4.0 版)并且它 ping 成功了。接下来,我正在尝试下面的代码,但它不起作用。我发现我需要导入 com.sybase.*;为了那个原因。这给出了编译错误,说明无法解析导入。 (我是 java 的新手。这是我的第一个程序,所以非常感谢任何帮助)。谢谢。我正在使用 sybase 15.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、端口、用户标识、密码都硬编码在.java 文件中。但是,我在上面的代码中使用 JDBC 驱动程序“Sybase15”时插入了所有这些信息。

如何编写直接使用驱动程序的代码,而无需输入 IP/PORT、userid/password 等敏感信息?这将有几个主要好处:

  1. 如果驱动程序信息发生变化,我只能更新驱动程序,代码仍然有效,
  2. 无需在代码中嵌入用户 ID/密码信息。因此提高了安全性,多人也可以通过配置自己的 JDBC 连接来使用相同的 .java 源代码。

非常感谢任何帮助。我是 Java 的新手,所以如果这是一个愚蠢的问题,我深表歉意。我从互联网上得到了上面的代码,并根据我的目的对其进行了修改。非常感谢。

关于java - 导入 com.sybase.jdbc4.jdbc.*;错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22492060/

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