JDBC事务,连接池概念,c3p0,Driud

JDBC事务控制

1.什么是事务:一个包含多个步骤或者业务操作。如果这个业务或者多个步骤被 事务管理,则这多个步骤要么同时成功,要么回滚(多个步骤同时执行失败),这多个步骤是一个整体,不可分割

2.操作

​ 开启事务: start transaction

​ 提示事务: commit

​ 回滚事务: rollback

3.在jdbc中Connection对象来管理事务

开启事务:setAutoCommit(boolean autoCommit);执行该方法里面传入false值,手动开启事务。在所有sql语句执行之前开启事务。

提交事务:commit();当所有的sql语句执行完毕提交事务

回滚事务:rollback();当事务中发生异常时回滚事务,回滚事务放在catch语句

连接池

1.什么是连接池:其实就是一个容器,在这个容器当中存放多个连接对象。

当系统开始运行时,可以让系统提前创建多个连接对象,放到容器中(连接池中),当客户端需要连接对象时,可以从连接池中申请一个连接,去访问数据库,当该连接使用完毕时,不再释放掉,归还给系统而是把这个连接对象归还给这个连接池

好处:

1.可以大大节省系统开销,

2.可以提高访问的速度

3.实现操作

javax.sql连接池

JNDI ----> Java Naming and Directory Interface Java 命名和目录接口

是JavaEE规范中的重要规范之一。是EJB相关的一些知识

使用JNDI降低程序和数据库的耦合度,使你的程序更加方便配置和维护以及部署

DataSource接口 它里面并不提供具体的实现,而是由驱动程序供应商(数据库厂商)提供

1.c3p0:()它是数据库连接池的一套技术

2.druid:它也是一套数据库连接池的技术,由阿里巴巴提供的。

4.C3P0 : 数据库连接池技术

步骤:

1.去官网下载两个jar包

分别是c3p0 和 mchange-commons

植入 工程的classpath类路径下,不要忘记导入mysql驱动jar包 mysql-connector-java -jar

定义配置文件:

​ 文件的类型:c3p0.properties或者c3p0-config.xml

​ 路径:放到classpath类路径下 对于工程来说直接放到src下面就可以了

​ 获取DataSource对象 : 数据库连接池对象 通过实例化combopooledDataSource来获取

​ 从连接池中获取连接。getConnection()

,创建配置文件

c3p0配置文件

<c3p0-config>

    <default-config>
    
       <property name="driverClass">com.mysql.jdbc.Driver</property>
       <property name="jdbcUrl">jdbc:mysql://localhost:3306/student?characterEncoding=utf8</property>
       <property name="user">数据库账号</property>
       <property name="password">数据库密码</property>
       <property name="maxPoolSize">最大量</property>
       <property name="minPoolSize">最小量</property>
       <property name="initialPoolSize">初始量</property>
       <property name="checkoutTimeout">最大等待时间</property>
   
    </default-config>
</c3p0-config>

//德鲁伊的配置文件
# 键值对形式  键和值用 = 连接
# 连接数据库的四大组件
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///student?characterEncoding=utf8
username=root
password=666666
#初始化池子的连接数量
itialSize=10
#最大池子连接数量
maxActive=50
#最长等待时间
maxWait=3000

c3p0和德鲁伊获取连接的方式
前提是配置文件和properties文件配置好

c3p0
DataSource POOL = new ComboPooledDataSource();
Connection connection = pool.getConnection();
德鲁伊的
Properties properties = new Properties();
		InputStream is = DruidDemo02.class.getClassLoader().getResourceAsStream("druid.properties");
		DataSource createDataSource = DruidDataSourceFactory.createDataSource(properties);
		Connection connection = createDataSource.getConnection();



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值