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类型