JDBC和数据库的连接池

采用JDBC访问数据库的基本步骤

1载入JDBC驱动程序
2定义请求的url地址
3建立连接
4创建statement对象
5执行查询或者更新
6结果处理
7关闭连接

JDBC API的总结

1、注册数据库驱动:驱动程序实现了JDBC 定义的API接口和数据库服务器之间的交互功能
2 数据库的url
在这里插入图片描述

单元测试的补充

单元测试:是一种不用创建类,不用main方法,也不用创建实例就可以使用的方法。
加@Test 注解,通过junit框架调用该方法。程序的底部会创建该方法所在类的实例,并通过实例调用该方法

满足单元测试的条件:1方法必须是公共的
2方法是非静态的
3方法是没有返回值的
4方法是没有参数的
5 方法所在的类或方法名不能用Test命名

如何使用C3P0连接池

1 导入数据库连接池的开发包
2 创建数据库连接池的对象
3 设置连接数据库的基本信息
三种方式:1)直接将参数通过pool.set方法设置给连接池
2)将连接的参数提取到properties文件中
这个文件必须放在src源码根目录下
文件名必须是C3p0.properties
3) 将连接的参数提取到xml文件中
文件必须放在src源码根目录下
文件名必须是C3p0-config.xml
4从连接池获取一个连接对象
5用完连接后,将连接返回给连接池
如果是自己创建的连接对象,这个连接对象在调用close方法时,直接将连接对象关闭
如果是从连接池中获取的连接对象,这个对象被连接池改变了,执行close方法时,是将连接返回到连接池中

什么是事务处理?

事务处理:在更新数据库时,默认情况下,这种修改是永久的写入到数据库的,但是这种默认行为可以通过编写程序来改变。如果更新的过程中出现错误,则进行数据库的回滚,将数据库还原到开始的值,如果更新完成,则将改变永远地提交给数据库。这种方式称为事物处理。

什么是事务,以及事务的特性

事务的概念:单个逻辑工作单元执行的一系列操作,要么全都执行,要么全都不执行
特性:1原子性:事务的操作要么都做,要么全都不做
2一致性:事务的执行结果必须是数据库从一个一致性的状态转换到另一个一致性的状态
3隔离性:事务的执行不能被其他事务干扰
4持久性:事务一旦提交,它对数据库的改变应该是永久的

并发事务的问题

三个读问题:1脏读:事务读取了其他事物未提交的数据
2不可重复读:事务对同一记录的2次读取的结果不同,因为其他事务对表进行了修改
3幻读:事务对同一张表的2次查询的结果不同,因为其他事务对表进行了修改(一般指增加了记录)
两个更新丢失问题:1。事务A在撤销时,将事务B的结果覆盖
2.事务A在提交时,将事务B的结果覆盖

四大隔离级别

1 SERIAZABLE
串行化:不会出现任何的并发问题,因为他对记录的访问是串行的,并非并发访问
2 REPEATABLE READ
可以处理脏读和不可重复读,但不能解决幻读,性能比SERIAZABLE好
3 READ COMMITTED
可以处理脏读,但是不能解决不可重复读和幻读,性能比REPEATABLE READ好
4 READ UNCOMMITTED
对数据不做任何处理,可能出现任何的并发问题,性能最好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值