从JDBC连接到ODBC数据源时出错

时间:2014-05-17 06:40:37

标签: sql sql-server jdbc jdbc-odbc

编译时没有错误,但我在运行程序时收到此错误:

  

java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver

这是我在SQL Server中的表中插入值的代码。

import javax. swing.*;
        import java.awt.*;
        import java.awt.event.*;
        import java.sql.*;

        class login  implements ActionListener

        {
        JFrame loginframe;
        JPanel loginpanel, loginpanel1;
        JLabel name, password, loginhead, loginstatus;
        JTextField nametxt;
        JPasswordField passwordtxt;
        JButton loginsubmit, loginreset;

        public login()
        {
        loginframe=new JFrame();
        loginframe.setSize(300,300);
        loginframe.setDefaultCloseOperation(loginframe.EXIT_ON_CLOSE);
        loginframe.setVisible(true);

        loginpanel=new JPanel();
        loginpanel1=new JPanel(new GridLayout(4,2));

        loginhead=new JLabel("Login");
        loginstatus=new JLabel("");
        name=new JLabel("Name");
        password=new JLabel("Password");

        nametxt=new JTextField(10);
        passwordtxt=new JPasswordField(10);


        loginsubmit=new JButton("submit");
        loginsubmit.addActionListener(this);
        loginreset=new JButton("Reset");
        loginreset.addActionListener(this);



        loginpanel1.add(loginhead);
        loginpanel1.add(loginstatus);
        loginpanel1.add(name);
        loginpanel1.add(nametxt);
        loginpanel1.add(password);
        loginpanel1.add(passwordtxt);
        loginpanel1.add(loginsubmit);
        loginpanel1.add(loginreset);


        loginpanel.add(loginpanel1);

        loginframe.add(loginpanel);

        }
        public void actionPerformed(ActionEvent ae)
        {
        String name=nametxt.getText();
        String pass=passwordtxt.getText();
        if(ae.getSource()==loginsubmit)
        {
        String url1="jdbc:odbc:"+"login";
        try{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection c=DriverManager.getConnection(url1);
        Statement s=c.createStatement();
        PreparedStatement ps=c.prepareStatement("insert into signup values(?,?)");
        s.executeUpdate("create table signup(First_name varchar(20), Password varchar(20))");
        System.out.println("Basic information table created");
        ps.setString(1,name);
        ps.setString(2,pass);
        ps.execute();
        System.out.println("Values inserted");
        s.close();
        c.close();
        }
        catch(Exception e)
        {
        System.out.println(e);
        }
        }


        }

        public static void main(String args[])
        {
        login l=new login();
        }
        }

2 个答案:

答案 0 :(得分:0)

JDBC-ODBC Bridge已从Java 8中删除。要连接到SQL Server数据库,您需要使用真正的JDBC驱动程序。微软提供的是:

Microsoft JDBC Driver for SQL Server

答案 1 :(得分:0)

当我不得不将Java代码连接到MSAccess时,我遇到了同样的问题。 是从Java 8和更高版本中删除了JDBC-ODBC Bridge。现在,如果要将Java代码连接到数据库,请使用jdk7,都可以here

在此处注册并登录以下载jdk 7。

通过控制面板-管理工具-ODBC等,以传统方法连接数据库。