В настоящее время у меня есть одно приложение, в котором я могу получить доступ к .mdb или .accdb файл с JdbcOdbcDriver, чтобы добавить некоторые данные.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:MsAccessDSN");
но здесь мне нужно настроить системный DSN. Нам нужно добавить новый источник данных (драйвер Microsoft Access), а затем указать местоположение файла .mdb. Только тогда приведенный выше код будет работать.
Предположим, я хочу запустить свое приложение в другой системе, тогда мне нужно сделать то же самое на этом компьютере. Если я даю свое приложение клиенту, и он / она не знает, как настроить файл .mdb. Тогда все мои усилия пропадут даром. Таким образом, доступен любой драйвер, с помощью которого я создаю файл .mdb с помощью своего Java-кода, а затем добавляю все данные в таблицу файла .mdb. Или есть другой способ, где Java-код может создать файл .mdb и получить доступ к этому файлу базы данных.
Я попробовал этот код, который добавляет данные без настройки системного DNS:
public class TestMsAccess {
private static Connection con;
private static Statement stm;
private static String tableName = "EmpDetail";
private static int id_is = 2;
private static String name_is = "Employee1";
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\MSAccessProject/Employee.mdb", "", "");
stm = con.createStatement();
// enter value into table
String addRow = "INSERT INTO " + tableName + " VALUES ( "
+ id_is + ", '"
+ name_is + "')";
stm.execute(addRow);
if (con != null) { con.close(); }
if (stm != null) { stm.close(); }
}
}
Но проблема в том, что этот код не создает файл .mdb автоматически, но работает, когда я создаю файл .mbd и таблицу перед запуском этого кода.