java通过Access_JDBC30读取access数据库时无法获…
2019-04-18 08:55:40来源:博客园 阅读 ()
1、编写了一个循环程序,每几秒钟读取一次,数据库中最新一行数据
连接access数据库的方法和查询的信息。之后开一个定时去掉用。
package javacommon.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import com.ybb.DBConnection; /** * * @author ybb * 连接Access数据库 * java通过Access_JDBC30获取access数据库数据,取不到最新的数据 */ public class AccessDBUtil { private static final String DRIVER="com.hxtt.sql.access.AccessDriver"; private static final String URL="jdbc:Access:///G:/ceshi/ceshi.mdb"; private static final String USER=""; private static final String PASSWORD=""; public static Connection getConnection(){ try { Class.forName(DRIVER); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { Connection connection = DriverManager.getConnection(URL, USER, PASSWORD); return connection; } catch (SQLException e) { return null; } } public static void colseConnection(Connection conn){ try { if(conn!=null&&!conn.isClosed()){ conn.close(); } } catch (Exception e) { e.printStackTrace(); } } public static void myclose(Connection con,PreparedStatement ps){ try { if (con!=null&&!con.isClosed()) { con.close(); } if (ps!=null) { ps.close(); } } catch (Exception e) { e.printStackTrace(); } } public static void myclose(Connection con,PreparedStatement ps,ResultSet rs){ try { if (con!=null&&!con.isClosed()) { con.close(); } if (ps!=null) { ps.close(); } if (rs!=null) { rs.close(); } } catch (Exception e) { e.printStackTrace(); } } /** * 测试 * */ public static void main(String[] args){ Connection connnect = null; while(true){ try{ connnect = AccessDBUtil.getConnection(); if(connnect!=null){ System.out.println(connnect+"\n连接成功"); }else{ System.out.println("连接失败"); } Statement stat = connnect.createStatement(); ResultSet rs = stat.executeQuery("select * from CYJ_PD_QTJL"); if(rs!=null){ while(rs.next()){ System.out.println(rs.getString(1)+"\t"+rs.getString(2)); } } Thread.sleep(5000); }catch(Exception e){ e.printStackTrace(); }finally{ colseConnection(connnect);//关闭链接 } } } }
2、当手动向对应的access数据库中CYJ_PD_QTJL表
添加数据时,查询不到刚添加的数据。需要重启此程序才能查询到。
3、为了解决此问题更换驱动。用ODBC连接完美解决。
package com.ybb; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Properties; /** * * @author ybb * 连接access数据 * 获取access数据库数据,可以取到最新的数据 * 2019年4月16日 下午2:48:33 */ public class DBConnection { /** * 该方法用来连接数据库 * @param db:数据源名称 * */ public static Connection getDBConnection(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//注册驱动 //Access中的数据库默认编码为GBK,本地项目为UTF-8,若不转码会出现乱码 Properties p = new Properties(); p.put("charSet", "GBK"); Connection connect= DriverManager.getConnection("jdbc:odbc:ceshi",p); return connect; }catch(Exception e){ e.printStackTrace(); return null; } } /** * 该方法用来执行SQL并返回结果集 * */ public static ResultSet selectQuery(String sql){ try{ PreparedStatement stmt = getDBConnection().prepareStatement(sql); ResultSet rs = stmt.executeQuery();//执行SQL return rs; }catch(Exception e){ e.printStackTrace(); return null; } } /** * 测试 * */ public static void main(String[] args){ while(true){ try{ Connection connnect = DBConnection.getDBConnection(); if(connnect!=null){ System.out.println(connnect+"\n连接成功"); }else{ System.out.println("连接失败"); } ResultSet rs1 = selectQuery("select * from CYJ_PD_QTJL"); if(rs1!=null){ while(rs1.next()){ System.out.println(rs1.getString(1)+"\t"+rs1.getString(2)); } } Thread.sleep(5000); }catch(Exception e){ e.printStackTrace(); }finally{ // closeConn();//关闭链接 } } } }
4、此时手动向CYJ_PD_QTJL表中添加数据。可以立刻查询到刚添加的数据。
原文链接:https://www.cnblogs.com/ywx2/p/10724411.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash