1 public class DBUtil { 2 private static Properties properties = new Properties(); 3 4 static{ 5 try { 6 //加载properties文件配置文件 7 properties.load(DBUtil.class.getClassLoader().getResourceAsStream("config/db.properties")); 8 //加载数据库驱动 9 Class.forName(properties.getProperty("driver")); 10 } catch (Exception e) { 11 e.printStackTrace(); 12 } 13 } 14 public static Connection getConnection(){ 15 Connection connection = null; 16 String userName = properties.getProperty("user"); 17 String pwd = properties.getProperty("pwd"); 18 String url =properties.getProperty("url"); 19 20 try { 21 connection=DriverManager.getConnection(url, userName, pwd); 22 } catch (SQLException e) { 23 24 e.printStackTrace(); 25 } 26 27 return connection; 28 29 } 30 public static void closePreparedStatement(PreparedStatement prst){ 31 if(prst!=null){ 32 try { 33 prst.close(); 34 } catch (SQLException e) { 35 // TODO Auto-generated catch block 36 e.printStackTrace(); 37 } 38 } 39 } 40 public static void closeResultSet(ResultSet rs){ 41 if(rs!=null){ 42 try { 43 rs.close(); 44 } catch (SQLException e) { 45 // TODO Auto-generated catch block 46 e.printStackTrace(); 47 } 48 } 49 } 50 public static void closeStatement(Statement st){ 51 if(st!=null){ 52 try { 53 st.close(); 54 } catch (SQLException e) { 55 // TODO Auto-generated catch block 56 e.printStackTrace(); 57 } 58 } 59 } 60 public static void closeConnection(Connection con){ 61 if(con!=null){ 62 try { 63 con.close(); 64 } catch (SQLException e) { 65 // TODO Auto-generated catch block 66 e.printStackTrace(); 67 } 68 } 69 } 70 public static void main(String[] args) { 71 Connection con = DBUtil.getConnection(); 72 System.out.println(con); 73 } 74 }
类加载器 class loader用来加载Java类到Java虚拟机中。一般来说,java源程序 .java文件在经过java编译之后就被转换成java字节码文件.class文件。类加载器负责读取java字节码,并转换成java.lang.Class类的一个实例。每个这样的实例用来表示一个java类,通过此实例的newInstance()方法就可以创建出该类的一个类。
Class user =User.class;
user.newInstance()// 即 new出来的User对象,可以通过user.newInstance().setName(); 或user.newInstance().setPwd();来设置属性值。
java.lang.ClassLoader类的基本职责就是根据一个指定的类的名称,找到或者生成其对应的字节代码,然后从这些字节码定义出一个java类,即java.lang.Class类的一个实例。除此之外,ClassLoader还负责加载Java应用 所需的资源,如图像文件和配置文件等。像上面封装的Jdbc的
DBUtil.class.getClassLoader().getResourcesasStream("db.properties"); //根据DButil.class的字节码文件加存到内存,加载db.properties文件。
类加载器就是负责加载类的对象。加载.class文件到内存,生成Class对象的实例。