今天是JDBC的第三讲,今天的重点内容是数据库连接池。
一.数据库事务:
1.Mysql数据库中需要调用Connection对象的setAutoCommit(false)来取消自动提交sql语句的数据库事务,在所有的 SQL 语句都成功执行后,调用 commit()方法提交事务,在出现异常时,调用rollback()方法回滚事务
二.JDBC批处理
1.批量处理JDBC语句提高处理速度,比单独提交处理更有效率
2. addBatch(String)方法添加需要批量处理的SQL语句或参数;executeBatch()方法执行批量处理语句
三.Oracle LOB和Mysql BLOB
1.LOB或BLOB,是用来存储大量的二进制和文本数据的一种数据类型
2.向数据库中插入LOB数据,PreparedStatement对象需要调用setBinaryStream()方法
四.使用JDBC驱动程序处理元数据
1.调用Connection对象的getMetaData()方法获取DataBaseMetaData对象,DataBaseMetaData对象定义了许多方法获得数据源的各种信息
2.利用DataBaseMetaData对象获取指定数据库有哪些表:dbmd.getTables(catalog,SchemaPattern,tableNamePattern,types)——>catalog为数据库名称;schemaPattern为模式对象;tableNamePattern为表的名称
3.返回数据库的列使用DataBaseMetaData对象的getColumns()方法;
四.数据库连接池
1. 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏,在项目开发中,数据库连接池是必须用到的
2.两种常用的数据库连接池:DBCP连接池和C3P0连接池,DataSource称为数据源,包括连接池和连接池管理两部分,习惯称DataSource为连接池
3.DBCP连接池的使用需要导入Commons-dbcp.jar和Commons-pool.jar两个包,DBCP获取连接的实例:
BasicDataSourceFactory bdsf = new BasicDataSourceFactory();
DataSource ds = bdsf.CreateDataSource(PropertiesFile);
Connection conn = ds.getConnection();
4.C3P0连接池获取连接的实例:
CombooPooledDataSource data= new CombooPoolDataSource(xmlFileApps);
Connection conn = data.getConnection();
五.JNDI
1. 命名服务:计算机系统中的一个基本功能。命名服务是将名字和计算机中的一个对象相关联,通过名字可以方便地找到对应的对象。例如,计算机中的文件系统就包含了一个命名服务,你可以通过文件名找到对应的文件对象
2. 目录服务:目录服务是命名服务的延伸,目录服务不只保存对象和对象名的匹配,而且保存这个对象的各种属性,你可以对这些属性进行查询、修改、增加、删除操作
3. JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一些标准API接口,Java程序通过这些API可以访问命名目录服务。而命名目录服务将名称和对象联系起来,使得可以用名称访问对象。