zoukankan      html  css  js  c++  java
  • jdcb封装&类加载器&

     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 }
    View Code

    类加载器 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对象的实例。

  • 相关阅读:
    webpack 打包报 ERROR in static/js/vendor.2eff2b5a1d36f4b7f033.js from UglifyJs
    常见重构技巧
    Java常见重构技巧
    Python写基于非线性优化的2D-SLAM系统(已开源)
    分享一个免费开源压缩视频软件!!!【视频压缩后质量还可以】
    AJAX之超时与网络异常处理
    HTTP
    Gin多次读取body
    高效的数据压缩编码方式 Protobuf
    TCP报文之-tcp dup ack 、tcp Out-of-Order
  • 原文地址:https://www.cnblogs.com/shuanlei/p/4506289.html
Copyright © 2011-2022 走看看