Ошибка выполнения JDK7: имя источника данных не найдено и драйвер по умолчанию не указан - PullRequest
0 голосов
/ 29 апреля 2018

Я получаю ошибку во время выполнения

java.sql.SQLException: [Microsoft] [ODBC Driver Manager] Не найдено имя источника данных и не указан драйвер по умолчанию

когда я пытался войти в систему, используя указанный код. Ниже приведен код. Я использую Java JRE 7 для его компиляции. Может кто-нибудь, пожалуйста, дайте мне знать, в чем проблема? Я опустил большую часть кода. Ссылка на полный код: https://codeshare.io/5gNyZw.

try
{
    String database="StegoKeys.mdb";
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    String url="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + database + ";PWD=cegospdv";
    Connection con=DriverManager.getConnection(url);

    String sql="select * from keys";
    PreparedStatement ps=con.prepareStatement(sql);

    ResultSet rs=ps.executeQuery();
    while(rs.next())
    {
       if(txtKey.getText().equals(rs.getString("key")))
           {
            id=rs.getString("uname");
            if(txtname.getText().equals(id))
            {
                int stat=Integer.parseInt(rs.getString("status"));
                flag=1;
                if(stat==1)
                {
                      button1.setEnabled(true);
                      button2.setEnabled(true);
                      btnadminset.setVisible(true);
                      txtKey.setEnabled(false);
                      btnLogin.setEnabled(false);
                }                   
                else
                {
                      button1.setEnabled(true);
                      txtname.setEnabled(false);
                      txtKey.setEnabled(false);
                      btnLogin.setEnabled(false);
                }
            }
            //System.out.println(id+" in MainStego");
            con.close();
            break;
        }               
    }
    if(flag==0)
    {
        JOptionPane.showMessageDialog(this,"Invalid User & Key");
    }
   }
 catch(Exception ex)
 {
    JOptionPane.showMessageDialog(this,"Run Time Error");

1 Ответ

0 голосов
/ 29 апреля 2018

Наиболее вероятной причиной вашей ошибки является то, что вы выполняете свой код Java под 64-битной JVM (виртуальной машиной Java). Driver={Microsoft Access Driver (*.mdb)} доступно только для 32-разрядных приложений.

Ваши варианты:

  1. Загрузите и установите 32-битную JRE (Java Runtime Environment) для Java 7 и используйте ее для запуска вашего кода.
  2. Загрузите и установите 64-разрядную версию Access Database Engine , а затем используйте Driver={Microsoft Access Driver (*.mdb, *.accdb)} в своем коде, работающем под 64-разрядной JVM.
  3. Используйте UCanAccess вместо моста JDBC-ODBC и драйвера ODBC для доступа
...