转载 JAVA SE 连接ACCESS
本代码实现连接 本机数据库的方法。
操作步骤:
1、进入控制面板,打开“管理工具→数据源(ODBC)”,弹出“ODBC数据源管理器”,在“用户DSN”选项卡中,单击选中名称为“Visio Database Sample”,驱动程序为“Microsoft Access Driver(*.mdb,*.accdb)”的选项(注意:*.mdb 是ACCESS 2003的数据库扩展名,*.accdb是access 2007及以上的扩展名,如果看不到该选项,请确认已经安装access软件),然后单击 “添加”按钮,弹出“创建新数据源”对话框,选择“Microsoft Access Driver(*.mdb,*.accdb)”(对access 2003 和 access2007均适用),单击“完成”按钮,弹出 "ODBC Microsoft Access 安装" 对话框,在 数据源名 中输入 你的access 数据库名称,比如 “book”,然后单击 “选择”按钮,在弹出的 对话框中找到 你电脑上的数据库文件(如我的 “book”数据库文件),最后单击确定按钮,返回相应的对话框,然后选择 “确定” “完成”,最后回到 “ODBC数据源管理器”可以看到 用户数据源中出现了“book”数据源,
2、连接数据库的关键语句:
加载驱动程序:
String sDriver="sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(sDriver);
连接数据库:
Connection dbCon=null;
String sCon="jdbc:odbc:book"; //book 就是数据库名称
dbCon=DriverManager.getConnection(sCon);
执行数据库操作:
Statement stmt=stmt=dbCon.createStatement();
String sSQL="SELECT * "+" FROM bookindex";
ResultSet rs=stmt.executeQuery(sSQL);
while(rs.next()){
int num;
System.out.print(rs.getString("BookID")+" "); //输出对应字段的值
System.out.print(rs.getString("BookTitle")+" ");
System.out.print(rs.getString("BookAuthor"));
System.out.println(" " +rs.getFloat("BookPrice"));
}
关闭数据库连接
stmt.close();
dbCon.close();
实例代码如下(有 book数据库,表bookindex,字段有 :BookID、BookTitle、BookAuthor、BookPrice)
- <SPAN style="FONT-SIZE: 18px">import java.sql.*;
- public class DBconnTest {
- public static void main(String args[]) {
- //步骤1:加载驱动程序
- String sDriver="sun.jdbc.odbc.JdbcOdbcDriver";
- try{
- Class.forName(sDriver);
- }
- catch(Exception e){
- System.out.println("无法加载驱动程序");
- return;
- }
- System.out.println("步骤1:加载驱动程序——成功!");
- Connection dbCon=null;
- Statement stmt=null;
- String sCon="jdbc:odbc:book";
- try{
- dbCon=DriverManager.getConnection(sCon);
- if(dbCon!=null){
- System.out.println("步骤2:连接数据库——成功!");
- }
- //步骤3:建立JDBC的Statement对象
- stmt=dbCon.createStatement();
- if(stmt!=null){
- System.out.println("步骤3:建立JDBC的Statement对象——成功!");
- }
- }
- catch(SQLException e){
- System.out.println("连接错误:"+sCon);
- System.out.println(e.getMessage());
- if(dbCon!=null){
- try{
- dbCon.close();
- }
- catch(SQLException e2){}
- }
- return;
- }
- try{//执行数据库查询,返回结果
- String sSQL="SELECT * "+" FROM bookindex";
- ResultSet rs=stmt.executeQuery(sSQL);
- while(rs.next()){
- System.out.print(rs.getString("BookID")+" ");
- System.out.print(rs.getString("BookTitle")+" ");
- System.out.print(rs.getString("BookAuthor"));
- System.out.println(" " +rs.getFloat("BookPrice"));
- }
- }
- catch(SQLException e){
- System.out.println(e.getMessage());
- }
- finally{
- try{
- //关闭步骤3所开启的statement对象
- stmt.close();
- System.out.println("关闭statement对象");
- }
- catch(SQLException e){}
- try{
- //关闭数据库连接
- dbCon.close();
- System.out.println("关闭数据库连接对象");
- }
- catch(SQLException e){}
- }
- }
- }
- </SPAN>
import java.sql.*;
public class DBconnTest {
public static void main(String args[]) {
//步骤1:加载驱动程序
String sDriver="sun.jdbc.odbc.JdbcOdbcDriver";
try{
Class.forName(sDriver);
}
catch(Exception e){
System.out.println("无法加载驱动程序");
return;
}
System.out.println("步骤1:加载驱动程序——成功!");
Connection dbCon=null;
Statement stmt=null;
String sCon="jdbc:odbc:book";
try{
dbCon=DriverManager.getConnection(sCon);
if(dbCon!=null){
System.out.println("步骤2:连接数据库——成功!");
}
//步骤3:建立JDBC的Statement对象
stmt=dbCon.createStatement();
if(stmt!=null){
System.out.println("步骤3:建立JDBC的Statement对象——成功!");
}
}
catch(SQLException e){
System.out.println("连接错误:"+sCon);
System.out.println(e.getMessage());
if(dbCon!=null){
try{
dbCon.close();
}
catch(SQLException e2){}
}
return;
}
try{//执行数据库查询,返回结果
String sSQL="SELECT * "+" FROM bookindex";
ResultSet rs=stmt.executeQuery(sSQL);
while(rs.next()){
System.out.print(rs.getString("BookID")+" ");
System.out.print(rs.getString("BookTitle")+" ");
System.out.print(rs.getString("BookAuthor"));
System.out.println(" " +rs.getFloat("BookPrice"));
}
}
catch(SQLException e){
System.out.println(e.getMessage());
}
finally{
try{
//关闭步骤3所开启的statement对象
stmt.close();
System.out.println("关闭statement对象");
}
catch(SQLException e){}
try{
//关闭数据库连接
dbCon.close();
System.out.println("关闭数据库连接对象");
}
catch(SQLException e){}
}
}
}
上面的方法问题:只对本机有效,换个电脑就找不到数据源了,需要重新配置 access数据源
在连接数据库时,可以直接指定数据库 的路径,最好将数据库和源文件放到一个目录里,这样就不用再配置数据源了。方法如下:
将指定数据源语句代码更改为如下:
原先代码:
String sCon="jdbc:odbc:book";
更改后代码:(注意,这里将数据库与程序源文件放到同一目录下,如果用 eclipse 则是放到 项目文件夹中,与.classpath 同级。
String sCon = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=book.mdb";
也可以在eclipse 中建立个文件夹 比如 DB 文件夹,则语句还要加上目录如下:
String sCon = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=DB/book.mdb";
实例如下:
- <SPAN style="FONT-SIZE: 18px">import java.sql.*;
- public class DBconnTest {
- public static void main(String args[]) {
- //步骤1:加载驱动程序
- String sDriver="sun.jdbc.odbc.JdbcOdbcDriver";
- try{
- Class.forName(sDriver);
- }
- catch(Exception e){
- System.out.println("无法加载驱动程序");
- return;
- }
- System.out.println("步骤1:加载驱动程序——成功!");
- Connection dbCon=null;
- Statement stmt=null;
- String sCon = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=book.mdb";
- try{
- dbCon=DriverManager.getConnection(sCon);
- if(dbCon!=null){
- System.out.println("步骤2:连接数据库——成功!");
- }
- //步骤3:建立JDBC的Statement对象
- stmt=dbCon.createStatement();
- if(stmt!=null){
- System.out.println("步骤3:建立JDBC的Statement对象——成功!");
- }
- }
- catch(SQLException e){
- System.out.println("连接错误:"+sCon);
- System.out.println(e.getMessage());
- if(dbCon!=null){
- try{
- dbCon.close();
- }
- catch(SQLException e2){}
- }
- return;
- }
- try{//执行数据库查询,返回结果
- String sSQL="SELECT * "+" FROM bookindex";
- ResultSet rs=stmt.executeQuery(sSQL);
- while(rs.next()){
- System.out.print(rs.getString("BookID")+" ");
- System.out.print(rs.getString("BookTitle")+" ");
- System.out.print(rs.getString("BookAuthor"));
- System.out.println(" " +rs.getFloat("BookPrice"));
- }
- }
- catch(SQLException e){
- System.out.println(e.getMessage());
- }
- finally{
- try{
- //关闭步骤3所开启的statement对象
- stmt.close();
- System.out.println("关闭statement对象");
- }
- catch(SQLException e){}
- try{
- //关闭步骤3所开启的statement对象
- dbCon.close();
- System.out.println("关闭数据库连接对象");
- }
- catch(SQLException e){}
- }
- }
- }
- </SPAN>
转载 JAVA SE 连接ACCESS的更多相关文章
- java远程连接access数据库
本文转载自http://www.voidcn.com/article/p-tlrtkqlp-k.html 1 rmijdbc远程连接access数据库 正常情况下,常用的数据库sql server, ...
- java项目连接access数据库
1.导入Access_JDBC30.jar到项目中 jar包百度云链接:https://pan.baidu.com/s/10HFM3HomMArvfHjklA_1MA 密码:0qxp 项目名称-> ...
- Java连接Access数据库的那些坑
Java 使用 JDBC 连接Access数据库 需要掌握的技能 1.Java SE基本技术 2.懂点JDBC技术 能够学到如何使用Java正确的连接JDBC 环境 window8.1 64位 jdk ...
- java连接access数据库
完整代码: package odbcj; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prep ...
- java连接Access数据库的两种方法
where ziduan in(select ziduan from table) 嵌套 ResultSet rs = pst.executeQuery();List list = new Ar ...
- Java Web项目中连接Access数据库的配置方法
本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...
- MySQL java连接被拒绝:java.sql.SQLException: Access denied for user 'root'@'****' (using password: YES)
//系统运行出现错误:java.sql.SQLException: Access denied for user 'root'@'***.**.**.**' (using password: YES) ...
- Java 连接Access
Java 连接Access 第一次使用连接Access数据库, 记录一下遇到的坑 Access驱动下载地址 http://pan.baidu.com/s/1o8ltTfc 不使用WINDOW的建立数据 ...
- Eclipse使用jdbc连接MySql数据库报:java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
在使用eclipse连接mysql数据库时报异常: java.sql.SQLException: Access denied for user 'root'@'localhost' (using pa ...
随机推荐
- 敏捷冲刺Day1
前言: 之前的各种对教务系统的分析,再加上我们两三天的讨论和一个小时的站立会议,我们做出最终的决定.--我们决定换个项目主题,将原来的教务辅助系统换成现在的校园帮帮帮服务,并在之后会将完成后的计划书附 ...
- 含html转义字符编码(四)转换--python
在抓取下来的网页源码显示的是如下的内容,而不是可读性的汉字 (当然,如果是在Web页面上展示,则实体会自动被浏览器转为原字符,正常显示) 经查资料后得知, 在网页中以四开头的是HTML实体,具体什么是 ...
- 好记性不如烂笔头之Maven使用小记
一.前言 说起Maven,是在我上上东家接触的,掌握的还不错,因为种种原因,上家公司没有使用太多大众技术,我也没有太多施展的机会,对于以前掌握的技术,很多都荒废了,最近使用起来发现有点儿吃力了,为了加 ...
- shit antd & Merry Christmas bug
shit antd & Merry Christmas bug https://github.com/ant-design/ant-design/issues/13098 antd 玩大了? ...
- Delphi中Self和Sender的区别
在事件处理程序参数表中,至少含有一个参数Sender,它代表触发事件处理程序的构件,如在上例中,Sender就指Button2,有了Sender参数,可以使多个构件共用相同的事件处理程序,如下例: ...
- Ajax在jQuery中的应用($.ajax()方法)
Ajax() 方法 $.ajax() 中的参数及使用方法 在jQuery中,$.ajax() 是最底层的方法,也是功能最强的方法.$.get().$.post().$.getScript().getJ ...
- P4035 [JSOI2008]球形空间产生器
题目描述 有一个球形空间产生器能够在 nn 维空间中产生一个坚硬的球体.现在,你被困在了这个 nn 维球体中,你只知道球面上 n+1n+1 个点的坐标,你需要以最快的速度确定这个 nn 维球体的球心坐 ...
- IO模式
二 IO模式 刚才说了,对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间.所以说,当一个read操作发生时,它会经历两 ...
- [LouguT30212]玩游戏
题面在这里 description 对于\(k=1,2,...,t\),求\[\frac{1}{nm}\sum_{i=1}^{n}\sum_{j=1}^{m}(a_i+b_j)^k\] 对\(9982 ...
- 51NOD 1353:树——题解
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1353 今天小a在纸上研究树的形态,众所周知的,有芭蕉树,樟树,函树,平衡 ...