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表中添加数据。可以立刻查询到刚添加的数据。

java通过Access_JDBC30读取access数据库时无法获取最新插入的记录的更多相关文章

  1. java读取ACCESS数据库的简单示例

    java读取ACCESS数据库的简单示例 虽然简单,对初学者来说,如果没有一段可以成功执行的代码供参考,还真难调试 先用ACCESS建一个数据库 DB1.MDB,里面有一表"table1&q ...

  2. 使用c#訪问Access数据库时,提示找不到可安装的 ISAM

    使用c#訪问Access数据库时,提示找不到可安装的 ISAM.例如以下图: 代码例如以下: connectionString = "Provider=Microsoft.Jet.OLEDB ...

  3. 【.Net 学习系列】-- Windows身份模拟(WindowsIdentity.Impersonate)时读取Access数据库

    参考资料: WindowsIdentity.Impersonate https://msdn.microsoft.com/zh-cn/library/w070t6ka(v=vs.110).aspx A ...

  4. C# 读取 Access 数据库表的例子

    using System;using System.Data;using System.Data.OleDb;using System.Collections.Generic;using System ...

  5. php读取access数据库

    <?php //读取mdb数据库 $conn = new com("ADODB.Connection"); $connstr = "DRIVER={Microsof ...

  6. wcf使用JetEntityFrameworkProvider.dll写access数据库时,报"操作必须使用一个可更新的查询"错误的解决办法

    由于users用户组无权重写access数据库,需要设置users组用户能读写access数据库.

  7. 数据库:mysql 获取刚插入行id[转]

    我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的.但在多线程情况下,就不行了. 下面介 ...

  8. mysql数据库新插入数据,需要立即获取最新插入的id

    在MySQL中,使用auto_increment类型的id字段作为表的主键.通常的做法,是通过“select max(id) from tablename”的做法,但是显然这种做法需要考虑并发的情况, ...

  9. java web中读取properties文件时的路径问题

    在web开发时,难免会有一些固定的参数,我们一般把这些固定的参数存在properties文件中,然后用的时候要读出来.但经常出现一些错误,找不到相应的路径,所以,今天特地讲一些如何正确获得路径. 首先 ...

随机推荐

  1. this用法总结

    在JavaScript中,this关键字可以说是最复杂的机制之一.对this的作用机制缺乏比较深入的理解很容易在实际开发中出现问题. 1.this的作用 为什么要在JavaScript中使用this呢 ...

  2. [转] KVM I/O slowness on RHEL 6

    KVM I/O slowness on RHEL 6 http://www.ilsistemista.net/index.php/virtualization/11-kvm-io-slowness-o ...

  3. SQL Server 存储过程的运用

    概述 最近因为业务的需求写了一段时间存储过程,发现之前写的存储过程存在一些不严谨的地方,特别是TRY...CATCH中嵌套事务的写法:虽然之前写的并没有错,但是还是埋藏着很大的隐患在里面.希望这篇文章 ...

  4. 我所理解的HTTP协议

    前言 对于HTTP协议,想必大家都不陌生,在工作中经常用到,特别是针对移动端和前端开发人员来说,要获取服务端数据,基本走的网络请求都是基于HTTP协议,特别是RESTFUL + JSON 这种搭配特别 ...

  5. 【npm】伙计,给我来一杯package.json!不加糖

    前言:夜深了,我熬了一锅热气腾腾的package.json,给大家端上来,希望大家喜欢 json和JS对象的区别 package.json,顾名思义,它是一个json文件,而不能写入JS对象. 所以我 ...

  6. 【mysql注入】mysql注入点的技巧整合利用

    [mysql注入]mysql注入点的技巧整合利用 本文转自:i春秋社区 前言: 渗透测试所遇的情况瞬息万变,以不变应万变无谓是经验与技巧的整合 简介: 如下 mysql注入点如果权限较高的话,再知道w ...

  7. Spring5中的DispatcherServlet初始化

    Spring MVC像许多其它Web框架,被设计围绕前端控制器(DispatcherServlet)实际的工作是由可配置的,委托组件执行提供了一种用于请求处理的共享算法.这个模型是灵活的,支持不同的工 ...

  8. js高级笔记

    定时器this指向window javascript 的执行过程 预解析(变量) 数据集和功能集---- 对象 对象----属性和方法 -------------------面向对象--------- ...

  9. nginx 日志切割脚本

    #!/bin/shLOG_PATH=/home/test/nginx/logsNEW_LOG_PATH=/home/test/nginx/dayslogNGING_PID=$(cat /home/te ...

  10. HashMap 和 Hashtable 的 6 个区别,最后一个没几个人知道!

    HashMap 和 Hashtable 是 Java 开发程序员必须要掌握的,也是在各种 Java 面试场合中必须会问到的. 但你对这两者的区别了解有多少呢? 现在,栈长我给大家总结一下,或许有你不明 ...