public class JDBCUtil { private static String driver = "com.mysql.jdbc.Driver"; private static String url = "jdbc:mysql://localhost:3306/?day14/useUnicode=true&characterEncoding=utf-8"; private static String username = "root"; private static String password = "admin"; private static Connection conn =null; private static PreparedStatement statement = null; private static ResultSet result = null; /** * 加载配置文件 * 获取数据库连接 * @return */ static{ try { Properties properties = new Properties(); //通过类加载器 加载配置文件 properties.load(JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties")); driver = properties.getProperty("jdbc.driver"); url = properties.getProperty("jdbc.url"); username = properties.getProperty("jdbc.username"); password = properties.getProperty("jdbc.password"); //加载驱动 Class.forName(driver); }catch (IOException e){ e.printStackTrace(); }catch (ClassNotFoundException e) { e.printStackTrace(); } } /** * 获取连接 * @return */ public static Connection getConnection(){ try { conn = DriverManager.getConnection(url,username,password); } catch (SQLException e) { e.printStackTrace(); } return conn; } /** * 获取操作数据库对象 * @param sql * @param objects * @return */ public static PreparedStatement getStatement(String sql,Object...objects){ //加载驱动 try { //创建执行对象 statement = conn.prepareStatement(sql); //如果有参数 则添加参数 if (objects.length > 0){ for (int i=0;i<objects.length;i++){ statement.setObject(i+1,objects[i]); } } } catch (SQLException e) { e.printStackTrace(); } return statement; } /** * 查询 * 返回查询结果集 * @param sql 语句 * @param objects 可变参数 * @return ResultSet 结果集合 */ public static ResultSet executeQuery(String sql,Object...objects){ statement = getStatement(sql,objects); try { result = statement.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } return result; } /** * 对数据库的增,删,改 * @param sql 语句 * @param objects 可变参数 * @return 操作完成的sql语句数量 */ public static int executeUpdate(String sql,Object...objects){ statement = getStatement(sql,objects); //执行成功的条数 int count = 0; try { count = statement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return count; } /** * 关闭连接 释放资源 */ public static void closeAll(){ try{ if (result != null){ result.close(); } if (statement != null){ statement.close(); } if (conn != null){ conn.close(); } }catch(Exception e){ e.printStackTrace(); } } }