📜  jdbc 实用程序类 (1)

📅  最后修改于: 2023-12-03 15:16:39.041000             🧑  作者: Mango

JDBC实用程序类

JDBC(Java Database Connectivity)是Java语言操作数据库的通用API。在使用JDBC连接数据库时,需要编写大量重复的代码,为了简化这些重复性的工作,Java开发者提供了JDBC实用程序类来简化JDBC的使用。

JDBC实用程序类的作用

JDBC实用程序类是一组通用的类,它们封装了JDBC中的重复性操作,简化了程序员的工作。这些类可以用于简化数据库操作,从而降低了程序员的开发难度。

JDBC实用程序类的常见类
DbUtils

DbUtils是JDBC实用程序类中最为常见的类,它提供了一组简化的JDBC操作方法。这些方法包括查询、更新、批量操作等,可以大大简化JDBC的使用。

DbUtils类中主要方法有:

  • query:执行查询语句并返回结果集
  • update:执行更新语句
  • batch:批量执行多条语句

以下是一个使用DbUtils类查询数据库的例子:

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;

public class Example {
    public static void main(String[] args) throws SQLException {
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");

        QueryRunner qr = new QueryRunner();
        List<User> userList = qr.query(conn, "SELECT * FROM user", new BeanListHandler<User>(User.class));

        conn.close();

        System.out.println(userList);
    }
}
BasicDataSource

BasicDataSource类是JDBC实用程序类中的一个连接池实现。它提供了一组简单易用的操作方法,可以有效地管理连接池。

以下是一个使用BasicDataSource类的例子:

import org.apache.commons.dbcp2.BasicDataSource;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Example {
    public static void main(String[] args) throws SQLException {
        BasicDataSource ds = new BasicDataSource();
        ds.setUrl("jdbc:mysql://localhost:3306/test");
        ds.setUsername("root");
        ds.setPassword("password");

        Connection conn = ds.getConnection();

        PreparedStatement stmt = conn.prepareStatement("INSERT INTO user (name, age) VALUES (?, ?)");
        stmt.setString(1, "Tom");
        stmt.setInt(2, 18);
        stmt.executeUpdate();

        conn.close();
    }
}
QueryRunner

QueryRunner类是DbUtils类的底层实现。它提供了一组简单易用的操作方法,可以实现基本的数据库操作。

以下是一个使用QueryRunner类的例子:

import org.apache.commons.dbutils.QueryRunner;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Example {
    public static void main(String[] args) throws SQLException {
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");

        QueryRunner qr = new QueryRunner();
        int rowCount = qr.update(conn, "INSERT INTO user (name, age) VALUES (?, ?)", "Tom", 18);

        conn.close();

        System.out.println(rowCount);
    }
}
总结

JDBC实用程序类是一组非常实用而且常用的工具类,可以大大简化Java程序员使用JDBC的难度。其中,DbUtils类和BasicDataSource类是JDBC实用程序类中最为常见的类。QueryRunner类是DbUtils类的底层实现,但也可以直接使用。