Хотите использовать базу данных DSN-Less Access с Java. Старые ответы не решают [дублировать]

String.prototype.replaceAll = function (replaceThis, withThis) {
   var re = new RegExp(replaceThis,"g"); 
   return this.replace(re, withThis);
};
var aa = "abab54..aba".replaceAll("\\.", "v");

Проверьте этот инструмент

29
задан TallTed 21 April 2017 в 21:13
поделиться

3 ответа

Для Java 7 вы можете просто опустить оператор Class.forName(), поскольку он не требуется.

Для Java 8 вы не можете использовать мост JDBC-ODBC, потому что он был удален. Вам нужно будет использовать что-то вроде UCanAccess . Для получения дополнительной информации см.

Манипулирование базы данных Access из Java без ODBC

29
ответ дан Community 18 August 2018 в 23:37
поделиться
  • 1
    это jackcess .. но jackcess также не помогает мне. снова происходят некоторые исключения. Я использую Database db = DatabaseBuilder.open (новый файл («db.mdb»)); – hina abbasi 11 April 2014 в 04:54
  • 2
    База данных db; db = DatabaseBuilder.open (новый файл («E: //PersonsDB/personsinfo.mdb")); – hina abbasi 12 April 2014 в 10:37
  • 3
    @hinaabbasi Если у вас есть вопрос об использовании UCanAccess или Jackcess, пожалуйста, задайте новый вопрос , который содержит соответствующий код и фактические сообщения об ошибках, которые вы получаете. – Gord Thompson 12 April 2014 в 17:08
  • 4
    Он работает для базы данных Visual FoxPro? Я просто пытался и не работал. Поскольку у него нет расширения файла .accdb. благодаря – Yubaraj 17 June 2016 в 11:07
  • 5
    @Yubaraj - Нет, UCanAccess не может работать с базами данных VFP. – Gord Thompson 17 June 2016 в 12:21

Настройка:

My OS windows 8 64bit
Eclipse version Standard/SDK Kepler Service Release 2
My JDK is jdk-8u5-windows-i586
My JRE is jre-8u5-windows-i586

Это как я преодолел свою ошибку.

В самом начале мой Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") также не работал. Затем я заходил на сайт и загружал файл UCanAccess 2.0.8 zip (как сказал Mr.Gord Thompson) и разархивировал его.

Затем вы также сможете найти эти * .jar в этой распакованной папке:

ucanaccess-2.0.8.jar
commons-lang-2.6.jar
commons-logging-1.1.1.jar
hsqldb.jar
jackcess-2.0.4.jar

Тогда я сделал, что я скопировал все эти 5 файлов и вставил их в эти 2 местоположения:

C:\Program Files (x86)\eclipse\lib
C:\Program Files (x86)\eclipse\lib\ext

(я сделал что смешно, потому что я не смог импортировать эти библиотеки в свой проект)

Затем я снова открываю eclipse своим проектом. Затем я вижу все файлы * .jar в папке System Library JRE. / g7]

Наконец, мой код работает.

public static void main(String[] args) 
{

    try
    {

        Connection conn=DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\Hasith\\Documents\\JavaDatabase1.mdb");
        Statement stment = conn.createStatement();
        String qry = "SELECT * FROM Table1";

        ResultSet rs = stment.executeQuery(qry);
        while(rs.next())
        {
            String id    = rs.getString("ID") ;
            String fname = rs.getString("Nama");

            System.out.println(id + fname);
        }
    }
    catch(Exception err)
    {
        System.out.println(err);
    }


    //System.out.println("Hasith Sithila");

}
3
ответ дан Garrett Hyde 18 August 2018 в 23:37
поделиться
  • 1
    так как оракул купил солнце, все вещи в джаве снижаются, черт возьми, оракул – Dunken 25 June 2016 в 03:02

в JDK 8 мост jdbc odbc больше не используется и, таким образом, удаляется из JDK. для использования базы данных Microsoft Access в JAVA вам понадобятся 5 дополнительных библиотек JAR.

1- hsqldb.jar

2- jackcess 2.0.4.jar

3 - commons-lang-2.6.jar

4- commons-logging-1.1.1.jar

5- ucanaccess-2.0.8.jar

add эти библиотеки в ваш проект java и начинаются со следующих строк.

Connection conn=DriverManager.getConnection("jdbc:ucanaccess://<Path to your database i.e. MS Access DB>");
Statement s = conn.createStatement();

путь может быть как E: / Project / JAVA / DBApp

, а затем ваш запрос для выполнения. Подобно

ResultSet rs = s.executeQuery("SELECT * FROM Course");
while(rs.next())
    System.out.println(rs.getString("Title") + " " + rs.getString("Code") + " " + rs.getString("Credits"));

определенным импортам, которые будут использоваться. нужно использовать блок catch catch и некоторые необходимые вещи, которые нельзя забыть.

Помните, что нет необходимости подключать драйверы, такие как jdbc odbc или любые вещи.

5
ответ дан Umair Bhatti 18 August 2018 в 23:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: