一、问题引入 在java程序中,需要访问数据库,做增删改查等相关操作。如何访问数据库,做数据库的相关操作呢? 二、Java连接数据库方法概述 java.sql提供了一些接口和类,用于支持数据库增删改查等相关的操作。该jar包定义了java访问各种不同数据库(mysql,oracle,sqlserver。。。。。)的统一接口和标准。同时,各个数据库厂商都提供了该jar包中定义的各个接口的实现类,用于具体实现本厂数据库的增删改查操作,即称之为“数据库驱动 jdbc driver”。例如mysql的数据库驱动为:com.mysql.jdbc.driver;oracle的数据库驱动为:oracle.jdbc.driver.oracledriver。 在java程序中访问数据库,做数据库连接时,可以采用两种方式: 1、使用java.sql API 利用该包提供的各种接口和类直接访问数据库。 例子: 2、使用数据库连接池 目前存在多个开源的java数据库连接池,这些连接池都是在java.sql基础上编写而成。 该连接池的解决的问题是: 当使用java.sql中提供的api创建数据库连接时候,需要耗费很大的资源,要进行用户名密码数据库连接验证等,即耗费资源也耗费时间。如果在程序中,每次需要访问数据库时候,都进行数据库连接,那么势必会造成性能低下;同时,如果用户失误忘记释放数据库连接,会导致资源的浪费等。而数据库连接池就是解决该问题,通过管理连接池中的多个连接对象(connection),实现connection重 复 利用。从 而,大大提高 了数据库连接方面 的性能。 该连接池的功 能是: 负 责 创建,管理,释放,分 配 数据库连接即(connection)。首 先 ,负 责 创建相应数目的数据库连接对象(connection)对象,并 存放到 数据库连接池(connect pool)中。当用户请 求 数据库连接时,该连接池负 责 分 配 某 个处 于空 闲 状 态 的数据库连接对象;当用户发 出 释放该数据库连接时,该连接池负 责 将 该连接对象重 新 设 置 为空Driv ermanager(驱动管理类) Connection(连接类) Statement(静 态 语 句 ) Preparedstatement(动态 ) resu ltset resu ltset 闲状态,以便被别的请求重复利用。同时;数据库连接池负责检查(空闲时间>最大空闲时间)的数据库连接,并释放。 连接池主要参数介绍 最小连接数:初始化时,系统将负责创建该数目的connection放入连接池中。 最大连接数:系统允许创建connection的最大数值。当系统请求连接时候,且连接池中...