连接池

2023-11-20


总结:1.连接池:java对外提供了连接的接口,连接池的存在就省去了每次创建和释放连接。
2.连接池的连接条件:1.将commons-pool-1.5.6.jar的jar包引进java项目下的lib文件夹
3.用连接池对象代替dao'层的Connection对象;
4.在tools工具包里创建MyDBUtils工具文件和JDNCUtils一样
QueryRunner qr=new QueryRunner(MyDBUtils.getDatasource());用MyDBUtils.getDatasource()代替了Connection
String sql="select * from user where name=?";
Object[] obj={"小红"};
int row=qr.update(sql,obj);
使用连接池也不需要释放
5.什么是事务:一件事情由n个单元组成,要么这n个丹玉一起成功要么这n个单元一起失败,这n个单元一起组成的事情就叫事务
6.一条sql语句就是一个事务,默认开启事务并提交事务
7.Mysql的事务:1.开启事务:start transaction()运行的sql会先存在内存中,所以没有改变数据库,所以说,rollback回滚以后能回复,因为没有改变数据库,需要commit提交才会把sql 语句执行后的结果写进数据库里
commit:是提交事务,将事务开启到事务提交这一块的sql会真正的提交到数据库,并对数据库进行修改
事务回滚:rollback:从事务开启到事务回滚,这一块所有的sql都没有效果,
事务开启后,只是把sql语句的运行和运行结果存储在内存中并没有作用在数据库上所以可以回滚后恢复原来的样子
8.JDBC事务操作:1.executeypdate()和executequery都是事务自动提交了,每一次执行都会提交
9.开启事务:conn.setAutoComnmit(false)(默认的是true是自动提交,需要改成false才会自动提交)
10.事务提交:conn.commit; 事务回滚:conn.rollback;
11.控制事务的Connection必须是同一个Connection因为需要包装控制的是同一个事务
12.事务的特性和隔离级别:原子性:指事务是一个不可分离的整体要么都执行要么都不执行
13.一致性:一个事务中,事务的前后数据的完整性必须保持一致
14.隔离性:指多个事务,指多个用户一起访问时
15.持久性:是指一但事务提交那么对数据库的影响是永久的,即使数据库发生了故障。
16.账号的转入转出:1.jsp文件:<body> <form action="/Servlet" method="post">
转出账户:<input type="text" name="out">
转入账户:<input type="text" name="in">
转出金额:<input type="text" name="money">
提交:<input type="submit" value="确认"> </form> </body>
Dao层:转出:public void outmoney(Connection conn,String out,double money){
QueryRunner qr=new QueryRunner();
String sql="update conn set money=money-? where uname=?";
qr.update(conn,sql,out,money);
转入:public void inmoney(Connection conn,String in,double money){
String sql="update conn set money=money+? where uname=?";
qr.update(conn,sql,in,money);
Service层:public void trans(String out,String in,double money){
Connection conn=MyDBUtils.getconn();
try{conn.setAutoComit(false); dao.outmoney(conn,out,money); dao.inmoney(conn,in,money)
conn.comit(); }catch{conn.rollback};
Servlet层:request.setcharacterEncoding("UTF-8");
1.获取数据: String out=request.getParameter("out"); String in=request.getParameter("in")
String moneyy=request.getParameter("money"); double money=Double.parseDouble(moneyy);
servicr.tansl(out,in,money);
response.setContentType("text/html;setchar=UTF-8");
response.getwriter().write("转账成功")


转载于:https://www.cnblogs.com/hankai2735/p/11598044.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

连接池 的相关文章

随机推荐

  • 高德地图实现聚合点功能实例

    在进地图API开发时 有时会出现海量数据展示 这里就不得不使用聚合点功能 减少页面初始化过程中加载过多数据而导致卡顿现象 这里通过高德地图API为例 通过简单实例 带大家了解下聚合点实现方法 一 引入相关资源
  • 网站架构探测&chrome插件用于信息收集

    文章目录 0x01 网站架构探测 云悉 潮汐指纹 0x02 chrome插件用于信息收集 添加插件的方法 官网添加方法 开发者模式添加 Wappalyzer 下载方法 功能 FOFA Pro view 下载方法 ModHeader 0x01
  • 博客搭建二:NexT主题相关设置beta

    安装NexT 在你的博客根目录 git clone https github com iissnan hexo theme next themes next 不同版本的NexT配置文件略有不同 本次使用的是hexo theme next 7
  • 多线程(九):JUC组件

    在来时juc组件前 我们先把上一章遗漏的部分给补上 synchronized 实现策略 锁升级 无锁 gt 偏向锁 gt 轻量级锁 gt 重量级锁 还有一个 锁消除 锁消除即删除不必要的加锁操作 JVM在运行时 对一些 在代码上要求同步 但
  • sort快速排序

    sort快速排序 使用sort必须要有相应的头文件 include
  • 中标麒麟系统把玩记录

    1 指令发送邮件 echo content mail vs this is title a a sh XXX XX com 其中 content代表发送的内容 thisistitle代表邮件主题 a sh为附件 2 开机运行脚本 在etc
  • 田忌赛马java代码算法,AcWing 1489. 田忌赛马——Java版代码

    import java io import java util public class 田忌赛马 public static void main String args throws IOException BufferedReader
  • Thrift快速入门

    文章目录 Thrift的安装 windows下安装 Linux下安装 Thrift的使用 编写IDL文件 命名空间 namespace 基本数据类型 类型定义 typedef 结构体类型 struct 枚举类型 enum 异常类型 exce
  • MybatisX简介

    MybatisX简介 前言 一 什么是MybatisX 二 如何使用 1 安装插件 2 创建一个mybatis项目或者于项目中引入mybatis依赖 3 快速生成示例 3 1 快速生成mapper方法 3 2 MybatisX Genera
  • 使用lattice包的bwplot函数绘制箱图比较多个模型在不同指标上的性能差异(R语言)

    使用lattice包的bwplot函数绘制箱图比较多个模型在不同指标上的性能差异 R语言 箱图是一种常用的数据可视化方法 用于表示一组数据的分布特征 包括中位数 四分位数 异常值等 在比较多个模型在多个指标上的性能差异时 箱图可以提供直观的
  • NCCL相关笔记

    本文仅代表个人观点 不保证正确性 一 NCCL简介 1 什么是NCCL NCCL是NVIDIA集合通信库 NVIDIA Collective Communications Library 的简称 是用于加速多GPU之间通信的库 能够实现集合
  • #css# 【四】如何使用hover,实现父对子的样式改变?

    css 如何使用hover 实现父对子的样式改变 思路及做法 鼠标移动到父盒子的时候 里面所有的子盒子的样式都发生变化的 只需要直接在hover后面加上空格 并且加上子盒子的类名 里面再写其他样式 父盒子的类名 hover 子盒子的类名 这
  • iOS系统网络抓包方法

    原文地址 http www cnblogs com ydhliphonedev archive 2011 10 27 2226935 html 在进行iOS开发过程中 经常会遇到各种各样的网络访问问题 以前苦于没有抓包工具 很多网络问题解决
  • 【python-opencv】硬币检测

    使用 python3 8 x opencv 硬币检测 问题描述 设计思路1 使用简单特征识别 具体操作 部分代码 设计思路2 模板匹配 源码 模板制作 完整代码 问题描述 使用图像处理技术 从照片中识别硬币的个数 并判断总价值 设计思路1
  • ESP32开发阶段启用 Secure Boot 与 Flash encryption

    Secure Boot 与 Flash encryption详情 请参考 https blog csdn net espressif article details 79362094 1 开发环境 AT版本 2 4 0 0 发布 IDF 与
  • git忽略文件地址

    git忽略文件地址 Objective C gitignore gitignore
  • String和StringBuffer的常见用法

    链接 https www nowcoder com questionTerminal fe6b651b66ae47d7acce78ffdd9a96c7 answerType 1 f discussion来源 牛客网 String的用法 ja
  • dubbo配置提供者和消费者

    1 找到对应的文件 提供者 消费者 参考dubbo官网 http dubbo apache org zh cn docs user quick start html
  • 【NLP】第 6 章 :微调预训练模型

    到目前为止 我们已经了解了如何使用包含预训练模型的huggingface API 来创建简单的应用程序 如果您可以从头开始并仅使用您自己的数据来训练您自己的模型 那不是很棒吗 如果您没有大量空闲时间或计算资源可供使用 那么使用迁移学习 是最
  • 连接池

    总结 1 连接池 java对外提供了连接的接口 连接池的存在就省去了每次创建和释放连接 2 连接池的连接条件 1 将commons pool 1 5 6 jar的jar包引进java项目下的lib文件夹 3 用连接池对象代替dao 层的Co