import java.util.ResourceBundle;

public class Mtest7Demo {

//使用properties配置文件完成数据库的连接

/*

* 开发中获得连接的4个参数(驱动,URL,用户名,密码)通常都存在配置文件中,方便后期维护,

* 程序如果需要更换数据库,只需要修改配置文件即可。

* (个人认为如果单独的创建一个类,包含上面的四种参数,在性质上并无差别)

* 注意点:

* 1 文件位置,任意,建议src下;

* 2文件名称:任意,扩展名为properties

* 3文件内容:一行一组数据,格式是"key=value"

*/

/*

* 加载配置文件:ResourceBundle对象

* ResourceBundle提供getBundle()方法用于只提供properties文件即可,

* 之后使用getString(key)通过key获得value的值

*/

public static String driver;//驱动

public static String url;//路径

public static String user;//用户名

public static String password;//密码

//配置文件只需要被加载一次。

static {//注意需要放在static中;

//通过key获取value的值

ResourceBundle bundle=ResourceBundle.getBundle("db");

driver=bundle.getString("jdbc.driver");

url=bundle.getString("jdbc.url");

user=bundle.getString("jdbc.user");

password=bundle.getString("jdbc.password");

}

//如上完成properties文件配置的封装

}

import java.sql.Connection;

import java.sql.DriverManager;

import java.util.LinkedList;

public class Mtest6Demo {

static LinkedList pool = new LinkedList();

//使用连接池完成数据库的连接

//本测试首先是自定义的连接池

//1初始化连接池中的连接

//本部分是连接池的初始化设置

static {

Mtest7Demo mt=new Mtest7Demo();

String driver=mt.driver;

String url=mt.url;

String user=mt.user;

String password=mt.password;

try {

//1注册驱动

Class.forName(driver);

for(int i=0;i<5;i++)

{

//2获得连接

Connection conn = DriverManager.getConnection(url,user,password);

//3将连接添加到连接池中

pool.add(conn);

}

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}

}

//获得连接

public static Connection getConnection() {

Connection conn=null;

try {

//1如果池中有连接

if(!pool.isEmpty())

{

//2每一个连接Connection,只能提供给当前一个线程使用,必须进行移除操作

conn=pool.remove(0);

//3返回刚刚获得的连接

return conn;

}else {

//如果没有连接,等待100毫秒,然后继续

Thread.sleep(100);

return getConnection();

}

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}

return conn;

}

//归还连接

public static void release(Connection conn) {

try {

if(conn!=null)

{

conn.close();

pool.add(conn);

}

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}

}

}

db.propreties文件

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/study?useUnicode=true&characterEncoding=utf8

jdbc.user=root

jdbc.password=root

java数据库配置_java--数据库(文件配置连接,自定义连接池)相关推荐

  1. VSCode JS主题风格与样式环境配置 settings.json 文件配置 完成 webstorm风格化配置

    webstorm 很好用,但破解版难找,有些功能可能还存在问题(本人用的破解版在全局搜索上不对),而学生认证暂时的,因此不如直接把VScode 配置成webstorm样式,风格化很接近了.有注释参考. ...

  2. dz论坛连接mysql数据库_DISCUZ! 修改数据库连接文件配置方法

    我们迁移discuz7.2论坛,导入mysql数据库后,使用文本编辑器editplus打开根目录下config.inc.php和uc_server/data/config.inc.php  两个文件替 ...

  3. android xml导进数据库,Android通过xml文件配置数据库

    之前一段时间自己封装了两个数据库,一个是ORM数据库,另一个是事件流数据库,项目相应的地址如下: ORM数据库:https://github.com/wenjiang/SimpleAndroidORM ...

  4. jdbc odbc java mysql数据库连接_Java数据库连接之配置ODBC数据源

    java使用JDBC-ODBC桥接连接SQLServer数据库需要配置ODBC数据源,配置步骤如下: 1.进入控制面板,找到管理工具 2.看到ODBC数据源,有64位和32位的,如果你的数据库是64位 ...

  5. java robot 文档_文件配置 · simple-robot 机器人开发者使用文档 · 看云

    # 文件配置 文件配置使用properties格式文件,以上一章节中讲到的`配置名`作为**键(key)**,以配置的值作为**值(value)** > 以核心`1.12.x`的配置规范为准,较 ...

  6. java工具配置_Java™ 教程(配置实用工具)

    配置实用工具 本节介绍一些帮助应用程序访问其启动上下文的配置实用程序. 属性 Properties是作为键/值对管理的配置值,在每对中,键和值都是字符串值,键标识并用于检索值,就像变量名用于检索变量的 ...

  7. java常量配置_java项目动态配置常量和peiconfig.properties配置使用详解

    java项目动态配置常量和peiconfig.properties配置使用详解 点击:2 Java工程中配置信息一般都写在 properties文件中,下面这篇文章是对java基础配置的一点学习心得整 ...

  8. 服务器前端文件配置,服务器前端文件配置

    服务器前端文件配置 内容精选 换一换 使用mount命令挂载文件系统到云服务器,云服务器系统提示timed out.原因1:网络状态不稳定.原因2:网络连接异常.原因3:云服务器DNS配置错误,导致解 ...

  9. java p2p 下载_java p2p文件传输(含服务器端与jsp源码)

    [实例简介] [实例截图] [核心代码] import java.net.*; import java.util.List; import java.awt.*; import javax.swing ...

  10. java class 结构_Java class文件的结构

    Java class文件的结构 class文件是Java源代码编译之后产生的二进制文件,代码中的各个项目严格按照Java的规范组织. class文件以一张表的形式组织代码中的各个部分: 名称 释义 大 ...

最新文章

  1. java 修饰符 访问控制符_Java访问修饰符(访问控制符)
  2. 如何在jupyter notebook中运行markdown文件(脚本、代码)
  3. 北斗导航 | 坐标变换矩阵(CTM)与欧拉角(Euler)互相转换:Matlab源代码
  4. HDU - 6356 Glad You Came(线段树)
  5. 【Java】Java实现 JSON 的组装和解析
  6. html中常见的小问题(1)
  7. 什么是机器学习?有哪些分类?到底有什么用?终于有人讲明白了
  8. 对象交互。英雄搏击游戏。0107
  9. python获取天气数据_python获取天气数据
  10. 疯狂的ASP.NET系列-第一篇:啥是ASP.NET
  11. 【5】线性反馈移位寄存器
  12. 方法重写和重载的规则
  13. 离散——在谓词演算的推理过程中为什么要先消去存在量词再消去全称量词
  14. 软件随想录:程序员部落酋长Joel谈软件(阮一峰译)-1
  15. Boost.auto_ptr的实现源码
  16. 推荐系统论文源码笔记——依次学习之DKN源码笔记
  17. 建站选择免费虚拟主机的六大误区
  18. 爬取豆瓣前250电影数据
  19. php 类型提示,PHP中的类型提示(type hinting)功能介绍
  20. pci总线协议学习笔记——PCI总线基本概念

热门文章

  1. Java LocalDate类| 带示例的compareTo()方法
  2. 12345组成三个不重复数java,求大神帮忙!五子棋!只能识别按顺序识别!例如 12345 不能...
  3. 数据库范式5nf_第四范式(4NF)| 数据库管理系统
  4. python中八进制_在Python中以八进制格式输入数字
  5. Java ClassLoader getResources()方法与示例
  6. 查询MySQL字段注释的 5 种方法!
  7. 一道题决定去留:为什么synchronized无法禁止指令重排,却能保证有序性?
  8. 美团面试题 | JVM 堆内存溢出后,其他线程是否可继续工作?
  9. 视频人脸检测——Dlib版(六)
  10. mysqli与pdo防sql注入源码