基于commons-dbutils的数据库工具类

1.maven依赖

<dependencies>
	<!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils -->
	<dependency>
		<groupId>commons-dbutils</groupId>
		<artifactId>commons-dbutils</artifactId>
		<version>1.7</version>
	</dependency>
	<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<version>1.18.24</version>
		<scope>provided</scope>
	</dependency>
	<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>5.1.49</version>
	</dependency>
</dependencies>

2.创建表

create table users(
    id int auto_increment primary key COMMENT '主键ID',
    userCode varchar(40) null COMMENT '用户ID',
    userName varchar(40) null COMMENT '用户姓名',
    email    varchar(60) null COMMENT '邮箱',
    createTime date COMMENT '创建时间'
);

3.创建实体类

package org.mbg.model;

import lombok.Data;

import java.util.Date;

@Data
public class Person {
    private int id;

    private String userCode;

    private String userName;

    private String email;

    private Date createTime;
}

4.resources创建config.properties配置文件

jdbc.url=jdbc:mysql://localhost:3306/test2?useSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.user=root
jdbc.password=123456

5.JdbcUtil

package org.mbg.util;

import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.mbg.model.Person;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
import java.util.Properties;

public class JdbcUtil {
    private static Connection connection;

    private static final QueryRunner QUERY_RUNNER = new QueryRunner();

    static {
        try {
            Properties properties = new Properties();
            InputStream in = JdbcUtil.class.getClassLoader().getResourceAsStream("config.properties");
            properties.load(in);

            String url = properties.getProperty("jdbc.url");
            String driver = properties.getProperty("jdbc.driver");
            String user = properties.getProperty("jdbc.user");
            String password = properties.getProperty("jdbc.password");

            DbUtils.loadDriver(driver);
            connection = DriverManager.getConnection(url, user, password);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void insert(String sql, Object[] params) throws SQLException {
        new QueryRunner().insert(connection, sql, new MapHandler(), params);
    }

    public static void delete(String sql, Object param) throws SQLException {
        new QueryRunner().update(connection, sql, param);
    }

    public static void update(String sql, Object[] params) throws SQLException {
        new QueryRunner().update(connection, sql, params);
    }

    public static  <T> List<T> query(String sql, Class<T> resClass) throws SQLException {
        return (List<T>)QUERY_RUNNER.query(connection, sql, new BeanListHandler(resClass));
    }

    public static void main(String[] args) throws SQLException {
        String insertSql = "insert into users(userCode,userName,email,createTime) values(?,?,?,?)";
        Object[] insertParams = {"dllwh", "独泪了无痕", "[email protected]", new Date()};
        JdbcUtil.insert(insertSql, insertParams);

        String deleteSql = "delete from users where id=?";
        JdbcUtil.delete(deleteSql, 2);

        String updateSql = "update users set userName=? where id=?";
        Object[] updateParams = {"ddd", 3};
        JdbcUtil.update(updateSql, updateParams);

        String querySql = "SELECT id,userCode,userName,email,createTime FROM users";
        List<Person> userResultList = JdbcUtil.query(querySql, Person.class);
        userResultList.forEach(System.out::println);
    }
}

猜你喜欢

转载自blog.csdn.net/luo381821/article/details/125133680