1.5.2 PreparedStatement的功能
为占位符设置值
setXxx(参数1,参数2)
参数1:问号的位置,从1开始
参数2:问号位置上的值
执行SQL
executeUpdate():执行增删改查,返回 int 值,表示影响的记录数
executeQuery():执行查询,返回结果集 ResultSet
1.6 数据库连接池
1.6.1 概念
概念:本质上就是一个容器,存放数据库连接对象的容器
1.6.2 好处
节省资源
提高用户的访问效率
1.6.3 实现方式
在 javax.sql 下提供了一个数据库连接池的接口,DataSource
DataSource的方法:
1. getConnection():从连接池中获取连接对象
close():将连接对象归还到连接池中
1.6.3.1 C3P0
步骤:
导入 jar 包,c3p0-0.9.5.2.jar 和 mchange-commons-java-0.2.12.jar
编写配置文件:
在项目的 src 目录下定义 c3p0.properties 或者 c3p0-config.xml
在文件中定义数据库的驱动包、数据库的地址、用户名、密码等
创建C3P0的核心类对象,ComboPooledDataSource
// 第一种方式会在c3p0的配置文件中,根据named-config标签下的内容对数据库连接池进行配置
ComboPooledDataSourcedataSource=newComboPooledDataSource("myc3p0");
// 第二种方式会在c3p0的配置文件中,根据default-config标签下的内容对数据库连接池进行配置
ComboPooledDataSourcedataSource=newComboPooledDataSource();
调用获取连接对象的方法,getConnection()
归还连接对象,close()
c3p0-config.xml
<c3p0-config>
<named-configname="myc3p0">
<!-- driverClass:驱动包 -->
<propertyname="driverClass">com.mysql.jdbc.Driver</property>
<!-- jdbcUrl:数据库地址 -->
<propertyname="jdbcUrl">jdbc:mysql://localhost:3306/0521am</property>
<!-- user:管理员的用户名 -->
<propertyname="user">root</property>
<!-- password:管理员的密码 -->
<propertyname="password">1234</property>
<!-- initialPoolSize:连接池的默认大小 -->
<propertyname="initialPoolSize">3</property>
<!-- maxPoolSize:最大连接数 -->
<propertyname="maxPoolSize">5</property>
<!-- checkoutTimeout:超时时间 -->
<propertyname="checkoutTimeout">1000</property>
</named-config>
<default-config>
<!-- driverClass:驱动包 -->
<propertyname="driverClass">com.mysql.jdbc.Driver</property>
<!-- jdbcUrl:数据库地址 -->
<propertyname="jdbcUrl">jdbc:mysql://localhost:3306/0521am</property>
<!-- user:管理员的用户名 -->
<propertyname="user">root</property>
<!-- password:管理员的密码 -->
<propertyname="password">1234</property>
<!-- initialPoolSize:连接池的默认大小 -->
<propertyname="initialPoolSize">3</property>
<!-- maxPoolSize:最大连接数 -->
<propertyname="maxPoolSize">5</property>
<!-- checkoutTimeout:超时时间 -->
<propertyname="checkoutTimeout">1000</property>
</default-config>
</c3p0-config>
注:
1. 从连接池中存在的连接对象的第一个开始获取
将归还的连接对象添加到连接池的末尾
当获取连接数超过了配置的最大连接数时会发生异常
当连接对象使用完毕后,应立即归还,以便重新获取加以利用
1.6.3.2 Druid
由阿里巴巴提供
步骤:
导入 jar 包,druid-1.0.9.jar
定义配置文件:
编写 properties 文件
文件名是任意的,可以放在任意的目录下
加载配置文件
从数据库连接池工厂中获取连接池对象
数据库连接池工厂,DruidDataSourceFactory
获取连接池对象,createDataSource(Properties 对象)
获取连接对象,getConntion()
druid.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///0521am
username=root
password=1234
initialSize=3
maxActive=5
maxWait=3000