java直接连接access数据库

  1. package com.work.core.db;
  2. /**
  3.  * 
  4.  * @author wangmingjie
  5.  * @date 2008-12-19上午09:51:27
  6.  * 直接连数据库的时候一定要注意Microsoft Access Driver (*.mdb)中Driver后面必须有空格。
  7.  */
  8. import java.sql.Connection;
  9. import java.sql.DriverManager;
  10. import java.sql.ResultSet;
  11. import java.sql.SQLException;
  12. import java.sql.Statement;
  13. import java.util.ArrayList;
  14. import java.util.List;
  15. import com.gongjian.sysjy.model.Fy501;
  16. import com.work.core.exception.OurException;
  17. public class AccessConnectionExample {
  18.     public static void main(String args[]) {
  19.         List<Fy501> l = new AccessConnectionExample().getFy501Data("D://gjzdq//FY501.mdb"); 
  20.         
  21.         int LEN = l.size();
  22.         
  23.         for(int i=0;i<LEN;i++){
  24.             System.out.println(l.get(i));
  25.         }
  26.         System.out.println("总共有"+LEN+"条记录!");
  27.     }
  28.     /**
  29.      * 获取到自动缫丝机上的数据。将所有的数据一次性读取到内存中。
  30.      * @param mdb access 文件的全路径。
  31.      * @return
  32.      */
  33.     public List<Fy501> getFy501Data(String mdb){
  34.         Connection conn = null;
  35.         Statement stmt = null;
  36.         ResultSet rst = null;
  37.         List<Fy501> l = new ArrayList<Fy501>(); 
  38.         try {
  39.             // String strurl="jdbc:odbc:driver={Microsoft Access
  40.             // Driver(*.mdb)};DBQ=D://gjzdq//FY501.mdb";//Driver后面没有空格,所以无法链接
  41.             String strurl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+mdb;// 此为NO-DSN方式
  42.             // String strurl="jdbc:odbc:test"; //需要配DSN,不要使用这种方式
  43.             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  44.             System.out.println("before connection");
  45.             conn = DriverManager.getConnection(strurl);
  46.             System.out.println("after connection");
  47.             stmt = conn.createStatement();
  48.             rst = stmt.executeQuery("select * from 501");
  49.             while (rst.next()) {
  50.                 Fy501 fy501 = new Fy501();
  51.                 fy501.setJyqh(rst.getString("jyqh"));
  52.                 fy501.setTh(rst.getString("th"));//台号
  53.                 fy501.setJybh(rst.getString("jybh"));//检验编号
  54.                 fy501.setGh(rst.getString("gh"));//工号
  55.                 fy501.setCs(rst.getString("cs"));//车速
  56.                 
  57.                 
  58.                 fy501.setStwd(rst.getString("stwd"));//缫汤温度
  59.                 fy501.setSxwd(rst.getString("sxwd"));//索绪温度
  60.                 fy501.setJysj(rst.getString("jysj"));//检验时间
  61.                 fy501.setGsls(rst.getString("gsls"));//供试粒数
  62.                 fy501.setTx(rst.getString("tx"));//添绪
  63.                 
  64.                 fy501.setDc(rst.getString("dc"));//吊糙   
  65.                 fy501.setZc(rst.getString("zc"));//总长
  66.                 fy501.setPjls(rst.getString("pjls"));//平均粒数
  67.                 fy501.setH(rst.getString("h"));//厚
  68.                 fy501.setZ(rst.getString("z"));//中
  69.                 
  70.                 fy501.setB(rst.getString("b"));//薄  
  71.                 fy501.setX(rst.getString("x"));//屑
  72.                 fy501.setL(rst.getString("l"));//漏
  73.                 fy501.setWd(rst.getString("wd"));//误吊
  74.                 fy501.setCsls(rst.getString("csls"));//初试粒数 
  75.                 
  76.                 fy501.setQd(rst.getString("qd"));//纤度   
  77.                 l.add(fy501);
  78.             }
  79.         } catch (Exception e) {
  80.             throw new OurException("解析缫丝机输出的access数据出错!",e);
  81.         } finally {
  82.             try {
  83.                 rst.close();
  84.             } catch (SQLException e) {
  85.             }
  86.             try {
  87.                 stmt.close();
  88.             } catch (SQLException e) {
  89.             }
  90.             try {
  91.                 conn.close();
  92.             } catch (SQLException e) {
  93.             }
  94.         }
  95.         
  96.         return l;
  97.     }
  98. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值