当前位置:   article > 正文

JDBC连接池C3P0(一):使用properties文件进行配置

c3p0.properties

1、在src下新建一个properties文件,名字随便符合命名规范即可,我这里的名称为:c3p0config.properties,内容如下:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/test
jdbc.username=root
jdbc.pwd=root

2、新建类进行连接测试:

  1. public class DBConnectionByC3P0 {
  2. private static String url = null;
  3. private static String username = null;
  4. private static String pwd = null;
  5. private static DataSource ds_pooled;
  6. //私有构造方法,不能创建对象
  7. private DBConnectionByC3P0(){ }
  8. //加载数据库连接的配置文件和驱动
  9. static{
  10. Properties env = new Properties();
  11. try {
  12. InputStream in = DBConnectionByC3P0.class.getResourceAsStream("/c3p0config.properties");
  13. //加载属性文件中的数据库配置信息
  14. //以=左边作为key值,右边作为value值
  15. env.load(in);
  16. //1. 加载驱动类
  17. Class.forName(env.getProperty("jdbc.driver"));
  18. url = env.getProperty("jdbc.url");
  19. username = env.getProperty("jdbc.username");
  20. pwd = env.getProperty("jdbc.pwd");
  21. //2、设置连接数据库的配置信息
  22. DataSource ds_unpooled = DataSources.unpooledDataSource(url, username, pwd);
  23. Map<String, Object> pool_conf = new HashMap<String, Object>();
  24. //3、设置最大连接数
  25. pool_conf.put("maxPoolSize", 10);
  26. ds_pooled = DataSources.pooledDataSource(ds_unpooled,pool_conf);
  27. } catch (Exception e) {
  28. e.printStackTrace();
  29. }
  30. }
  31. //获取连接对象
  32. public static Connection getConnection() throws SQLException {
  33. return ds_pooled.getConnection();
  34. }
  35. //释放连接池资源
  36. public static void clearup(){
  37. if(ds_pooled != null){
  38. try {
  39. DataSources.destroy(ds_pooled);
  40. } catch (SQLException e) {
  41. e.printStackTrace();
  42. }
  43. }
  44. }
  45. private static Integer counter = 0;
  46. public static void main(String[] args){
  47. for (int i = 1; i <= 20; i++) {
  48. new Thread(new Runnable() {
  49. public void run() {
  50. Connection conn = null;
  51. try {
  52. conn = DBConnectionByC3P0.getConnection();
  53. synchronized (counter) {
  54. System.out.print(Thread.currentThread().getName());
  55. System.out.print("counter=" +(counter++)+ "\tconn="+conn);
  56. System.out.println();
  57. conn.prepareStatement("select * from s_user");
  58. conn.close();
  59. }
  60. } catch (SQLException e) {
  61. e.printStackTrace();
  62. }
  63. }
  64. }).start();
  65. }
  66. }
  67. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/252814
推荐阅读
相关标签
  

闽ICP备14008679号