问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java怎么直接连接access数据库

发布网友 发布时间:2022-04-09 22:37

我来回答

2个回答

懂视网 时间:2022-04-10 02:58

,不支持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数据库

标签:try   gets   users   action   stack   .exe   stat   scroll   auto   

热心网友 时间:2022-04-10 00:06

通过jdbc直接连。驱动是com.hxtt.sql.access.AccessDriver

在http://www.hxtt.com/access.zip可以下到,

还需要数据库方言com.hxtt.support.hibernate.HxttAccessDialect

数据库方言包在http://www.hxtt.com/test/hibernate.jar可以下到。

配置的时候使用。

DRIVER=com.hxtt.sql.access.AccessDriver
URL=jdbc:access:///D:\workspace\database\fireDB.mdb
USERNAME=admin
PASSWORD=

注意linux下的\是/,刚开始导入的url是/。害我想了半天才明白他是linux。

改成\了以后就可以了,还要注意在java字符串里\要写成转译字符'\\'

其他没问题了。这样就可以使用hibernate自动生成代码了。还是满方便的。

发个模板。

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//注册驱动
Connection conn = null; //创建链接
conn = DriverManager.getConnection("jdbc:odbc:FFFF", "admin", "");
Statement st;
st=conn.createStatement(); //创建句柄
ResultSet rs=st.executeQuery("select lamp_address,lamp_text from lamp as model where model.lamp_type='S';");//得到结果集
while (rs.next())
{
al1.add(rs.getString(1));
al2.add(rs.getString(2));
}

st.execute(sb.toString());

把这个模板改一改,用新的URL和类就行了。
还有一种是ODBC连接的,我比较推荐的方法
可以去我的空间里找相应的文章
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 乐拼虎式坦克图纸? 扫地机器人主板坏了什么表现? skogstad扫地机器人不动 每年死于扫地机器人爆炸的有多少人 扫地机器人如何日常维护? 扫地机器人充电时电机烧了,怎么维修 请问科沃斯扫地机器人只走不吸尘电机烧坏,换新电机也不工作。查过电路板没有供电。请问还能修好吗? 身份证都拿了3个月了怎么支付宝的身份证实名的人脸识别还在网上相不够清晰,怎么回事? 支付宝身份证实名认证扫描不清晰怎么办 支付宝实名认证,我上传的身份证照清晰度不够,我自己没有相机,该怎么办? 耳机插在电脑上测试有声音 但听音乐没有声音 支付宝实名认证不了显示身份证照片模糊是为什么 手机支付宝提现怎么取消绑定银行卡怎么办 支付宝提现过程中到银行怎么取消 支付宝如何取消提现钱到银行卡? 支付宝还没有刷脸,就显示您在*门的证件照片不够清晰,要更新什么照片才能解决? 我的电脑插上耳机能播放音乐,但是外放没声音,这是怎么回事? 支付宝上的刷脸认证说我公安局身份证照片不清晰无法开通怎么办 华泰保险浙江省分公司全称 微星970A-G43主板设置了快速启动,现在进不到bios怎么办,求电脑高手支招,谢谢 可以买卖美国上市的股票吗? 铁木真时期的蒙古骑兵跟完颜阿骨打时期的女真骑兵哪一个更强呢? 完颜阿骨打、孛儿只斤.铁木真、爱新觉罗.努尔哈赤,三者中谁更强一些?? 我们中国人能买在美国上市的股票吗?如果买了怎么交易? 铁木真,忽必烈,努尔哈赤,元颜阿骨打,分别是什么人? 完颜阿骨打和成吉思汗是什么关系? 完颜阿骨打是谁?铁木真就是成吉思汗吗?岳飞是哪个朝代的? 铁木真VS完颜阿骨打,比武艺……? 元朝铁木真和清朝努尔哈赤有什么亲缘关系吗? 阿里美国上市国民可以买股票么 现在在农村有好多镇上的房子都没房产证请问这样的房子可以买吗? 耶律阿保机VS完颜阿骨打VS孛儿只斤铁木真 买的乡镇商品房没有房产证怎么办? 成吉思汗与完颜阿骨打打谁厉害? 铁木真将女真族改名为什么铁木真建立了哪一朝代 在镇上没有房产证的房子能买吗?如果买要注意哪些 细数称霸草原的6大雄主,都是贵族出生,但仍有两人算是白手起家吗? 镇上买房子有房产证吗 完颜阿骨打VS铁木真 归纳耶律阿保机、元昊、完颜阿骨打、铁木真的共同点。