DataSource连接池和Java简单操作事务

一、DataSource接口:
  • java为数据库连接池提供的公共接口各个厂商需要让自己的连接池实现这个接口
二、装饰者模式:
  • 介绍:装饰者模式,是 23种常用的面向对象软件的设计模式之一. 动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更加有弹性的替代方案。
  • 作用:改写已存在的类的某个方法或某些方法
  • 条件:1. 增强类和被增强类实现的是同一个接口
    1. 增强类里面要拿到被增强类的引用
  • 注意:如果知道父类的名称可以使用继承,但是你不知道,又要增强某个方法,可以使用装饰者模式
//接口
public interface House{
	//层数
    void floorNumber();
	//房子价值
    void houseValue();
}

//被增强类
public class MyHouse implements House {
	@Override
    public void floorNumber() {
        System.out.println("一共有三层楼");
    }

    @Override
    public void houseValue() {
        System.out.println("房子价值66万");
    }
}

//增强类
public class NewMyHouse implements  House{

	//被增强的引用
   private House house;
   
    public NewMyHouse(House house) {
        this.house= house;
    }

    @Override
    //不需要增强
    public void floorNumber() {
        house.floorNumber();
    }

    @Override
    //需要增强
    public void houseValue() {
         System.out.println("房子价值88万");
    }
}
三、使用第三方连接池
1、C3P0:
  • 介绍:开源免费的连接池,目前使用它的开源项目:spring、hibernate
  • 使用:1. 导入数据库驱动包和c3p0的jar包
    1. 添加配置文件c3p0-config.xml,放在src的目录下
    2. 获取数据源:DataSource ds = new ComboPoolDataSource();//会自动读取src目录下的c3p0-config.xml,所以不需要我们解析配置文件(配置文件名不能修改喔)
    3. 获取数据源后还是之前jdbc的操作获取Connection、statement和释放资源等操作。
<!--文件名:c3p0-config.xml-->
<c3p0-config>
	<default-config>
		<property name="driverClass">com.mysql.jdbc.Driver</property>
		<property name="jdbcUrl">jdbc:mysql://localhost:3306/day18_db</property>
		<property name="user">root</property>
		<property name="password">1234</property>
		<property name="initialPoolSize">5</property>
	</default-config>
</c3p0-config>**
2、Druid:
  • 介绍:阿里巴巴开发的号称为监控而生的数据库连接池,Druid是国内目前最好的数据库连接池。
  • 使用:1. 导入数据库驱动包和druid的jar包
    1. 添加配置文件druid.properties,放在src的目录下
# 文件名:druid.properties
url=jdbc:mysql:///数据库名
# 用户名
username=root
# 密码
password=123456
driverClassName=com.mysql.jdbc.Driver
        // 根据druid.properties创建配置文件对象
 	Properties properties = new Properties();
        // 关联druid.properties文件
	InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
	properties.load(is);
        // 创建DataSource
	DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
		//获取数据源后还是之前jdbc的操作获取Connection、statement和释放资源等操作。
		//......
四、JDBC事务的处理
  1. start transaction; 开启事务 --> connection.setAutoCommit(false) true -->自动提交打开 false -->自动提交关闭
  2. commit; 提交 --> connection.commit();//提交事务
  3. rollback; 回滚 --> connection.rollback();//回滚事务
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值