Java + MS Access
by Евгений Викторович Арбатский - Выложил в TUTOS ссылку на про Jackcess для работы с MS Access. Есть Jackess-JDBC.
Связка JDBC-ODBC должна быть в Java SDK (не в JRE, не в OpenJDK, а именно Java SDK). Но пока не получилось проверить - проверка будет позже.
Выложил файл Access_JDBC30.jar, который содержит триальную версию HXTT Access (JDBC-драйвер для MS Access, http://www.hxtt.com/).
Проверена работа на фрагменте:
import java.sql.*;
import java.awt.*;
import java.io.*;
public class MainApp {
private static final String accessDBURLPrefix = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
private static final String accessDBURLSuffix = ";DriverID=22;READONLY=false}";
/**
* Create the main frame.
*/
public MainApp() {
}
// main method
public static void main(String[] args) {
System.out.println("Start\n");
// Initialize the Access Bridge Driver
try{
Class.forName("com.hxtt.sql.access.AccessDriver").newInstance();
} catch(Exception e) {
System.err.println("Access Driver not found!");
System.err.println(e.getMessage());
}
// Initialize the JdbcOdbc Bridge Driver
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch(ClassNotFoundException e) {
System.err.println("JdbcOdbc Bridge Driver not found!");
System.err.println(e.getMessage());
}
//Please see Connecting to the Database section of Chapter 2. Installation in Development Document
//Please change "demodata" to your database directory
String url = "jdbc:Access:///demodata";
//Please replace with your query statement.
//You should read SQL syntax in HXTT Access Development Document
String sql = "select * from test where number1>0";
try {
Connection con = DriverManager.getConnection(url, "", "");
} catch(Exception e) {
System.err.println("Error!");
System.err.println(e.getMessage());
}
System.out.println("End\n");
}
}
Связка JDBC-ODBC должна быть в Java SDK (не в JRE, не в OpenJDK, а именно Java SDK). Но пока не получилось проверить - проверка будет позже.
Выложил файл Access_JDBC30.jar, который содержит триальную версию HXTT Access (JDBC-драйвер для MS Access, http://www.hxtt.com/).
Проверена работа на фрагменте:
import java.sql.*;
import java.awt.*;
import java.io.*;
public class MainApp {
private static final String accessDBURLPrefix = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
private static final String accessDBURLSuffix = ";DriverID=22;READONLY=false}";
/**
* Create the main frame.
*/
public MainApp() {
}
// main method
public static void main(String[] args) {
System.out.println("Start\n");
// Initialize the Access Bridge Driver
try{
Class.forName("com.hxtt.sql.access.AccessDriver").newInstance();
} catch(Exception e) {
System.err.println("Access Driver not found!");
System.err.println(e.getMessage());
}
// Initialize the JdbcOdbc Bridge Driver
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch(ClassNotFoundException e) {
System.err.println("JdbcOdbc Bridge Driver not found!");
System.err.println(e.getMessage());
}
//Please see Connecting to the Database section of Chapter 2. Installation in Development Document
//Please change "demodata" to your database directory
String url = "jdbc:Access:///demodata";
//Please replace with your query statement.
//You should read SQL syntax in HXTT Access Development Document
String sql = "select * from test where number1>0";
try {
Connection con = DriverManager.getConnection(url, "", "");
} catch(Exception e) {
System.err.println("Error!");
System.err.println(e.getMessage());
}
System.out.println("End\n");
}
}
Re: Java + MS Access
by Евгений Викторович Арбатский - $ /usr/lib/jvm/java-1.6.0-sun-1.6.0/jre/bin/java MainApp
Start
Error!
demodata doesn't exist or can't be accessed. If you're using mapped drives to access database files, you may need to check the security permissions.
End
С полным JDK от Sun инициализация работает
$ java MainApp
Start
JdbcOdbc Bridge Driver not found!
sun.jdbc.odbc.JdbcOdbcDriver
Error!
demodata doesn't exist or can't be accessed. If you're using mapped drives to access database files, you may need to check the security permissions.
End
С openJDK инициализация не работает
Start
Error!
demodata doesn't exist or can't be accessed. If you're using mapped drives to access database files, you may need to check the security permissions.
End
С полным JDK от Sun инициализация работает
$ java MainApp
Start
JdbcOdbc Bridge Driver not found!
sun.jdbc.odbc.JdbcOdbcDriver
Error!
demodata doesn't exist or can't be accessed. If you're using mapped drives to access database files, you may need to check the security permissions.
End
С openJDK инициализация не работает
Re: Java + MS Access
by Евгений Викторович Арбатский - $ java MainApp
Start
JdbcOdbc Bridge Driver not found!
sun.jdbc.odbc.JdbcOdbcDriver
Got Connection.
Driver Name : HXTT Access JDBC Driver -- A Type 4 JDBC3.0 driver for MS Access 95/97/2000/XP/2002/2003
Driver Version : Version 3.2 For Evaluation Purpose
End
С тестовой базой запросы работают.
$ /usr/lib/jvm/java-1.6.0-sun-1.6.0/jre/bin/java MainApp
Start
Error!
[unixODBC][Driver Manager]Data source name not found, and no default driver specified
End
С тестовой базой запросы не работают, потому что надо настраивать unixODBC. Это уже оставляю вам на эксперименты. Вполне возможно что я неверно определяю настройки для ODBC, но для оценки возможности связки Java+MS Access текущего скрипта достаточно.
Start
JdbcOdbc Bridge Driver not found!
sun.jdbc.odbc.JdbcOdbcDriver
Got Connection.
Driver Name : HXTT Access JDBC Driver -- A Type 4 JDBC3.0 driver for MS Access 95/97/2000/XP/2002/2003
Driver Version : Version 3.2 For Evaluation Purpose
End
С тестовой базой запросы работают.
$ /usr/lib/jvm/java-1.6.0-sun-1.6.0/jre/bin/java MainApp
Start
Error!
[unixODBC][Driver Manager]Data source name not found, and no default driver specified
End
С тестовой базой запросы не работают, потому что надо настраивать unixODBC. Это уже оставляю вам на эксперименты. Вполне возможно что я неверно определяю настройки для ODBC, но для оценки возможности связки Java+MS Access текущего скрипта достаточно.