DbUtils源码解析

本文主要分析DbUtils的源码结构,介绍了用户操作类,并通过实际运行展示了如何使用dbutils.jar,包括所需jar包、测试数据库字段和测试代码的详细步骤,同时对可能出现的maven异常进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

1.为什么分析DbUtils

序号reason
1dbutils是对jdbc的一个简单的封装,分析dbutils可以深入理解jdbc的原理
2可以理解到大师的编程思想,鄙人觉得这是一件很有意义的事情
3简单,作为一个工具类,无疑,它是精简的
4因为现在csdn可以使用markdown写博客!!!
5顺便学习一下maven,现在的开源项目基本离不开maven的存在了
6待编^_^

2.使用的工具

序号工具名称说明
1eclipse mars此版本集成maven
2maven 3.3.9下载个独立版的操作方便,需要配置环境变量
3xmind 7思维导图,本博客大部分彩色图片基本来自此,免费的哦,所以大家不需要去拼命的寻找破解版

一:源码结构

1.dbutils源码结构

dbutils源码结构
注:至于具体项目读者自行导入maven工程即可见到,如果大家对maven存在疑惑,鄙人会在接下来的一段时间会对maven做一个分析^_^

2.用户操作类

这里写图片描述

二:使用dbutils.jar–一切的分析都是建立在运行的情况下的。

1.需要的jar包

  • 使用mysql作为数据库,当然需要导入mysql的驱动。
  • 导入commons-dbutils-1.6.jar,当然如果你想可以追踪源码和看说明更加清晰的话,可以选择绑定jar的关联commons-dbutils-1.6-sources.jar和commons-dbutils-1.6-javadoc.jar。Java Build Path内编辑,此处就不赘述了。

2.测试数据库字段

useridusernamepassword
intStringString

注:get与set就不写了哈,javabean。。。Is so simple,呜,表示笔者曾经看过一个对于javabean的注解的jar包,但是没找到源码,所以就不愿意用了,支持maven,有兴趣的可以百度一下哈^_^。

3.测试代码

3.1Before与After分析

3.1.1代码
    Connection conn = null;

    @Before
    public void getconnect() {
        try {
            /**
             * java里面任何class都要装载在虚拟机上才能运行 
             * Class.forName("com.mysql.jdbc.Driver")返回的是一个类
             * Class.forName("com.mysql.jdbc.Driver");的作用是要求JVM查找并加载指定的Driver类,
             * 也就是说JVM会执行该类的静态代码段
             * 
             * 实例化的方式 
             * 1.类加载机制
             * Java中工厂模式经常使用newInstance()方法来创建对象,因此从为什么要使用工厂模式上可以找到具体答案。
             * 2.new实例化
             * 
             */
//          Driver d = (Driver) Class.forName("com.mysql.jdbc.Driver").newInstance();// 实例化com.mysql.jdbc.Driver这个类
//          System.out.println(d);

            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/music", "root", "root");
        } catch (Throwable e) {// 此处直接抛出一个异常超类就好了,^_^懒。。。也可以抛<code>Exception</code>
            e.printStackTrace();
        }
    }

    @After
    public void close() {
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
3.1.2代码片段解析
编号代码分析
1实例化机制待分析

3.2单行查询

3.2.1代码
    @Test
    public void test1() throws SQLException {// 单行查询
        String sql = "select * from user where userid =6";
        QueryRunner qr = new QueryRunner();
        User u = qr.query(conn, sql, new BeanHandler<User>(User.class));
        System.out.println(u.toString());
    }
3.2.2代码片段分析
编号代码分析
1qr.query()泛型机制,查阅java核心技术卷一

异常说明

maven异常

编号异常名称解决方法
1Plugin execution not covered by lifecycle configuration: org.apache.felix:maven-bundle-plugin:2.4.0:manifest (execution: bundle-manifest, phase: process-classes)可能maven版本问题,暂时笔者还没解决,但是不影响maven编译,如果有读者解决了,如果方便可以告诉笔者一下,^_^
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值