JDBC连接MySQL数据库(二)——添加配置文件实现数据库连接

    xiaoxiao2022-07-13  144

    JDBC实现数据库的连接

    通过添加配置文件

    如果我们想要需要更改数据库,按照之前的做法的话,我们就要取修改源代码,这样的方式很繁琐,可能也不一定去给你看源代码,既然这样我们应该怎么修改呢? 通过添加配置文件实现对数据库的访问,而不是去修改源代码,这样更改配置信息就可以完成对其他数据库的操作。

    在src目录下建立配置文件如下图: 设置配置信息:

    url = jdbc:mysql://localhost/studentinformation?serverTimezone=GMT%2B8 user = root password = 81604152 driverclass = com.mysql.cj.jdbc.Driver

    我们在JDBCutils中添加静态代码块,静态代码块 随着类加载时,加载进jvm中,读取配置文件在此添加如下代码:

    static { Properties p = new Properties(); InputStream is = JDBCtool.class.getClassLoader().getResourceAsStream("jdbc.pro"); try { p.load(is); url = p.getProperty("url"); password = p.getProperty("password"); user = p.getProperty("user"); DriverClass = p.getProperty("driverclass"); } catch (Exception e) { } }

    获取连接

    public static Connection getconn() { Connection conn = null; try { Class.forName(DriverClass); conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { e.printStackTrace(); } return conn; }

    JDBCutils工具:

    import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class JDBCutils { static String url = null; static String password = null; static String user = null; static String DriverClass = null; static { Properties p = new Properties(); InputStream is = JDBCutils.class.getClassLoader().getResourceAsStream("jdbc.pro"); try { p.load(is); url = p.getProperty("url"); password = p.getProperty("password"); user = p.getProperty("user"); DriverClass = p.getProperty("driverclass"); } catch (Exception e) { } } public static Connection getconn() { Connection conn = null; try { Class.forName(DriverClass); conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { e.printStackTrace(); } return conn; } public static void ReleaseAll(Connection conn, ResultSet rs, Statement st) { CloseConn(conn); CloseRs(rs); CloseSt(st); } private static void CloseConn(Connection conn) { try { if(conn != null) { conn.close(); } }catch(SQLException e){ e.printStackTrace(); }finally { conn = null; } } private static void CloseRs(ResultSet rs) { try { if(rs != null) { rs.close(); } }catch(SQLException e){ e.printStackTrace(); }finally { rs = null; } } private static void CloseSt(Statement st) { try { if(st != null) { st.close(); } }catch(SQLException e){ e.printStackTrace(); }finally { st = null; } } }

    完整代码如下:

    import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class prac { public static void main(String [] args ) { Connection conn = null; ResultSet rs = null; Statement st = null; try { conn = JDBCtutils.getconn(); st = conn.createStatement(); String sql= "select * from info"; rs = st.executeQuery(sql); while(rs.next()) { int id = rs.getInt("id"); String name = rs.getString( "name"); System.out.println( id+":"+name); } } catch (SQLException e) { e.printStackTrace(); }finally { JDBCutils.ReleaseAll(conn, rs, st); } } }
    最新回复(0)