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); 
        } 
    }
}

 

转载于:https://www.cnblogs.com/beimengmuxi/p/6853600.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值