java web开发(十)事务和连接池
2017-06-03 00:00
218 查看
摘要: java web
Connection关键方法:
setAutoCommit(boolean autoCommit):设置是否自动提交事务
commit():提交事务。
rollback():撤销事务。
数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用现有的数据库连接,而不是重新创建;数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,当应用程序访问数据库时并不会直接创建Connection,而是向连接池“申请”一个Connection,如果连接池中有空闲的Connection,则将其返回,否则创建新的Connection。
2.配置dbcpconfig.properties(核心连接数,最大连接数,最大空闲连接数)
3.BasicDataSourceFactory.createDataSource(Properties prop)创建DataSource数据源对象。
4.通过DataSource获取连接Connection对象。
注:dbcpconfig.properties需要放到src根目录下。
2.配置c3p0-config.xml(连接数,jsbcUrl,user,password,driverClass等)。
3.创建ComboPooledDataSource对象。
4.通过ComboPooledDataSource获取Connection对象。
注:c3p0-config.xml需要放在src根目录下。
下载:commons-dbutils
一 JDBC处理事务
一项事务时由一条或多条操作数据库的SQL语句组成的一个不可分割的工作单元(这点不同于批处理)。只有当事务中所有操作都正常完成,整个事务才能被提交到数据库中,如果有一项操作没有完成,则整个事务会被撤销。Connection关键方法:
setAutoCommit(boolean autoCommit):设置是否自动提交事务
commit():提交事务。
rollback():撤销事务。
Connection conn = DriverManager.getConnection(String url, String user, String password); conn.setAutoCommit(false);//关闭自动提交事务 try{ String sql1 = "INSERT INTO users(name, password) VALUES(?, ?)"; PreparedStatement statement1 = conn.prepareStatement(sql1); statement1.setString(1, "cary"); statement1.setString(2, "123456"); statement1.executeUpdate(); PreparedStatement statement2 = conn.prepareStatement(sql1); statement2.setString(1, "wang"); statement2.setString(2, "123456"); statement2.executeUpdate(); conn.commit(); } catch (Exception e){ conn.rollback(); }
二 数据库连接池
JDBC每次创建和断开Connection对象都会消耗一定时间和IO资源,因为java程序与数据库建立连接时,数据库端要验证用户名和密码,为连接分配资源,并把代表Connection对象加载到内存中。如果有大量的并发访问时,频繁的创建,断开数据库连接会影响数据库的访问效率,甚至导致数据库崩溃。数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用现有的数据库连接,而不是重新创建;数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,当应用程序访问数据库时并不会直接创建Connection,而是向连接池“申请”一个Connection,如果连接池中有空闲的Connection,则将其返回,否则创建新的Connection。
1.DataSource接口
它负责与数据库建立连接,返回Connection对象;实现DataSource接口的类称为数据源,它有连个常用实现:DBCP数据源和C3P0数据源。2.DBCP数据源
1.jar包:commons-dbcp.jar和common-pool.jar;核心类:BasicDataSourceFactory和BasicDataSource。2.配置dbcpconfig.properties(核心连接数,最大连接数,最大空闲连接数)
3.BasicDataSourceFactory.createDataSource(Properties prop)创建DataSource数据源对象。
4.通过DataSource获取连接Connection对象。
注:dbcpconfig.properties需要放到src根目录下。
3.C3P0数据源
1.jar包:c3p0-x.x.x.x.ja;核心类:ComboPooledDataSource。2.配置c3p0-config.xml(连接数,jsbcUrl,user,password,driverClass等)。
3.创建ComboPooledDataSource对象。
4.通过ComboPooledDataSource获取Connection对象。
注:c3p0-config.xml需要放在src根目录下。
三 DBUtils工具
为了简化JDBC使用,Apache组织提供了一个工具类库commons-dbutils,它对JDBC进行简单封装,简化了JDBC的编码工作量。下载:commons-dbutils
相关文章推荐
- JAVAWEB开发之事务详解(mysql与JDBC下使用方法、事务的特性、锁机制)和连接池的详细使用(dbcp以c3p0)
- JavaWeb14-事务,连接池(Java正在的全栈开发)
- JAVA WEB - JDBC事务开发
- javaweb开发过程中小工具系列之支持事务的JdbcUtils
- JAVAWEB开发之Tomcat内置连接池的配置和使用、DbUtils的使用详解和案例、以及元数据详解
- 【JavaWeb-10】事务、事务特征、隔离级别、连接池、DBCP、C3P0、利用tomcat管理数据源
- JavaWeb开发知识总结(内省,MVC,事务)
- javaweb-事务和连接池
- Java Web项目开发案例精粹-1-企业日常事务管理系统-源代码
- 用DB2的Java存储过程结合Tomcat连接池开发Web项目
- JavaWebStudio开发文档网站及开发论坛
- 关于为什么学习JAVA WEB开发
- Java Web开发构想(5) -- 7.O/R; 8.总结
- 用SavePoint实现事务处理(转自中国java开发论坛)
- JavaServer Faces 技术使Web应用程序开发变得更容易
- 昨日关注:在web开发中的三个层次使用事务
- web开发中如何打开客户端(pc机上)的串口(注:java)
- Java Web开发构想(3) -- 可配置、可编程、可热部署、脚本逻辑 vs XML Tag逻辑
- Java Web开发构想(2) -- 3.页面资源, 4.页面模板层
- 使用 JavaServer Pages 技术开发多语言 Web 应用程序