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

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

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

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

得到不相同的对象

 //v1.0
public class JdbcUtils {
//私有的 静态对象
//类中的任何成员函数都可以访问静态变量 但是静态成员函数不能直接访问非静态成员,只能通过该类的
//对象名访问该对象的非静态成员。这是因为静态成员函数属于整个类的,没有特指向某个对象的this指针
private static Properties props=null;
static{
//给props进行初始化,即加载dbconfig.properties文件到props对象中 //加载配置文件 取得该class对象类的类装载器
//返回 用于读取指定资源的 输入流
InputStream in=JdbcUtils.class.getClassLoader()
.getResourceAsStream("dbconfig.properties");
props=new Properties(); try {
//从输入字节流读取属性列表(键和元素对)
props.load(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
////
try {
// 使用此属性列表中指定的键搜索属性----key:driverClassName搜索它的属性
//这一步相当于加载驱动
Class.forName(props.getProperty("driverClassName"));
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public static Connection getConnection() throws SQLException{ /*
* 1加载配置文件
* 2加载驱动类
* 3调用DriverManager
* */
//已经加载完驱动后,然后得到连接 三大参数,,,通过properties对象的getProperty("指定的键")得到值
return DriverManager.getConnection(props.getProperty("url"),
props.getProperty("username"), props.getProperty("password"));
}
}

测试,生成Connection对象

 //测试JdbcUtils.getconnection()
@Test
public void fun3() throws SQLException{
Connection con=JdbcUtils.getConnection();
System.out.println(con);
Connection con1=JdbcUtils.getConnection();
System.out.println(con1);
}

结果:

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

Properties文件

自己写的JdbcUtils小工具-----得到Connection对象的更多相关文章

  1. JdbcUtils 小工具

    // 第一版 // src 目录下 dbconfig.properties 配置文件, 用来配置四大参数 // 注意 properties 配置文件中没有分号结尾, 也没有引号 driverClass ...

  2. QT写的一个小工具:阿里云MQTT连接参数生成器.

    一.工具介绍. 最近在研究MQTT协议联网的一些问题,现在主流的物联网平台都支持MQTT协议. 在做阿里云平台连接测试的时候,连接参数的生成没有好用的工具, 所以就自己写了一个. 这个工具主要用于阿里 ...

  3. 分享自己写的一个小工具RGB转十六进制(高手勿喷)

    由于工作经常美工给的颜色是rgb,而我们网页里面是16进制.网上也有很多类型的工具.不过似乎都用浏览器打开.没网就不爽了 实现也很简单.代码已经共享了 http://git.oschina.net/w ...

  4. FTP没权限直接删除目录,写的一个小工具循环删除

    $path = '/var/www/html/Runtime/'; $ite = new RecursiveDirectoryIterator($path); foreach (new Recursi ...

  5. 今天突发奇想写了一个小工具,CSDN文章目录生成器

    Why 文章被遗忘 文章检索不好用 方便总结个人知识 What 根据文章分类生成文章目录 莫逸风文章目录 项目地址 gitee(地址)

  6. 应急分析异常通信的小思路和自己写的小工具(查询CNAME和A记录)

    一.背景: 在很多时候,应急会发现.卧槽,异常连接,只有一个域名或者IP. 怎么办?上防火墙看记录,查域名对应的记录累成狗,自己把之前的代码改了改,写了个小工具,一条命令查询DNS相关记录,也可以指定 ...

  7. 手把手教你写一个windows服务 【基于.net】 附实用小工具{注册服务/开启服务/停止服务/删除服务}

    1,本文适用范围 语言:.net 服务类型:windows服务,隔一段时间执行 2,服务搭建: 1,在vs中创建 console程序 2,在console项目所在类库右键 添加-新建项-选择Windo ...

  8. 用 C# 写一个 Redis 数据同步小工具

    用 C# 写一个 Redis 数据同步小工具 Intro 为了实现 redis 的数据迁移而写的一个小工具,将一个实例中的 redis 数据同步到另外一个实例中.(原本打算找一个已有的工具去做,找了一 ...

  9. python小工具:用python操作HP的Quality Center

    背景是这样的:这个组的测试人员每跑一个case都要上传测试结果附件到QC.每个待测功能模块可能包含几十上百的case.于是手工上传测试结果变成了繁重的体力劳动.令人惊讶的是我们的工具开发组竟然说做不了 ...

随机推荐

  1. Socket网络编程--聊天程序(3)

    上一小节,已经讲到可以每个人多说话,而且还没有限制,简单的来说,我们已经完成了聊天的功能了,那么接下来我们要实现什么功能呢?一个聊天程序至少应该支持一对多的通讯吧,接下来就实现多个客户端往服务器发送数 ...

  2. 【iCore4 双核心板_ARM】例程二十:LWIP_TCP_CLIENT实验——以太网数据传输

    实验现象: 核心代码: int main(void) { system_clock.initialize(); //ϵͳʱÖÓ³õʼ»¯ led.initialize(); //LED³õʼ ...

  3. 【WPF】自定义形状的按钮Button

    需求:做一个如下图所示的多边形按钮. <!-- 特殊形状的按钮 --> <Grid> <Polygon Points="0,0 140,0 190,42 140 ...

  4. centos 安装oracle 11g r2(一)-----软件安装

    centos 安装oracle 11g r2(一)-----软件安装 1.进入管理员权限 [anzerong@localhost ~]# su - root password [root@localh ...

  5. 关于Unity的两种调试方法

    Unity的两种调试方法 1.Debug.Log()输出语句调试,平时经常用这个 2.把MonoDevelop和Unity进行连接后断点调试 先把编辑器选择为MonoDevelop,Edit----& ...

  6. 【QT】打开文件对话框,选择路径下文件

    0.头文件中加入 public: QString fileName; public slots: void showImage(); 1.添加两个头文件 #include<qfiledialog ...

  7. 条件变脸pthread_cond_signal丢失问题

    直接上代码: static bsem_t bsem; void* t1(void *arg) { /*printf("enter task 1\n");*/ /*while(1)* ...

  8. [Cubieboard] 安装 Lubuntu server for SDCard

    硬件:Cubieboard2 系统:Ubuntu 14.04 based on VMware Virtual Machine 镜像:cb2-lubuntu-server-tsd-tfcard-v2.0 ...

  9. 在浏览器中高效使用JavaScript module(模块)

    在浏览器中也可以使用JavaScript modules(模块功能)了.目前支持这一特性的浏览器包括: Safari 10.1. 谷歌浏览器(Canary 60) – 需要在chrome:flags里 ...

  10. Bootstrap的Model源码详细注释 (转)

    原文: http://my.oschina.net/haogrgr/blog/323079?p=1 /* =============================================== ...