• 使用JDBC访问微软Access实例


    之前有使用ODBC来访问Access数据库的,但不方便.  

    是否可以使用JDBC访问, 网上的说法不一, 也很少有实例参考.

    //        access由于access并不是作为一项服务运行,所以url的方法对他不适用。  (其实这个是不对的.)


    //        https://zhuanlan.zhihu.com/p/441219492
    //        Access2013开始,将不再支持ODBCDirect(DAO odbc连接SqlServer常用)错误3847
    //
    //        实际上,是可以使用 纯JDBC驱动访问access的


    //        使用驱动:ucanaccess
    //        https://mvnrepository.com/artifact/net.sf.ucanaccess/ucanaccess

    以下是使用JDBC访问微软Access数据库详细实例:

    1. Access里stu表的数据 

    2. java源码 

    以下是直接使用JDBC进行编码的.

    1. import java.sql.Connection;
    2. import java.sql.DriverManager;
    3. import java.sql.ResultSet;
    4. import java.sql.Statement;
    5. /**
    6. * @author Kingstar
    7. * @since 1.0
    8. */
    9. public class AccessDbTest {
    10. public static void main(String[] args){
    11. try {
    12. Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
    13. Connection conn=DriverManager.getConnection("jdbc:ucanaccess://d:/school.accdb");
    14. Statement stmt=conn.createStatement() ;
    15. ResultSet rs=stmt.executeQuery("select * from stu");
    16. while (rs.next()) {
    17. System.out.println(rs.getString(1));
    18. System.out.println(rs.getString(2));
    19. System.out.println(rs.getString(4));
    20. }
    21. System.out.println("finished...");
    22. } catch (Exception e) {
    23. e.printStackTrace();
    24. System.out.println("e:"+e.getMessage());
    25. }
    26. System.out.println("finished");
    27. }
    28. }

    日志

    1
    zhang shan
    twitter被收购了
    2
    李四
    哈哈。。。
    finished...
    finished

    使用JDBC,需要自己写sql语句, 自己写获取字段结果的代码,  这种代码可以交给ORM去完成.

    以下是使用ORM  Bee查询的结果.

    3. Bee 访问Access数据库实例

    3.1 添加配置信息

    在bee.properties里添加联系数据库的配置信息.

    bee.db.url=jdbc:ucanaccess://d:/school.accdb
    bee.db.driverName=net.ucanaccess.jdbc.UcanaccessDriver
    bee.osql.loggerType=systemLogger

    使用面向对象访问DB, 需要准备表对应的Javabean. 可以使用Bee自动生成.

    3.2  Bee 访问Access数据库的Java源码

    1. import java.util.List;
    2. import org.teasoft.bee.osql.Suid;
    3. import org.teasoft.honey.osql.shortcut.BF;
    4. import test.entity.Stu;
    5. /**
    6. * Bee 访问Access数据库实例
    7. * @author Kingstar
    8. * @since 1.0
    9. */
    10. public class AccessDbTest2 {
    11. public static void main(String[] args){
    12. Suid suid=BF.getSuid(); //获取Select,Update,insert,Delete的SQL操作对象
    13. List list=suid.select(new Stu()); //查询stu表的数据
    14. for (int i = 0; i < list.size(); i++) {
    15. System.out.print(list.get(i).getName()+" , ");
    16. System.out.println(list.get(i).getAge());
    17. }
    18. System.out.println("finished");
    19. }
    20. }

    3.3 日志

    1. 2022-11-04 23:46:16 [Bee] select SQL: select id,name,age from stu
    2. 2022-11-04 23:46:16 [Bee] | <-- select rows: 2
    3. zhang shan , 22
    4. 李四 , 23
    5. finished

    4. 要是Access里加了密码保护

    连接会复杂些.

    有需要的伙伴可到Q群里问.

    992650213

    Bee,互联网新时代的Java ORM框架,支持Sharding;JDBC,Android,HarmonyOS;更快、更简单、更自动,开发速度快,运行快,更智能!

    https://github.com/automvc/bee

  • 相关阅读:
    被一个gpio口搞死的一天
    【PY】倒计时日历
    简单上手_Kotlin,让开发更简洁
    深度学习框架简介
    数据结构之顺序表(C语言版)
    Redis生产事故(Jedis)
    [Vue]大屏界面自适应-transform: scale() translate(x, y)
    uniapp制作简单的tab切换
    李飞飞:我更像物理学界的科学家,而不是工程师|深度学习崛起十年
    【SpringBoot】Spring Boot 实现接口的幂等性
  • 原文地址:https://blog.csdn.net/abckingaa/article/details/127698314