建立一个文件名为jdbc.properties,放在src目录下,文件内容如下(也可用Properties类load方法写入):
#\u914D\u7F6E\u6587\u4EF6\u83B7\u53D6Connection #Wed Nov 10 16:54:59 CST 2021 password=数据库密码 driver=com.mysql.jdbc.Driver user=用户名 url=jdbc\:mysql\://ip地址\:数据库端口号/数据库名
工具类代码:
import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.net.URL; import java.sql.*; import java.util.Properties; public class JDBCUtils { private static String url; private static String user; private static String password; private static String driver; /** * 文件的读取,读取配置文件的值 */ static{ Properties prop = new Properties(); try { //获取src路径下的文件方式-->ClassLoader 类加载器 ClassLoader classLoader = JDBCUtils.class.getClassLoader(); URL res = classLoader.getResource("jdbc.properties"); String path = res.getPath(); //System.out.println(path); prop.load(new FileReader(path)); user = prop.getProperty("user"); url = prop.getProperty("url"); password = prop.getProperty("password"); //Class.forName(prop.getProperty("driver")); mysql5后已无需手动注册 }catch(IOException e){ e.printStackTrace(); } } /* * 用于写入配置文件 * @param args public static void main(String[] args) throws IOException { FileWriter fos = new FileWriter("配置文件路径"); Properties prop = new Properties(); prop.setProperty("url","jdbc:mysql://ip地址:端口号/数据库名"); prop.setProperty("user","用户名"); prop.setProperty("password","数据库密码"); prop.setProperty("driver","com.mysql.jdbc.Driver"); prop.store(fos,"配置文件获取Connection");fos.close(); } */ /** * 获取链接 * @return 连接对象 */ public static Connection getConnection() throws SQLException{ return DriverManager.getConnection(url,user,password); } /** * 释放资源 * @param stm * @param conn */ public static void close(Statement stm,Connection conn){ if(stm != null){ try{ stm.close(); }catch(SQLException e){ e.printStackTrace(); } } if(conn != null){ try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); } } } /** * 释放资源 * @param stm * @param conn * @param result */ public static void close(Statement stm, Connection conn, ResultSet result){ if(result != null){ try{ result.close(); }catch(SQLException e){ e.printStackTrace(); } } if(stm != null){ try{ stm.close(); }catch(SQLException e){ e.printStackTrace(); } } if(conn != null){ try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); } } } /** * 在执行DQL语句有ResultSet的情况下 * 面对多个Statement与多个PreparedStatement对象时,释放资源 * @param conn * @param result * @param stms */ public static void close(Connection conn,ResultSet result,Statement...stms){ if(result != null){ try{ result.close(); }catch(SQLException e){ e.printStackTrace(); } } //释放Statement资源 for(Statement t : stms){ if(t != null){ try{ t.close(); }catch (SQLException e){ e.printStackTrace(); } } } if(conn != null){ try{ conn.close(); }catch (SQLException e){ e.printStackTrace(); } } } /** * 在执行DDL与DML无ResultSet的情况下 * 面对多个Statement对象释放资源 * @param conn * @param stms */ public static void close(Connection conn,Statement...stms){ for(Statement t : stms){ if(t != null){ try{ t.close(); }catch(SQLException e){ e.printStackTrace(); } } if(conn != null){ try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); } } } } }