1.mysql
jdbc: 复习
是一种规范,规范sum公司制定,使用规范,又实现类数据库厂家,驱动
jdbc操作数据库步骤:
1.导入驱动包 ,加载驱动
2.创建连接对象。需要数据库信息 driver url username pwd
配置文件存储数据:
a.文件后缀名 .properties
b.文件后缀名 .xml //使用Dbutils框架进行数据库连接操作
3.创建平台对象。
4.平台对象执行sql语句
5.获取结果,对结果进行处理
6.资源释放
2.整合原生的JDBC 操作数据库的能力
整合3步。
3.提高能力.
JDBC存在什么问题?
JDBC操作数据库是没有问题,但是应用到项目开发问题有.
连接通道不能满足大量用户的并发操作。
解决方案:
连接池概念:管理连接通道
常用的连接池:c3p0
如: spring
使用c3p0连接池步骤:
1. 导入包
2. 配置信息,url username pwd driver.
3. 创建数据源 combopooldatasource
4. 创建连接通道.
4.main
junit 单元测试要求:
1. 方法必须是公共的,public
2. 方法返回值 void
3. 方法名 @Test
5.dbutil框架
使用步骤:
1. 导入包
2. 创建对象创建平台对象 queryrunner
3. 执行sql**
案例:
1。增加数据
2。修改数据
3。删除数据 update(sql,params[])
查询数据 query(sql,handler)
resultsethandler 接口 功能对查询结果的结果进行封装
实现类总个9个:
beanhandler 对查询结果的第一条封装成对应的 javabean
beanlisthandler 对查询结果的每一行封装,存到 list集合
maphandler 对查询结果的第一行封装成map集合
maplisthandler 对查询的结果的每一行封装 map<健,值>
{cid:c001,cname:电视},每一个map集合存到list集合中
scalarhandler 对聚合函数进行封装 sum() count() max() min() avg()
6.c3p0配置xml文件
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<c3p0-config>
<!-- 默认配置,如果没有指定则使用这个配置 -->
<default-config>
<!-- 基本配置必须的 -->
<property name=\"driverClass\">com.mysql.jdbc.Driver</property>//驱动
<property name=\"jdbcUrl\">jdbc:mysql://127.0.0.1:3306/user</property>//url
<property name=\"user\">root</property>//用户名
<property name=\"password\">mysql123</property>//密码
<!-- 数据库连接池一次性向数据库要多少个连接对象 -->
<property name=\"acquireIncrement\">20</property>
<!-- 初始化连接数 -->
<property name=\"initialPoolSize\">10</property>
<!-- 最小连接数 -->
<property name=\"minPoolSize\">5</property>
<!--连接池中保留的最大连接数。Default: 15 -->
<property name=\"maxPoolSize\">30</property>
<!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements 属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default:0 -->
<property name=\"maxStatements\">0</property>
<!--maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数。Default: 0 -->
<property name=\"maxStatementsPerConnection\">0</property>
<!--c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能 通过多线程实现多个操作同时被执行。Default:3 -->
<property name=\"numHelperThreads\">3</property>
<!--用户修改系统配置参数执行前最多等待300秒。Default: 300 -->
<property name=\"propertyCycle\">3</property>
<!-- 获取连接超时设置 默认是一直等待单位毫秒 -->
<property name=\"checkoutTimeout\">1000</property>
<!--每多少秒检查所有连接池中的空闲连接。Default: 0 -->
<property name=\"idleConnectionTestPeriod\">3</property>
<!--最大空闲时间,多少秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name=\"maxIdleTime\">10</property>
<!--配置连接的生存时间,超过这个时间的连接将由连接池自动断开丢弃掉。当然正在使用的连接不会马上断开,而是等待它close再断开。配置为0的时候则不会对连接的生存时间进行限制。 -->
<property name=\"maxIdleTimeExcessConnections\">5</property>
<!--两次连接中间隔时间,单位毫秒。Default: 1000 -->
<property name=\"acquireRetryDelay\">1000</property>
<!--c3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数那么属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试使用。Default: null -->
<property name=\"automaticTestTable\">Test</property>
<!-- 获取connnection时测试是否有效 -->
<property name=\"testConnectionOnCheckin\">true</property>
</default-config>
</c3p0-config>
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。


