小工具知识网

当前位置: 首页 > 行业知识 > Javaweb数据库通用查询BaseDao

行业知识

Javaweb数据库通用查询BaseDao

2026-10-26 19:56:17 来源:互联网转载

连接数据库工具类:DBUtil.java

()
package util;import java.io.IOException;import java.io.InputStream;import java.sql.*;import java.util.Properties;/* * @param null: * jdbc连接工具类 * @return null * @author liu * @description TODO * @date 2024/5/25 17:05 */public class DBUtil {    private static Connection con;    private static final String driver;    private static String url;    private static String username;    private static String password;    static{        // 读取数据库连接配置文件  反射机制加载类下资源        InputStream is = DBUtil.class.getClassLoader().getResourceAsStream("db.properties");        Properties properties = new Properties();        try {            // 加载输入流文件内容            properties.load(is);            driver = properties.getProperty("driver");            url = properties.getProperty("url");            username = properties.getProperty("username");            password =  properties.getProperty("password");            Class.forName(driver);        } catch (IOException | ClassNotFoundException e) {            throw new RuntimeException(e);        }    }    // 连接方法    public static Connection getConnection(){        try {            if(con == null || con.isClosed()){                con =  DriverManager.getConnection(url,username,password);                System.out.println(con+"数据库连接成功");            }        } catch (SQLException e) {            throw new RuntimeException(e);        }        return con;    }    /**     * 释放资源     * @param rs    结果集对象     * @param pre   预处理对象     * @param conn  连接数据库对象     */    public static void close(ResultSet rs, PreparedStatement pre, Connection conn){        try {            if (rs != null){                rs.close();            }            if (pre != null){                pre.close();            }            if (conn != null){                conn.close();            }            System.out.println("资源已全部释放");        } catch (SQLException e) {            throw new RuntimeException(e);        }    }}

通用查询接口:BaseDao.java

package dao;import pojo.User;import java.util.List;// 定义基本的增、删、改、查public interface BaseDao {    /*     * @param String sql,Object args:     * 执行通用的增、删、改 功能     * @return row      受影响的行数     */    int executeUpdate(String sql, Object... args);    /*     * @param String sql:     *  查询表中所有数据并保存到集合中     */    List executeSelect(String sql,Object... args);}

通用查询接口实现类

()
package dao.impl;import dao.BaseDao;import pojo.User;import util.DBUtil;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;// 定义基本的增、删、改、查public class BaseDaoImpl implements BaseDao {    private static Connection con = null;    private static PreparedStatement ptmt = null;    private static ResultSet rs = null;    /*     * @param String sql,Objectargs:     * 执行通用的增、删、改 功能     * @return row      受影响的行数     * @author liu     * @description TODO     * @date 2024/5/25 18:13     */    @Override    public int executeUpdate(String sql, Object... args){        int row = 0;        con = DBUtil.getConnection();        try {            // 开启事务            con.setAutoCommit(false);            // 预编译            ptmt = con.prepareStatement(sql);            for (int i = 0; i  0){                // 提交事务                con.commit();            }else{                // 回滚事务                con.rollback();            }            System.out.println("受影响的行数为:"+row);        } catch (SQLException e) {            // 发生异常,回滚事务            try {                con.rollback();            } catch (SQLException ex) {                throw new RuntimeException(ex);            }            throw new RuntimeException(e);        }finally {            // 释放资源            DBUtil.close(rs,ptmt,con);        }        return row;    }    /*     * @param String sql:     *  查询表中所有数据并保存到集合中     * @return List     * @author liu     * @description TODO     * @date 2024/5/25 18:24     */    @Override    public List executeSelect(String sql,Object... args){        System.out.println("===查询操作===");        con = DBUtil.getConnection();        List users = new ArrayList();        try {            ptmt = con.prepareStatement(sql);            for (int i = 0; i                                                 

上一篇:我今年24,在福州宝龙有一套房子,而且父母工作稳定以后有退休金,自己的设计事业也在稳定发展,自认为为人处事有分寸有礼貌,不过还是对未来比较迷茫,也可能是一个人生活久了吧,总喜欢想太多。

下一篇:怎么导入数据到服务器?