java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要为大家详细介绍了 java 连接 Access 数据库的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
java 连接 Access 数据库的方法,分享给大家
步骤:1. 现在我们一般使用的编译环境是 java SE 1.8,不支持 odbc 的连接方式,所以可以用 jdbc 的连接方式,还要在网上下载一个 jdbc 的驱动包。(这里用了 Access_JDBC30.jar 包,在网上可以找到)
2. 右击 JRE System Libary-> 点击 Build Path-> 点击 Add External JARs-> 将 Access_JDBC30.jar 添加进去。
3. 在这些都准备好之后,j 建立数据库,还要将 Access 数据库的版本降为 2000 或者 2003 的版本。
连接数据库代码:
- Class.forName("com.hxtt.sql.access.AccessDriver").newInstance();
- Connection conn = DriverManager.getConnection("jdbc:Access:///C:/Users/k05/Desktop/Address.mdb","","");
- //数据库路径 用户名 密码
数据库示例:
运行结果:
代码如下:
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import javax.swing.*;
- /**
- *
- * @version 1.22 2017-4-7
- * @author BeiMengMuXi
- */
- public class ASTest
- {
- public static void main(String[] args)
- {
- new ASFrame();
- }
- }
- import java.sql. * ;
- import java.awt. * ;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing. * ;
- public class ASFrame extends JFrame {
- private static final int DEFAULT_WEIDTH = 400;
- private static final int DEFAULT_HEIGHT = 680;
- private JScrollPane scpDemo;
- private JTable tabDemo;
- private JScrollPane scpDemo1;
- private JTable tabDemo1;
- public ASFrame() {
- JFrame f = new JFrame();
- f.setTitle("通讯录");
- f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- f.setSize(DEFAULT_WEIDTH, DEFAULT_HEIGHT);
- f.setVisible(true);
- f.setResizable(false);
- f.setLayout(null);
- JLabel label1 = new JLabel("联系人");
- f.add(label1);
- label1.setFont(new Font("宋体", 1, 30));
- label1.setBounds(150, 30, 100, 40);
- this.scpDemo = new JScrollPane();
- this.scpDemo.setBounds(40, 110, 320, 500);
- try {
- btnShow();
- } catch(InstantiationException | IllegalAccessException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- // 将组件加入到窗体中
- f.add(this.scpDemo);
- }
- public void btnShow() throws InstantiationException,
- IllegalAccessException {
- String sql = "select * from Address";
- try {
- // 获得连接
- Class.forName("com.hxtt.sql.access.AccessDriver").newInstance();
- Connection conn = DriverManager.getConnection("jdbc:Access:///C:/Users/k05/Desktop/Address.mdb", "", "");
- PreparedStatement pstm = conn.prepareStatement(sql);
- ResultSet rs = pstm.executeQuery(sql);
- // 计算有多少条记录
- int count = 0;
- while (rs.next()) {
- count++;
- }
- rs = pstm.executeQuery();
- // 将查询获得的记录数据,转换成适合生成JTable的数据形式
- Object[][] info = new Object[count][2];
- count = 0;
- while (rs.next()) {
- info[count][0] = rs.getString("name");
- info[count][1] = rs.getString("phonenumber");
- count++;
- }
- // 定义表头
- String[] title = {
- "姓名",
- "电话号码"
- };
- // 创建JTable
- this.tabDemo = new JTable(info, title);
- // 显示表头
- //this.jth = this.tabDemo.getTableHeader();
- // 将JTable加入到带滚动条的面板中
- this.scpDemo.getViewport().add(tabDemo);
- rs.close();
- conn.close();
- } catch(ClassNotFoundException cnfe) {
- JOptionPane.showMessageDialog(null, "数据源错误", "错误", JOptionPane.ERROR_MESSAGE);
- } catch(SQLException sqle) {
- JOptionPane.showMessageDialog(null, "数据操作错误", "错误", JOptionPane.ERROR_MESSAGE);
- }
- }
- }
来源: http://www.phperz.com/article/18/0103/357023.html