Java JDBC-ODBC网桥连接

Java JDBC-ODBC网桥连接,java,jdbc,Java,Jdbc,我正在学习使用Java的数据库,下面是简单的代码: import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener

我正在学习使用Java的数据库,下面是简单的代码:

import java.awt.BorderLayout;

import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;


public class ClassGUIApplication extends JFrame{

private JPanel centerPnl = new JPanel();
private JPanel northPnl = new JPanel();
private JLabel idLbl = new JLabel("Id:");
private JLabel nameLbl = new JLabel("Name:");
private JLabel surnameLbl = new JLabel("Surname:");
private JLabel gradeLbl = new JLabel("Grade:");
private JTextField idTxt = new JTextField(30);
private JTextField nameTxt = new JTextField(30);
private JTextField surnameTxt = new JTextField(30);
private JTextField gradeTxt = new JTextField(30);
private JButton insertBtn = new JButton("INSERT");
private JTable table;
private StudentDBManager mng = new StudentDBManager();
private ClassTableModel model;
public ClassGUIApplication() {
    setTitle("Class Grade Report");
    setLayout(new GridLayout(2,1));
    centerPnl.setLayout(new GridBagLayout());
    GridBagConstraints gc = new GridBagConstraints();
    gc.gridx = 0;
    gc.gridy = 0;
    centerPnl.add(idLbl, gc);
    gc.gridx = 1;
    gc.gridy = 0;
    centerPnl.add(idTxt, gc);
    gc.gridx = 0;
    gc.gridy = 1;
    centerPnl.add(nameLbl, gc);
    gc.gridx = 1;
    gc.gridy = 1;
    centerPnl.add(nameTxt, gc);
    gc.gridx = 0;
    gc.gridy = 2;
    centerPnl.add(surnameLbl, gc);
    gc.gridx = 1;
    gc.gridy = 2;
    centerPnl.add(surnameTxt, gc);
    gc.gridx = 0;
    gc.gridy = 3;
    centerPnl.add(gradeLbl, gc);
    gc.gridx = 1;
    gc.gridy = 3;
    centerPnl.add(gradeTxt, gc);
    gc.gridx = 2;
    gc.gridy = 4;
    centerPnl.add(insertBtn, gc);
    insertBtn.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            int id = Integer.parseInt(idTxt.getText());
            String name = nameTxt.getText();
            String surname = surnameTxt.getText();
            double grade = Double.parseDouble(gradeTxt.getText());
            Student student = new Student(id,name,surname,grade);
            mng.addStudent(student);
            List<Student> classList = mng.getStudents();
            model = new ClassTableModel(classList);
            table.setModel(model);

        }
    });

    northPnl.setLayout(new GridLayout());
    List<Student> classList = mng.getStudents();
    model = new ClassTableModel(classList);
    table = new JTable(model);
    northPnl.add(new JScrollPane(table));

    add(centerPnl);
    add(northPnl);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setPreferredSize(new Dimension(500,500));
    setVisible(true);
    pack();
}

public static void main(String[] args) {
    ClassGUIApplication app = new ClassGUIApplication();
}


}


public static void main(String[] args) {
    ClassGUIApplication app = new ClassGUIApplication();
}


}
导入java.awt.BorderLayout;
导入java.awt.Dimension;
导入java.awt.GridBagConstraints;
导入java.awt.GridBagLayout;
导入java.awt.GridLayout;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.util.List;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JPanel;
导入javax.swing.JScrollPane;
导入javax.swing.JTable;
导入javax.swing.JTextField;
公共类ClassGUI应用程序扩展JFrame{
private JPanel centerPnl=new JPanel();
private JPanel northPnl=new JPanel();
私有JLabel idLbl=新JLabel(“Id:”);
私有JLabel nameLbl=新JLabel(“名称:”);
私人JLabel姓氏LBL=新JLabel(“姓氏”);
私有JLabel gradeLbl=新JLabel(“等级:”);
私有JTextField idTxt=新JTextField(30);
私有JTextField name txt=新的JTextField(30);
私有JTextField姓氏txt=新JTextField(30);
私有JTextField gradeTxt=新JTextField(30);
私有JButton insertBtn=新JButton(“插入”);
专用JTable表;
private StudentDBManager mng=new StudentDBManager();
私有类表模型;
公共类GUI应用程序(){
setTitle(“等级报告”);
setLayout(新网格布局(2,1));
setLayout(新的GridBagLayout());
GridBagConstraints gc=新的GridBagConstraints();
gc.gridx=0;
gc.gridy=0;
centerPnl.add(idLbl,gc);
gc.gridx=1;
gc.gridy=0;
centerPnl.add(idTxt,gc);
gc.gridx=0;
gc.gridy=1;
centerPnl.add(nameLbl,gc);
gc.gridx=1;
gc.gridy=1;
centerPnl.add(nameTxt,gc);
gc.gridx=0;
gc.gridy=2;
中心地址(姓LBL,gc);
gc.gridx=1;
gc.gridy=2;
centerPnl.add(姓氏TXT,gc);
gc.gridx=0;
gc.gridy=3;
centerPnl.add(gradeLbl,gc);
gc.gridx=1;
gc.gridy=3;
centerPnl.add(gradeTxt,gc);
gc.gridx=2;
gc.gridy=4;
centerPnl.add(插入BTN,gc);
insertBtn.addActionListener(新ActionListener(){
@凌驾
已执行的公共无效操作(操作事件e){
int id=Integer.parseInt(idTxt.getText());
String name=nameTxt.getText();
字符串姓氏=姓氏txt.getText();
double grade=double.parseDouble(gradeTxt.getText());
学生=新生(id、姓名、姓氏、年级);
mng.addStudent(student);
List classList=mng.getStudents();
模型=新的ClassTableModel(类列表);
表2.setModel(model);
}
});
setLayout(新的GridLayout());
List classList=mng.getStudents();
模型=新的ClassTableModel(类列表);
表=新JTable(型号);
添加(新JScrollPane(表));
添加(中心PNL);
添加(northPnl);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
设置首选尺寸(新尺寸(500500));
setVisible(真);
包装();
}
公共静态void main(字符串[]args){
ClassGUIApplication app=新建ClassGUIApplication();
}
}
公共静态void main(字符串[]args){
ClassGUIApplication app=新建ClassGUIApplication();
}
}
Eclipse提供的eror如下所示:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source) at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at StudentDBManager.openConnection(StudentDBManager.java:21) at StudentDBManager.(StudentDBManager.java:15) at ClassGUIApplication.(ClassGUIApplication.java:36) at ClassGUIApplication.main(ClassGUIApplication.java:102) java.sql.SQLException:[Microsoft][ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配 位于sun.jdbc.odbc.JdbcOdbc.createSQLException(未知源) 位于sun.jdbc.odbc.JdbcOdbc.standardError(未知源) 位于sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(未知源) 位于sun.jdbc.odbc.JdbcOdbcConnection.initialize(未知源) 位于sun.jdbc.odbc.JdbcOdbcDriver.connect(未知源) 位于java.sql.DriverManager.getConnection(未知源) 位于java.sql.DriverManager.getConnection(未知源) 在StudentDBManager.openConnection(StudentDBManager.java:21) 在StudentDBManager。(StudentDBManager.java:15) 在ClassGUIApplication.(ClassGUIApplication.java:36) 位于ClassGUIApplication.main(ClassGUIApplication.java:102)
您的操作系统或JVM是32位还是64位

我认为64位JVM没有ODBC桥驱动程序类。64位操作系统建议您阅读以下内容:


每当我遇到错误,我做的第一件事就是把它粘贴到谷歌上。我通常知道我不是第一个发现问题的人。

您的操作系统或JVM是32位还是64位

我认为64位JVM没有ODBC桥驱动程序类。64位操作系统建议您阅读以下内容:


每当我遇到错误,我做的第一件事就是把它粘贴到谷歌上。我通常知道我不是第一个看到我的问题的人。

StudentDBManager.openConnection(StudentDBManager.java:21)
jdbc URL是什么样子的?请也为StudentDBManager类提供代码。这可以让我们更清楚地了解这一点以及实际试图与数据源连接的代码。@user1091692:您使用的是64位操作系统吗?
StudentDBManager.openConnection(StudentDBManager.java:21)
jdbc URL是什么样子的?请也为StudentDBManager类提供代码。这可以让我们更清楚地了解这一点以及实际试图与数据源连接的代码。@user1091692:您使用的是64位操作系统吗?我的操作系统和jre是64位的,我尝试使用32位odbcad,因为64位不支持圣诞快乐!我更愿意投票并接受我对你的感谢的回答。上面说,这需要声誉:(我的操作系统和jre是64位的,我尝试使用32位odbcad,因为64位不支持圣诞快乐!我更愿意投票并接受我对你的感谢的回答。上面说,这需要声誉:(