zoukankan      html  css  js  c++  java
  • 转载 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)


     

     

    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";

    实例如下:

    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>  
  • 相关阅读:
    几个可以通过curl查询公网IP的站点
    CentOS安装 netdata 实时监视 Linux 系统性能
    Linux用ifconfig设置IP、掩码、网关
    Linux添加用户(user)到用户组(group)
    使用密码登陆Amazon EC2
    ulimit 命令详解
    linux命令行光标移动技巧
    阿里云epel源
    用scp实现多服务器文件分发
    2019年春季第二周作业
  • 原文地址:https://www.cnblogs.com/webcyz/p/4520384.html
Copyright © 2011-2022 走看看