行业知识
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