java连接Access数据库

Posted 北梦木兮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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); 
        } 
    }
}

 

以上是关于java连接Access数据库的主要内容,如果未能解决你的问题,请参考以下文章

java项目连接access数据库

在 java 中与 MS Access 数据库建立 SQL 连接时找不到合适的驱动程序

Java连接Access数据库改成MySQL连接数据库

java中执行access数据库插入错误!!!急!!!

java连接Access数据库

部分代码片段