java에서 msaccess 데이터베이스에 연결하는 방법을 스스로 가르쳐려고합니다. 난 그냥 테이블에서 모든 것을 선택하려고 내 코드가 다음java.sql.SQLException : 잘못된 핸들
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public abstract class AccessDBConnect2 {
public static Connection connect(){
String fileName = "C:/Users/Bridget/Documents/EmployeeSys.accdb";
Connection con = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+fileName;
con = DriverManager.getConnection(url,"","");
} catch (Exception e) {
// Handle exceptions ...
System.out.println(e.toString());
System.out.println("A problem accessing the database");
e.printStackTrace();
} finally {
try { if(con!=null) {con.close();} } catch (Exception e) {}
}
return con;
}
public static void closeConnection(Connection conn){
try{
conn.close();
}catch (Exception e){
}
}
을 다음과 같이 데이터베이스에 액세스하는 클래스를 설정했습니다. msAccess에서 테이블을 만들었고 코드가 위의 코드에서 connect 메서드를 통해 문제없이 데이터베이스를 찾고 다소 액세스하는 것으로 나타납니다. 나는 연결을 사용하여의 prepareStatement를 호출 할 때 문제가 발생, 즉 코드 라인 :
이stm = conn.prepareStatement(sql);
전체 코드는 다음과 같습니다
import java.sql.*;
public class Program2{
public static void main(String[] args) {
try{
// Load the JDBC driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
// Establishing db connection
Connection conn = AccessDBConnect.connect();
// Displaying all records from employee file
System.out.println("Display records of all employees");
display(conn);
// Closing the connection
AccessDBConnect.closeConnection(conn);
}catch (Exception e){
System.out.println("Error");
}
}
// Display details of all employees
public static void display(Connection conn){
PreparedStatement stm = null;
// SQL statement
String sql = "SELECT * FROM Employee";
ResultSet rs;
try {
stm = conn.prepareStatement(sql); // Prepare the SQL statement
rs = stm.executeQuery(); // Execture the SQL statement
// Navigate through the ResultSet and print
while (rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
String gender = rs.getString("gender");
String address = rs.getString("address");
System.out.println("ID: \t \t" + id);
System.out.println("Name: \t \t" + name);
System.out.println("Gender: \t" + gender);
System.out.println("Address: \t" + address);
System.out.println(" ");
}
// Closing the resultSet
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void test(){
int a = "hello";
}
은}
정말 고마워, 마침내 문제가됐다. 이것은 명백한 실수였습니다. 몇 시간이나 몇 시간 동안 당신을 미치게하는 유형이었습니다. Java 8에서 JDBC-ODBC의 대안을 살펴 보겠습니다. 다시 한번 감사드립니다. – Bridget