转载 JAVA SE 连接ACCESS

java

本代码实现连接 本机数据库的方法。

操作步骤:

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)


 

 

[java] view plaincopyprint?

  1. <SPAN style="FONT-SIZE: 18px">import java.sql.*;  

  2. public class DBconnTest {  
  3.     public static void main(String args[]) {  

  4.         //步骤1:加载驱动程序   

  5.         String sDriver="sun.jdbc.odbc.JdbcOdbcDriver";  

  6.         try{  

  7.             Class.forName(sDriver);  
  8.         }  
  9.         catch(Exception e){  

  10.             System.out.println("无法加载驱动程序");  

  11.             return;  

  12.         }  
  13.         System.out.println("步骤1:加载驱动程序——成功!");  

  14.         Connection dbCon=null;  

  15.         Statement stmt=null;  

  16.         String sCon="jdbc:odbc:book";  

  17.         try{  

  18.             dbCon=DriverManager.getConnection(sCon);  
  19.             if(dbCon!=null){  

  20.                 System.out.println("步骤2:连接数据库——成功!");  

  21.             }  
  22.             //步骤3:建立JDBC的Statement对象   

  23.             stmt=dbCon.createStatement();  
  24.             if(stmt!=null){  

  25.                 System.out.println("步骤3:建立JDBC的Statement对象——成功!");  

  26.             }  
  27.         }  
  28.         catch(SQLException e){  

  29.             System.out.println("连接错误:"+sCon);  

  30.             System.out.println(e.getMessage());  
  31.             if(dbCon!=null){  

  32.                 try{  

  33.                     dbCon.close();  
  34.                 }  
  35.                 catch(SQLException e2){}  

  36.             }  
  37.             return;  

  38.         }  
  39.         try{//执行数据库查询,返回结果   

  40.             String sSQL="SELECT * "+" FROM bookindex";  

  41.             ResultSet rs=stmt.executeQuery(sSQL);  
  42.             while(rs.next()){  

  43.                 System.out.print(rs.getString("BookID")+"  ");  

  44.                 System.out.print(rs.getString("BookTitle")+"  ");  

  45.                 System.out.print(rs.getString("BookAuthor"));  

  46.                 System.out.println("  " +rs.getFloat("BookPrice"));  

  47.             }  
  48.         }  
  49.         catch(SQLException e){  

  50.             System.out.println(e.getMessage());  
  51.         }  
  52.             finally{  

  53.                 try{  

  54.                     //关闭步骤3所开启的statement对象   

  55.                     stmt.close();  
  56.                     System.out.println("关闭statement对象");  

  57.                 }  
  58.                 catch(SQLException e){}  

  59.                 try{  

  60.                     //关闭数据库连接   

  61.                     dbCon.close();  
  62.                     System.out.println("关闭数据库连接对象");  

  63.                 }  
  64.                 catch(SQLException e){}  

  65.            }  
  66.       }  
  67. }  
  68. </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";

实例如下:

[java] view plaincopyprint?

  1. <SPAN style="FONT-SIZE: 18px">import java.sql.*;  

  2. public class DBconnTest {  
  3.     public static void main(String args[]) {  

  4.         //步骤1:加载驱动程序   

  5.         String sDriver="sun.jdbc.odbc.JdbcOdbcDriver";  

  6.         try{  

  7.             Class.forName(sDriver);  
  8.         }  
  9.         catch(Exception e){  

  10.             System.out.println("无法加载驱动程序");  

  11.             return;  

  12.         }  
  13.         System.out.println("步骤1:加载驱动程序——成功!");  

  14.         Connection dbCon=null;  

  15.         Statement stmt=null;  

  16.         String sCon = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=book.mdb";  

  17.         try{  

  18.             dbCon=DriverManager.getConnection(sCon);  
  19.             if(dbCon!=null){  

  20.                 System.out.println("步骤2:连接数据库——成功!");  

  21.             }  
  22.             //步骤3:建立JDBC的Statement对象   

  23.             stmt=dbCon.createStatement();  
  24.             if(stmt!=null){  

  25.                 System.out.println("步骤3:建立JDBC的Statement对象——成功!");  

  26.             }  
  27.         }  
  28.         catch(SQLException e){  

  29.             System.out.println("连接错误:"+sCon);  

  30.             System.out.println(e.getMessage());  
  31.             if(dbCon!=null){  

  32.                 try{  

  33.                     dbCon.close();  
  34.                 }  
  35.                 catch(SQLException e2){}  

  36.             }  
  37.             return;  

  38.         }  
  39.         try{//执行数据库查询,返回结果   

  40.             String sSQL="SELECT * "+" FROM bookindex";  

  41.             ResultSet rs=stmt.executeQuery(sSQL);  
  42.             while(rs.next()){  

  43.                 System.out.print(rs.getString("BookID")+"  ");  

  44.                 System.out.print(rs.getString("BookTitle")+"  ");  

  45.                 System.out.print(rs.getString("BookAuthor"));  

  46.                 System.out.println("  " +rs.getFloat("BookPrice"));  

  47.             }  
  48.         }  
  49.         catch(SQLException e){  

  50.             System.out.println(e.getMessage());  
  51.         }  
  52.         finally{  

  53.             try{  

  54.                 //关闭步骤3所开启的statement对象   

  55.                 stmt.close();  
  56.                 System.out.println("关闭statement对象");  

  57.             }  
  58.             catch(SQLException e){}  

  59.             try{  

  60.                 //关闭步骤3所开启的statement对象   

  61.                 dbCon.close();  
  62.                 System.out.println("关闭数据库连接对象");  

  63.             }  
  64.             catch(SQLException e){}  

  65.         }  
  66.     }  
  67. }  
  68. </SPAN>  

以上是 转载 JAVA SE 连接ACCESS 的全部内容, 来源链接: utcz.com/z/390349.html

回到顶部