de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
James Manes
James Manes
Question

Koneksi Driver ODBC JDBC

Saat ini saya sedang mengerjakan proyek untuk kelas di Universitas saya. Saya sedang belajar tentang menghubungkan dan memanipulasi database dan kami menggunakan file Microsoft .accdb.

Inilah yang saya miliki sejauh ini.

/* Perform database operations */
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        System.out.println("Driver loaded");

        connection = DriverManager.getConnection("jdbc:odbc:Lab3.accdb");
        System.out.println("Database connected");

        statement = connection.createStatement();

        ResultSet resultSet = statement.executeQuery("");

        while (resultSet.next()) {
            output.write("<p>" + resultSet.getString(1) + "\t" +
                resultSet.getString(2) + "\t" + resultSet.getString(3) + "</p>");
        }

        connection.close();
    } catch (ClassNotFoundException|SQLException e) {
        System.out.println("Database Access Error.");
        e.printStackTrace();
    }

Ketika mencari "sun.jdbc.odbc.JdbcOdbcDriver" Saya mendapatkan output berikut.

SEVERE:   java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1761)
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1611)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at changepass.ChangePasswordServlet.processRequest(ChangePasswordServlet.java:47)
at changepass.ChangePasswordServlet.doGet(ChangePasswordServlet.java:83)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
at java.lang.Thread.run(Thread.java:744)

Tampaknya cukup sederhana untuk dikerjakan. Sepertinya saya kehilangan driver atau sesuatu di sepanjang garis tersebut. Namun saya kesulitan menemukan apa yang harus saya lakukan tentang hal ini. Apakah driver disertakan dengan JDK di mana saja? Apakah saya harus mengunduh sesuatu yang terpisah? Apakah itu tergantung pada Sistem Operasi saya? (Mac OS X 10.9). Atau apakah saya hanya melakukan sesuatu yang salah dalam kode?

Saya akan sangat menghargai bantuannya! Terima kasih!

Info Tambahan:

[[email protected]: ~]$ java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
[[email protected]: ~]$ 
11 2013-10-31T14:57:01+00:00 2
Gord Thompson
Gord Thompson
Pertanyaan edit 2 November 2013 в 11:07
Pemrograman
ms-access
macos
java
jdbc
jdbc-odbc
Solution / Answer
Gord Thompson
Gord Thompson
2 November 2013 в 11:05
2013-11-02T11:05:32+00:00
Lebih
Sumber
Sunting
#22679204

Seperti yang disebutkan dalam komentar untuk pertanyaan tersebut, JDBC-ODBC Bridge - seperti yang ditunjukkan namanya - hanya mekanisme untuk lapisan JDBC untuk "berbicara dengan &" lapisan ODBC. Bahkan jika Anda memiliki JDBC-ODBC Bridge pada Mac Anda, Anda juga perlu memiliki

  • implementasi ODBC itu sendiri, dan
  • driver ODBC yang sesuai untuk basis data target (ACE/Jet, a.k.a. "Access")

Jadi, bagi kebanyakan orang, menggunakan teknologi JDBC-ODBC Bridge untuk memanipulasi database ACE/Jet ("Access") benar-benar merupakan pilihan praktis hanya di bawah Windows. Penting juga untuk dicatat bahwa JDBC-ODBC Bridge akan</strike> telah dihapus di Java 8 (ref: di sini).

Ada cara lain untuk memanipulasi database ACE/Jet dari Java, seperti UCanAccess dan Jackcess. Keduanya adalah implementasi Java murni sehingga mereka bekerja pada platform non-Windows. Untuk detail tentang bagaimana menggunakan UCanAccess lihat

Memanipulasi database Access dari Java tanpa ODBC

 Community
Community
Jawaban edit 23 Mei 2017 в 12:00
17
0
Lokesh Gajbhiye
Lokesh Gajbhiye
18 April 2014 в 9:00
2014-04-18T21:00:08+00:00
Lebih
Sumber
Sunting
#22679205

Tidak bekerja dengan ODBC-Bridge untuk saya juga. Saya mendapatkan cara untuk menginisialisasi koneksi ODBC menggunakan driver ODBC.

 import java.sql.*;  
 public class UserLogin
 {
     public static void main(String[] args)
     {
        try
        {    
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

            // C:\\databaseFileName.accdb" - location of your database 
           String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + "C:\\emp.accdb";

            // specify url, username, pasword - make sure these are valid 
            Connection conn = DriverManager.getConnection(url, "username", "password");

            System.out.println("Connection Succesfull");
         } 
         catch (Exception e) 
         {
            System.err.println("Got an exception! ");
            System.err.println(e.getMessage());

          }
      }
  }
0
0
Related communities 4
Programmer JAVA indonesia
Programmer JAVA indonesia
1 119 pengguna
Buka telegram
macOS Indonesia Channel
macOS Indonesia Channel
553 pengguna
macOS Group @macOS_ID Windows Group @WinTenGroup
Buka telegram
jvmusergroup
jvmusergroup
351 pengguna
Bismillahirrohmanirohim. Perhatian! Grup ini merupakan ekspansi dari grup Forum Java Programmer Indonesia di Facebook. Silahkan berbagi pengalaman dan masalah seputar Java dan keluarganya. https://t.me/JVMIndonesia Admin : @hendisantika34
Buka telegram
Java Indonesia🇲🇨
Java Indonesia🇲🇨
144 pengguna
Programmer Java Indonesia. Grup ini digunakan untuk bertanya terkait materi belajar Java / fullstack Warning=> -dilarang promosi(izin adm -18+🔞 - berbicara sopan - no spam /boot Mohon ikut aturan grup belum di keluarkan
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Asilbek Qadamboyev
Terdaftar 1 hari yang lalu
2
Akshit Mehta
Terdaftar 4 hari yang lalu
3
me you
Terdaftar 1 minggu yang lalu
4
Никита иванов
Terdaftar 1 minggu yang lalu
5
Alex1976G_06
Terdaftar 1 minggu yang lalu
ID
JA
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi