最新消息:关注【已取消】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

Java jdbc连接Access数据库的方法学习(ucanaccess驱动)

Javaweb 太平洋学习网 0浏览 评论

我们如何使用java jdbc连接Access数据库并进行读写呢?这个只需要使用UcanaccessDriver这样的驱动就可以了,首先java连接Access数据库需要引入net相关的jar包,Access数据库一般是用于windows系统中,数据库格式为“xxx.db”后缀。

步骤一:我们在maven中引入Access驱动相关的jar包,这是至关重要的,代码如下:

<dependency>
   <groupId>net.sf.ucanaccess</groupId>
   <artifactId>ucanaccess</artifactId>
   <version>4.0.2</version>
</dependency>

步骤二:开发DButil工具类,用于开启Access数据库的Connection连接池,后面会使用这个Connection对象读写Access数据库,传入的dbpath参数为“xxx.db”的Access数据库文件路径:

package cn.com.tpyyes.utils;

import java.io.File;
import java.sql.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class DButil {
	private static final Logger log = LoggerFactory.getLogger(DButil.class);
	
	public static Connection ConnectAccessFile(String dbpath) throws Exception{
		File dbFile = new File(dbpath);
		if(!dbFile.exists()){
			log.error("db数据库文件不存在,请确认路径是否正确:{}", dbpath);
			return null;
		}else{
			log.info("读取数据库文件,路径:{}", dbpath);
		}
		
		Connection conn = null;
		Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");//这个驱动的地址不要改
		String dbur1 = "jdbc:ucanaccess:///"+dbpath;
    	conn = DriverManager.getConnection(dbur1, "","");
		return conn;
	}
	
	public static void close(Connection con) {
		try {
			if(con!=null) con.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public static void close(PreparedStatement ps) {
		try {
			if(ps!=null) ps.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public static void close(ResultSet rs) {
		try {
			if(rs!=null) rs.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

步骤三:本步骤介绍如何使用使用Connection来连接Access数据库,并查询一条数据,代码如下:

@Override
public void queryData(String dbpath,String startTime,String endTime) {
	Connection conn =null;
	PreparedStatement ps =null;
	ResultSet rs =null;
	try {
		conn = DButil.ConnectAccessFile(dbpath);
		if(conn==null){
			return;
		}
		ps = conn.prepareStatement("select "
			+ "count(*),macid from normalimg where createtime >=? and createtime <=? "
			+ "GROUP BY macid");
		//设置查询参数	
		ps.setString(1, startTime);
		ps.setString(2, endTime);
		//执行sql语句
		rs = ps.executeQuery();
		while (rs.next()) {
			//输出查询结果
			System.out.println("结果一:"+rs.getInt(1)+"===结果二:"+rs.getInt(2));
		}
	} catch (SQLException e) {
		e.printStackTrace();
	} catch (Exception e) {
		e.printStackTrace();
	}finally{
		//关闭相关的连接
		DButil.close(conn);
		DButil.close(ps);
		DButil.close(rs);
	}
}

java连接Access数据库主要用到的就是ucanaccess驱动,其它地方和连接mysql,oracle都差不多,jdbc是效率非常高的,PrepareStatement为预处理对象,在jdbc中建议使用此对象执行sql语句会安全很多。


来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/javaweb/815.html
"文章很值,打赏犒劳作者一下"
微信号: Javaweb_engineer

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

与本文相关的文章

发表我的评论
取消评论

表情

您的回复是我们的动力!

  • 昵称 (必填)

网友最新评论