一:什么是连接池?使用连接池的好处是什么?

  连接池就是一个存放数据库连接对象的容器。当系统初始化后,就会向数据库申请一些连接对象存放到容器里,用的时候直接从容器里取,用完后放回连接池。

  连接池可以提高数据库访问效率,也可以节约资源。

二:java中提供了一个接口叫DataSource,他提供了连接池规范。开发者一般使用第三方的类库实现这个接口。C3P0 和 Druid(由阿里巴巴提供);

三:C3P0的具体使用:

  1. 导入jar包 c3p0-0.9.5.2.jar 和 mchange-commons-java-0.2.12.jar

  注意:不要了数据库驱动jar包

  2. 定义配置文件
  名称:c3p0.properties or c3p0-config.xml
  路径:直接将配置放到src目录下即可

  3:DataSource dataSource = new ComboPooledDataSource();    //创建连接池

     Connection conn = dataSource.getConnection();      //创建连接对象

四:Druid的使用:

  1:导入druid所需的包和数据库驱动包

  2:定义配置文件,放在src目录下

  Properties pro = new Properties();       //创建配置文件对象

  InputStream is = Demo03.class.getClassLoader().getResourceAsStream("druid.properties");   //读到定义的配置文件
  pro.load(is);  //将配置文件加载到配置文件对象中
  DataSource ds = DruidDataSourceFactory.createDataSource(pro); //获取连接池‘

  Connection conn = ds.getConnection();      //获取连接对象

五:JDBCTemplate :JDBCTemplate是以Spring在JDBCAPI上定义的抽象层建立的JDBC存取框架,有了它可以更方便的操作数据库,增删查改操作更方便。

  1:创建JDBCTemplate:

    JDBCTemplate jdbc = new JDBCTemplate(DataSource data)   //传入一个连接池对象

  2:常用方法:所有方法都传入查询字符串

    (1):uddate()    执行增删改操作

    (2):queryForMap()    查询单条数据使用,返回map集合。

    (3):queryForList()    查询多条数据使用,返回  List<Map<String,Object>>

    (4):query()      查询单条数据,将数据封装成自定义对象

    (5):queryForObject()  查询多条数据,将数据封装成自定义对象

    (6):execute()      可以执行任何语句,一般用于执行DDL语句

连接池和JDBCTemplate的更多相关文章

  1. 黑马学习连接池 druid JdbcTemplate c3p0 池技术

    package cn.itcast.jdbctemplate; import org.junit.Test; import org.springframework.jdbc.core.BeanProp ...

  2. JdbcTemplae使用入门&&Spring三种连接池配置&&Spring配置文件引用外部properties文件

    JdbcTemplate的使用 Spring为了各种支持的持久化技术,都提供了简单操作的模版和回调. JdbcTemplate 简化 JDBC 操作HibernateTemplate 简化 Hiber ...

  3. (七)Spring 配置 c3p0 连接池

    目录 在 Spring 核心配置文件中配置 c3p0 连接池 配置 JdbcTemplate 对象 在 service 层注入 userDao 在 UserDao 里面注入 JdbcTemplate ...

  4. Java框架spring 学习笔记(十六):c3p0连接池的配置以及dao使用jdbcTemplate

    连接池可以大大提高数据库的性能和连接速度,将那些已连接的数据库连接存放在一个连接池里,以后别人要连接数据库的时候,将不会重新建立数据库连接,直接从连接池中取出可用的连接,用户使用完毕后,会释放连接重新 ...

  5. Spring_day03--Spring配置c3p0连接池和dao使用jdbcTemplate

    Spring配置c3p0连接池和dao使用jdbcTemplate 1 spring配置c3p0连接池 第一步 导入jar包 第二步 创建spring配置文件,配置连接池 原始方式 (1)把代码在配置 ...

  6. spring配置连接池和dao使用jdbcTemplate

    1 spring配置c3p0连接池 第一步 导入jar包 第二步 创建spring配置文件,配置连接池 (1)把代码中的实现在配置文件中实现 2 dao使用jdbcTemplate (1) 创建ser ...

  7. Spring中c3p0连接池的配置 及JdbcTemplate的使用 通过XML配置文件注入各种需要对象的操作 来完成数据库添加Add()方法

    通过配置文件XML方法的配置 可以使用非常简练的Service类 UserService类代码如下: package com.swift; public class UserService { pri ...

  8. Java中JDBC连接池&JDBCTemplate

    数据库连接池 概念:其实就是一个容器(集合),存放数据库连接的容器. 当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归 ...

  9. JavaWeb——JDBC连接池&JDBCTemplate

    今日内容 1. 数据库连接池 2. Spring JDBC : JDBC Template 数据库连接池 1. 概念:其实就是一个容器(集合),存放数据库连接的容器. 当系统初始化好后,容器被创建,容 ...

随机推荐

  1. P4136 谁能赢呢? 脑子

    思路:脑子(教练说是博弈论?) 提交:1次 题解: 结论:若\(n\)为奇数后手胜,若\(n\)为偶数先手胜. 大致证明: 我们发现,若我们把棋盘黑白染色并设左上角为黑色,那么显然有:若\(n\)为奇 ...

  2. 【题解】P1638 逛画展-C++

    原题传送门 思路这道题目可以通过尺取法来完成 (我才不管什么必须用队列)什么是尺取法呢?顾名思义,像尺子一样取一段,借用挑战书上面的话说,尺取法通常是对数组保存一对下标,即所选取的区间的左右端点,然后 ...

  3. 又见回文 (SDUT 2560)

    Problem Description "回文串"是一个正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串.现在呢, ...

  4. vue中插槽(slot)的使用

    刚学vue的时候,曾经学习过slot插槽的使用,但是后面接触的不多,因为之前我还没使用element-ui... 但是使用了element-ui之后,里面的许多组件,有时候会使用插槽,为了巩固一下插槽 ...

  5. C语言学习笔记5-程序结构

    本系列文章由jadeshu编写,转载请注明出处.http://blog.csdn.net/jadeshu/article/details/50752148 作者:jadeshu   邮箱: jades ...

  6. 顺序模型api

    Compile:配置模型,然后进行训练 compile(optimizer, loss=None, metrics=None, loss_weights=None, sample_weight_mod ...

  7. TCP_IP Sockets编程C语言实现第2版 源码下载

    原书网址:http://cs.ecs.baylor.edu/~donahoo/practical/CSockets2/textcode.html 源码下载: 链接:https://pan.baidu. ...

  8. python爬虫-爬坑之路

    背景简介 爬取外国的某两个网站的数据,网站都没有被墙,爬取三种数据. A: 爬取页面并存储到数据库 B: 爬取页面内的表格内数据并存储到数据库 C: 爬取页面,分析页面并将页面的所有数据分类存入数据库 ...

  9. 2019PKUWC游记

    有的时候,不是你不会 而是你,认为你不会 ——*Miracle* 本篇游记就简单写了 Day-inf 犹豫许久,还是选择了北大 不是因为喜欢——甚至恰好相反 而是,听说清华高手较多,约型单一, 于是我 ...

  10. 【面试题总结】1、统计字符串中某个单词出现的次数(1-C++实现)

    [解决方法一]C++ map解决 一.map中的find函数: 用于查找map中是否包含某个关键字条目,传入的参数是要查找的key,最后返回一个迭代器,如果没有找到,则返回的迭代器等于end()返回的 ...