java通过Access_JDBC30读取access数据库时无法获取最新插入的记录
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
java通过Access_JDBC30读取access数据库时无法获取最新插入的记录相关推荐
- java读取ACCESS数据库的简单示例
java读取ACCESS数据库的简单示例 虽然简单,对初学者来说,如果没有一段可以成功执行的代码供参考,还真难调试 先用ACCESS建一个数据库 DB1.MDB,里面有一表"table1 ...
- python连接access数据库查询并打印出来_Python连接Access和读取Access数据库的例子
其实这个Python连接Access和读取Access数据库的例子是写给自己看的,网上已经有Python读取Access的例子了,我这个也是参考以上制作的. 而这个例子应该是只能在windows使用吧 ...
- 使用c#訪问Access数据库时,提示找不到可安装的 ISAM
使用c#訪问Access数据库时,提示找不到可安装的 ISAM.例如以下图: 代码例如以下: connectionString = "Provider=Microsoft.Jet.OLEDB ...
- 转:关于ASP操作Access数据库时出现死锁.ldb的解决方法
Asp操作Access数据库时出现死锁.ldb导致网站访问缓慢的问题描述 最近asp网站出现数据库错误,在ftp登陆后发现原来的后缀MDB文件多了一个后缀LDB文件,是自动被锁,在一天某个时间段内打不 ...
- vb 读取mysql所有表名_VB 读取ACCESS数据库中所有表名和指定表字段名.doc
VB 读取ACCESS数据库中所有表名和指定表字段名 托束显疫面绰么蚂扛沁米衅居鸳辗熊踌薄舱杂们帖婉珍抓津担庐撕枪呻头胀亨短宛溅锭语氏遣搀赠摩紧茧综逾颂备呛庞枷脓移厚醛仕恬浸值胶碟亦短咳腥钥捎魄朗氟商 ...
- 使用c#访问Access数据库时,提示找不到可安装的 ISAM
使用c#访问Access数据库时,提示找不到可安装的 ISAM,如下图: 代码如下: connectionString = "Provider=Microsoft.Jet.OLEDB.4.0 ...
- 使用C#操作ACCESS数据库时提示 “FORM子句语法错误”。
C#操作ACCESS数据库时提示 "FORM子句语法错误 错误提示和代码原文如图所示 OleDbConnection oleDbConnection = new OleDbConnectio ...
- Asp 操作Access数据库时出现死锁.ldb的解决方法
问题: 最近经常用的asp网站"搬家"到一个昂贵的服务器时候,出现这个问题,访问后台时候,出现数据库错误的字样,在ftp登陆后发现原来的后缀MDB文件多了一个后缀LDB文件,百度搜 ...
- Java连接远程的Access数据库
我们测试中心(就俩人)有很完善的工作流程以及辅助的计算机系统,比如Bug跟踪系统Scarab,文档服务器(VSS,FTP,共享文件夹),测试案例和测试结果管理工具(一个Access数据库)和集成案例管 ...
最新文章
- 性能堪比GPT-3,但参数量仅为0.1%,LMU团队推出NLP最强文本生成模型
- 36.迷宫(广度优先搜索)
- hdu 1495 非常可乐(BFS)
- CSS阴影box-shodow总结
- 手写简版spring --1--创建简单的Bean容器
- centos 安装pip3
- java引用类的关键字_java中定义类通常使用的关键字有哪些
- 什么意思_invalid是什么意思
- 【Python】nltk库使用报错之punkt安装
- Android Window 9问9答
- Atitit cnchar simp best list 汉字简化方案 最简化汉字256个
- 实现网络IPv6平滑演进的DS-Lite CGN技术
- 《信号与系统》(吴京)部分课后习题答案与解析——第七章(PART2)(系统及系统分析)
- 戒烟、写作、赚美金:我的2020【CSDN年度征文】
- 浅入浅出Vivado IP之DDS Compiler
- Matlab 绘图函数之plot、semilogx、semilogy、loglog函数的使用
- 旧电脑很卡怎么重新安装电脑系统?
- Docker设置阿里云镜像加速器
- 单机搭建Nacos集群
- spring IOC(转)
热门文章
- php如何向数组增加数据,php向数组中增加数据的方法是什么
- geojson在线生成工具_logofree详解:LOGO设计在线生成
- maven静态资源导出(Ctrl+C+V)
- Servlet获取URL地址
- python tempfile模块用不了_Python tempfile:坏了还是我做错了?
- php atime,PHP DirectoryIterator getATime()用法及代码示例
- 帝国cms php sql,帝国CMS下在PHP文件中调用数据库类执行SQL语句实例
- java中构造器快捷方式_java 构造器 (构造方法)
- 数据库语法_圣诞快乐:用GaussDB T 绘制一颗圣诞树,兼论高斯数据库语法兼容...
- python按日期排序_你如何在python中获得按创建日期排序的目录列表?