Java语言8 连接Access数据库UCanAccess的操作介绍
小标 2018-10-12 来源 : 阅读 3443 评论 0

摘要:本文主要向大家介绍了Java语言8 连接Access数据库UCanAccess的操作介绍,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了Java语言8 连接Access数据库UCanAccess的操作介绍,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

Java8 中JDK1.8中不再包含access桥接驱动,因此不再支持jdbcodbc桥接方式。 解决方法:


1.java Access JDBC jar包:Access_JDBC30.jar使用导入数据库相应的jar包,进行连接。 2.UCanAccess是一个Microsoft Access的开源JDBC驱动实现


支持 Access 2000、2003、2007、2010 及后续高版本 支持 SELECT, INSERT,UPDATE,DELETE 语句。 事务和savepoints。 支持数据类型:YESNO,BYTE,INTEGER,LONG,SINGLE,DOUBLE,NUMERIC,CURRENCY,COUNTER,TEXT,OLE,MEMO,GUID,DATETIME。 支持多用户并发访问。 支持连接池。 支持MS Access SQL。 限制:


只支持基本的DDL操作。 较差的多进程访问支持。 maven配置:


<!--AccessDB 数据库  驱动-->

 <dependency>

<groupid>net.sf.ucanaccess</groupid>

ucanaccess</artifactid>

<version>4.0.1</version>

 </dependency>

   


连接工具类


package com.hyman.date0702_0708.accessdb;

 

import java.sql.*;

 

/**

 * @program: javalearning

 * @Date: 2018/7/11 11:03

 * @Author: hyman.hu

 * @Description: 工具类

 */

public class AccessDBUtils {

 

 private static final String dbURL = "jdbc:ucanaccess://" +

"C:\\Users\\skysoft\\Desktop\\天软物料管理系统\\hyman.accdb";

 

 /*

  * 加载驱动

  */

 static {

  try {

// Step 1: Loading or registering Oracle JDBC driver class

Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");

  } catch (ClassNotFoundException cnfex) {

System.out.println("Problem in loading or registering MS Access JDBC driver");

cnfex.printStackTrace();

  }

 }

 

 //建立连接

 public static Connection getConn() {

  try {

// Step 2: Opening database connection

// Step 2.A: Create and get connection using DriverManager class

return DriverManager.getConnection(dbURL);

  } catch (Exception e) {

System.out.println("AccessDB connection fail");

e.printStackTrace();

  }

  return null;

 }

 

 // 关闭资源

 public static void close(Connection con, PreparedStatement ps, ResultSet rs) {

  try {

if (rs != null)

 rs.close();// 这里出现异常了,rs关闭了吗?,如果没有怎么解决,ps , con也是一样的。

  } catch (SQLException e) {

e.printStackTrace();

  } finally {

try {

 if (ps != null)

  ps.close();

} catch (SQLException e) {

 e.printStackTrace();

} finally {

 if (con != null)

  try {

con.close();

  } catch (Exception e) {

e.printStackTrace();

  }

}

  }

 }

}

   


查询简单封装工具类


package com.hyman.date0702_0708.accessdb;

 

import java.lang.reflect.Field;

import java.sql.*;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

 

/**

 * @program: javalearning

 * @Date: 2018/7/11 13:56

 * @Author: hyman.hu

 * @Description: DB工具类

 */

public class DBUtils {

 /**

  * 增加、删除、改

  *

  * @param sql sql

  * @param params 参数

  * @return 添加结果

  */

 public static boolean update(String sql, List<object> params) throws SQLException {

  int result = -1;

  Connection conn = null;

  PreparedStatement ps = null;

  try {

conn = AccessDBUtils.getConn();

assert conn != null;//直接抛异常

ps = conn.prepareStatement(sql);

int index = 1;

if (params != null && !params.isEmpty()) {

 for (Object param : params) {

  ps.setObject(index++, param);

 }

}

result = ps.executeUpdate();

  } catch (Exception e) {

e.printStackTrace();

try {

 assert conn != null;

 conn.rollback();

} catch (SQLException e1) {

 e1.printStackTrace();

}

throw e;

  } finally {

AccessDBUtils.close(conn, ps, null);

  }

  return result > 0;

 }

 

 /**

  * 查询多条记录

  *

  * @param sql sql

  * @param params 参数

  * @return 查询结果

  */

 public static List<map<string, object="">> select(String sql, List<object> params) throws SQLException {

  List<map<string, object="">> list = new ArrayList<>();

  int index = 1;

<div class="line n    

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 1
看完这篇文章有何感觉?已经有3人表态,67%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程