properties文件作用以及在哪些地方用

时间:2022-04-27 03:27:05
  1 import java.sql.Connection;
  2 import java.sql.DriverManager;
  3 import java.sql.PreparedStatement;
  4 import java.sql.ResultSet;
  5 import java.sql.SQLException;
  6 import java.sql.Statement;
  7 import java.util.ResourceBundle;
  8 
  9 //连接数据库
 10 public class JDBCUtils {
 11     
 12     public  static Connection conn ;
 13     public static PreparedStatement pstmt ;
 14     public static ResultSet rs ;
 15     
 16 
 17     private static  String driverClass  ;
 18     private static String url ;
 19     private static String username ;
 20     private static String password ;
 21     
 22     static {
 23         ResourceBundle rd = ResourceBundle.getBundle("dbconfig") ;
 24         driverClass = rd.getString("driverclass") ;
 25         url = rd.getString("url") ;
 26         username = rd.getString("username") ;
 27         password = rd.getString("password") ;
 28     }
 29     
 30     public static Connection getConn(){
 31         try {
 32             Class.forName(driverClass) ;
 33             conn = DriverManager.getConnection(url, username, password) ;
 34             return conn ;
 35         } catch (Exception e) {
 36             e.printStackTrace();
 37         }
 38         return null ;
 39     }
 40     
 41     //增删改
 42     public static boolean updateSQL(String sql,Object...objs){
 43         getConn() ;
 44         int n = 0 ;
 45         try {
 46             pstmt = conn.prepareStatement(sql) ;
 47             //指定参数的值
 48             for (int i = 0; i < objs.length; i++) {
 49                 pstmt.setObject(i+1, objs[i]) ;
 50             }
 51             
 52             //执行sql语句
 53             n = pstmt.executeUpdate() ;
 54         } catch (SQLException e) {
 55             e.printStackTrace();
 56         }finally{
 57             close(conn,pstmt,rs) ;
 58         }
 59         return n > 0 ? true :false ;
 60     }
 61     
 62     //查询
 63     public static ResultSet getResultSet(String sql,Object ...objs){
 64         getConn() ;
 65         int n = 0 ;
 66         try {
 67             pstmt = conn.prepareStatement(sql) ;
 68             //指定参数的值
 69             for (int i = 0; i < objs.length; i++) {
 70                 pstmt.setObject(i+1, objs[i]) ;
 71             }
 72             
 73             //执行sql语句
 74             rs = pstmt.executeQuery() ;
 75         } catch (SQLException e) {
 76             e.printStackTrace();
 77         }
 78         return rs ;
 79     } 
 80     
 81     //关闭连接的方法
 82     public static void close(Connection conn ,Statement pstmt, ResultSet rs){
 83         if(rs != null){
 84             try {
 85                 rs.close() ;
 86             } catch (SQLException e) {
 87                 // TODO Auto-generated catch block
 88                 e.printStackTrace();
 89             }
 90         }
 91         if(pstmt != null){
 92             try {
 93                 pstmt.close() ;
 94             } catch (SQLException e) {
 95                 // TODO Auto-generated catch block
 96                 e.printStackTrace();
 97             }
 98             
 99         }
100         
101         if(conn != null){
102             try {
103                 conn.close() ;
104             } catch (SQLException e) {
105                 // TODO Auto-generated catch block
106                 e.printStackTrace();
107             }
108         }
109     }
110 }

这段代码是链接数据库,其中第23行是读取properties配置文件的,当初有点看不懂,那properties文件的作用是什么?properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties文件中,可以用"#"来作注释。具体一点的话,如下解释:

      配置信息用的。加上你写一个方法来获取配置信息的内容,也就是读取.properties文件。方法设置返回值,可以用来返回等号后面的信息,比如你想获取8888的话,只需要给写的方法传一个参数PORT,就能返回8888。工程里很多地方都会用到配置信息里的东西,如果没有配置文件,将来要修改端口号或者HOST的时候就比较麻烦,需要改代码。有配置文件就不一样了,只修改配置文件里等号后面的数据就可以了。工程里其他地方用HOST和PORT都是用给读取配置文件的方法传参数的形式调用数据的,所以只修改配置文件的内容就能全部修改为想要的数据。最主要的是不用修改代码,这点很重要,所以工作中配置文件往往比java代码还要多。,当然不止是.properties类型的,更多的是.xml类型