自己写的JdbcUtils小工具-----得到Connection对象

Properties文件中存放键值对------(可看对Properties文件的解析)

static代码块是在构造函数之前执行的,而且只执行一次,即类首次加载时。

也就是只加载一次配置文件和加载数据库驱动

下面的getConnection()方法调用一次返回一个Connection对象

得到不相同的对象

 1 //v1.0
 2 public class JdbcUtils {
 3     //私有的 静态对象
 4     //类中的任何成员函数都可以访问静态变量           但是静态成员函数不能直接访问非静态成员,只能通过该类的
 5     //对象名访问该对象的非静态成员。这是因为静态成员函数属于整个类的,没有特指向某个对象的this指针
 6     private static Properties props=null;
 7     static{
 8         //给props进行初始化,即加载dbconfig.properties文件到props对象中
 9         
10         //加载配置文件                    取得该class对象类的类装载器
11         //返回 用于读取指定资源的 输入流
12         InputStream in=JdbcUtils.class.getClassLoader()
13                 .getResourceAsStream("dbconfig.properties");
14         props=new Properties();
15         
16         try {
17             //从输入字节流读取属性列表(键和元素对)
18             props.load(in);
19         } catch (IOException e) {
20             // TODO Auto-generated catch block
21             e.printStackTrace();
22         }
23         ////
24         try {
25             //                    使用此属性列表中指定的键搜索属性----key:driverClassName搜索它的属性
26             //这一步相当于加载驱动
27             Class.forName(props.getProperty("driverClassName"));
28         } catch (ClassNotFoundException e) {
29             // TODO Auto-generated catch block
30             e.printStackTrace();
31         }
32     }
33 
34     public static Connection getConnection() throws SQLException{
35         
36         /*
37          * 1加载配置文件
38          * 2加载驱动类
39          * 3调用DriverManager
40          * */
41         //已经加载完驱动后,然后得到连接                    三大参数,,,通过properties对象的getProperty("指定的键")得到值
42         return DriverManager.getConnection(props.getProperty("url"), 
43                 props.getProperty("username"), props.getProperty("password"));
44     }
45 }

测试,生成Connection对象

1 //测试JdbcUtils.getconnection()
2     @Test
3     public void fun3() throws SQLException{
4         Connection con=JdbcUtils.getConnection();
5         System.out.println(con);
6         Connection con1=JdbcUtils.getConnection();
7         System.out.println(con1);
8     }

结果:

com.mysql.jdbc.JDBC4Connection@6a02938d
com.mysql.jdbc.JDBC4Connection@78a6edb5

Properties文件

原文地址:https://www.cnblogs.com/xjs1874704478/p/10713398.html