DbUtils的使用 简单案例

10 篇文章 44 订阅
4 篇文章 0 订阅
本文档介绍了如何在IDEA中使用MySQL8.0,并通过Apache Commons DbUtils和Logging库进行JDBC连接。步骤包括下载所需jar包,设置模块库,配置jdbc.properties文件,以及展示如何通过工具类执行查询操作。示例代码展示了如何查询特定ID的customer记录并处理结果。
摘要由CSDN通过智能技术生成


 师承康师傅, 学完总结一下

环境: IDEA, MySQL 8.0, JDK8

首先得安装MySQL 和下载MySQL的jar包

见我之前的教程:

1.下载dbutils 和logging jar包

DbUtils – Download Apache Commons DbUtils

Apache Commons Logging - Download Apache Commons Logging

 找到这两个jar包

 

2.右键设置为模块库

3.数据库的准备

比如说我们想查询 customers表下的 id=23号的同学 

4.代码演示

jdbc配置文件

user=root
password=admin
url=jdbc:mysql://localhost:3306/test
driverClass=com.mysql.cj.jdbc.Driver

封装的工具类 

public class JDBC_Utils {
    static InputStream is;
    static Connection connection;
    public static Connection getConnection() throws Exception {
        //1.读取配置文件中的4个基本信息
        is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");

        Properties pros = new Properties();
        pros.load(is);

        String user = pros.getProperty("user");
        String password = pros.getProperty("password");
        String url = pros.getProperty("url");
        String driverClass = pros.getProperty("driverClass");

        //2.加载驱动到内存中, Driver类会用静态代码块来尝试加载驱动
        Class.forName(driverClass);

        //3.获取连接
        connection = DriverManager.getConnection(url, user, password);
        return connection;
    }

    /**
     * 负责关闭该类创建的流
     */
    public static void closeIs() {
        close(is);
    }

    /**
     * 关闭流函数升级版,可以看我另一篇如何优雅关闭流的文章
     */
    public static void close(AutoCloseable... t) {
        for (AutoCloseable closeable : t) {
            if (closeable != null) {
                try {
                    closeable.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

JDBC_Utils4 是我封装的获取数据库连接工具类

大家可以用常规方式获取连接

可用上面代码替代

//BeanHandler:是ResultSetHandler接口的实现类,用于封装表中的一条记录。
    @Test
    public void QueryTest() {
        Connection cn = null;
        try {
            QueryRunner runner = new QueryRunner();//用于查询数据
            cn = JDBC_Utils4.getConnection();//工具类获取连接,也可以手动获取
            String sql = "select id,name,email,birth from customers where id = ?";
            ResultSetHandler<Customer> handler = new BeanHandler<>(Customer.class);
            Customer customer = runner.query(cn, sql, handler, 23);
                                          //连接,SQL,处理类对象,占位符
            System.out.println(customer);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBC_Utils4.closeIs();//关闭jdbc工具类里面的inputstream流
            JDBC_Utils4.close(cn);//关闭连接
        }
    }

1 对于数据表的读操作 他可以把结果转换成List Array Set等java集合 便于程序员操作; 2 对于数据表的写操作 也变得很简单(只需写sql语句) 3 可以使用数据源 使用JNDI 数据库连接池等技术来优化性能 重用已经构建好的数据库连接对象 而不像php asp那样 费时费力的不断重复的构建和析构这样的对象 DBUtils包括3个包: org apache commons dbutils org apache commons dbutils handlers org apache commons dbutils wrappers DBUtils封装了对JDBC的操作 简化了JDBC操作 可以少写代码 org apache commons dbutils DbUtils 关闭链接等操作 QueryRunner 进行查询的操作 org apache commons dbutils handlers ArrayHandler :将ResultSet中第一行的数据转化成对象数组 ArrayListHandler将ResultSet中所有的数据转化成List List中存放的是Object[] BeanHandler :将ResultSet中第一行的数据转化成类对象 BeanListHandler :将ResultSet中所有的数据转化成List List中存放的是类对象 ColumnListHandler :将ResultSet中某一列的数据存成List List中存放的是Object对象 KeyedHandler :将ResultSet中存成映射 key为某一列对应为Map Map中存放的是数据 MapHandler :将ResultSet中第一行的数据存成Map映射 MapListHandler :将ResultSet中所有的数据存成List List中存放的是Map ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object org apache commons dbutils wrappers SqlNullCheckedResultSet :对ResultSet进行操作 改版里面的值 StringTrimmedResultSet :去除ResultSet中中字段的左右空格 Trim ">1 对于数据表的读操作 他可以把结果转换成List Array Set等java集合 便于程序员操作; 2 对于数据表的写操作 也变得很简单(只需写sql语句) 3 可以使用数据源 使用JNDI 数据库连接池等技术来优化性能 重用已经构建好的 [更多]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值