mysql事务

mysql(2)

爷,独闯天下 提交于 2020-02-05 21:27:11
1、DQL查询数据 1.1、DQL (Data Query LANGUAGE : 数据查询语言) 所有的查询操作都用它 Select 简单的查询,复杂的查询它都能做~ 数据库中最核心的语言,最重要的语句 使用频率最高的语句 1.2、指定查询字段 SELECT * FROM student SELECT * FROM result -- 查询指定字段 SELECT ` studentNo ` , ` studentname ` FROM student -- 别名 给结果起一个名字 SELECT ` studentNo ` AS 学号 , ` studentname ` AS 姓名 FROM student -- 函数 Concat(a,b) SELECT CONCAT ( '姓名:' , studentname ) AS 新名字 FROM student 语法: SELECT 字段,... FROM 表 去重 作用:去除SELECT 查询出来的结果中重复的数据,重复的数据只显示一条 -- 去重 SELECT * FROM result SELECT ` studentno ` FROM student SELECT DISTINCT ` studentno ` FROM student 数据库的列 SELECT VERSION ( ) -- 查询系统版本 SELECT 90 - 2

记账本开发记录——第十八天(2020.2.5)

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-05 19:38:22
今天学习了一个名为 事务 的东西。这个东西对于我是陌生的。事务,即主要用于处理一些操作量大,复杂度高的操作。在上学期的一系列学习中,由于系主任只是简单粗暴的想让我们学会增删改查,这种涉及工程的东西也难怪我们没有接触。但说到底还是要做工程的。今天对于事务进行了一个基本的了解。 首先,什么是事务,按照官方理解 就是 一件事情有 n个组成单元 要不这n个组成单元同时成功 要不n个单元就同时失败, 就是将 n个组成单元放到一个事务中。其实照自己的理解来说,就是将多个操作捆绑到一起,要成功就一起成功,要失败就一起失败。说到底是为了防止一些意外发生,比如一个转账操作,如果在执行完转出后发生了异常,转入操作无法执行了,那这个客户的钱不就没了?这上哪说理去。事物就是为了防止这种情况的发生。我们一般使用的数据库是mysql,mysql的事务如下: 默认的事务:一条 sql语句就是一个事务 默认就开启事务并提交事务 手动事务: 1) 显示的开启一个事务: start transaction 2) 事务提交: commit代表从开启事务到事务提交 中间的所有的sql都认为有效 真正的更新数据库 3)事务的回滚:rollback 代表事务的回滚 从开启事务到事务回滚 中间的所有的 sql操作都认为无效数据库没有被更新 在了解了这个基础上,我们可以分别使用JDBC和DBUtils做个demo来测试。 1

数据库存储引擎

假如想象 提交于 2020-02-05 07:28:21
mysql存储引擎概述 存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方 法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型) SQL 解析器、SQL 优化器、缓冲池、存储引擎等组件在每个数据库中都存在,但不是每 个数据库都有这么多存储引擎。MySQL 的插件式存储引擎可以让存储引擎层的开发人员设 计他们希望的存储层,例如,有的应用需要满足事务的要求,有的应用则不需要对事务有这 么强的要求 ;有的希望数据能持久存储,有的只希望放在内存中,临时并快速地提供对数据 的查询。 一种类型表明的是一种存储方式 存储引擎:就是表的类型,不同的类型就会对应不同的处理机制去处理他 事务:就是要么同时成功,要么同时不成功 mysql支持哪些存储引擎? mysql5.6支持的存储引擎包括InnoDB、MyISAM、MEMORY、CSV、BLACKHOLE、FEDERATED、MRG_MYISAM、ARCHIVE、PERFORMANCE_SCHEMA。 其中NDB和InnoDB提供事务安全表,其他存储引擎都是非事务安全表。 各种存储引擎的特性 InnoDB MySql 5.6 版本默认的存储引擎。InnoDB 是一个事务安全的存储引擎,它具备提交、回滚以及崩溃恢复的功能以保护用户数据。InnoDB

数据库 -- 存储引擎介绍

孤人 提交于 2020-02-05 06:13:48
mysql引擎介绍 1,概念   mysql5.6支持的存储引擎包括InnoDB、MyISAM、MEMORY、CSV、BLACKHOLE、FEDERATED、MRG_MYISAM、ARCHIVE、PERFORMANCE_SCHEMA。其中NDB和InnoDB提供事务安全表,其他存储引擎都是非事务安全表。 mysql支持的存储引擎 MySQL服务器采用了多层设计和独立模块,插件式存储引擎体系结构,允许将存储引擎加载到正在运新的MySQL服务器中,图中的Pluggable Storage Engines部分。采用MySQL服务器体系结构,由于在存储级别上(也就是Pluggable Storage Engines)提供了一致和简单的应用模型和API,应用程序编程人员和DBA可不再考虑所有的底层实施细节。因此,尽管不同的存储引擎具有不同的能力,应用程序是与之分离的。存储引擎就司职与文件系统打交道了。 并发性:某些应用程序比其他应用程序具有很多的颗粒级锁定要求(如行级锁定)。 事务支持:并非所有的应用程序都需要事务,但对的确需要事务的应用程序来说,有着定义良好的需求,如ACID兼容等。 引用完整性:通过DDL定义的外键,服务器需要强制保持关联数据库的引用完整性。 物理存储:它包括各种各样的事项,从表和索引的总的页大小,到存储数据所需的格式,到物理磁盘。 索引支持

spring 面试问题

℡╲_俬逩灬. 提交于 2020-02-04 18:26:17
spring bean 的作用域 1.singleton:唯一bean实例,Spring中的bean默认都是单例的。 2.prototype:每次请求都会创建一个新的bean实例。 3.request:每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP request内有效。 4.session:每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP session内有效。 spring mvc 的工作流程 一个请求→DispatcherServlet根据请求信息调用HandlerMapping→转发到固定handler上即Controller→处理完业务后返回ModelAndView对象→DispatcherServlet把返回的Model传给View 最后返回浏览器。 spring 当中的设计模式 单例 工厂(BeanFactory) 代理 springaop(面向切面代理接口)适配器模式(springmv分配hanglermapping) 装饰模式 给类添加额外职责(Decorator) 观察者模式(spring驱动事件) 策略模式(访问resource接口 不同的 resource) 模板模式 spring 控制事务的几种方式 1编程式事务管理对基于 POJO 的应用来说是唯一选择。我们需要在代码中调用beginTransaction()

理解事务

淺唱寂寞╮ 提交于 2020-02-04 11:09:37
文章目录 事务的介绍 事务的特性`ACID` 事务的类别 事务的管理 @Transactional 注解 事务的传播行为 事务隔离级别有哪些?MySQL的默认隔离级别是? 事务是什么时候提交的? 嵌套事务(子事务) 事务的介绍 事务是逻辑上的一组操作,要么都执行,要么都不执行。 简单来说事务的目的就是为了 保证数据的一致性 。在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。事务的主要职责是管理我们对数据库的 insert , update , delete 操作,保证SQL要么全部执行,要么全部不执行。 事务的特性 ACID 原子性( A tomicity) 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 一致性( C onsistency) 执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的; 隔离性( I solation) 数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。(事务隔离的级别在下文可以继续看到详细内容) 持久性( D urability) 事务处理结束后,对数据的修改就是永久的

事务处理

試著忘記壹切 提交于 2020-02-04 09:50:46
事务处理 一、事务四特性(ACID) 1、原子性:一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。也就是说如果事务中的某一步出错,所有对数据进行的 2、一致性:事务必须是使数据库从一个状态变到另一个状态。总的状态要一致。 3、隔离性:一个事务的执行不会被其他事务所干扰。 4、持久性:一个事务一旦提交,它对数据改动将是持久性的,其他操作和故障不应使其数据丢失。 二、mysql数据库事务 1、事务的语句 使用START TRANSACTION或者BEGIN来开启一个新事务。 使用COMMIT来提交一个事务,使其操作产生持久性的影响。 使用ROOLBACK来撤回这次事务,取消其产生的影响。 使用SET autocommit来设置是否自动提交事务。 2、默认事务 mysql默认使用autocommit,这意味着每一个语句都是原子性的,其效果相当于把该语句环绕一个begin和commit语句的事务,并且不能使用rollback语句。当该语句执行过程中出现错误时,该语句则被ROOLBACK。 3、事务隔离级别 读未提交:为事务之间提供最小的保护,它使用了特定的锁定策略,允许一个事务在不等待另一个事务结束的情况下继续执行。这种性能的提升降低了一致性,导致了脏读(读取其他事务未提交的数据)等出现。一般在只执行查询操作的情况下使用。 读已提交:采用某种锁定策略

Mysql得隔离级别

只愿长相守 提交于 2020-02-04 04:12:27
一、首先什么是事务? 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。 事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消撤消之前到事务开始时的所以操作。 二、事务的 ACID 事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )。这四个特性简称为 ACID 特性。 1 、原子性。事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做 2 、一致性。事 务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统 运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是 不一致的状态。 3 、隔离性。一个事务的执行不能其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。 4 、持续性。也称永久性,指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的

Transactional详细信息

孤者浪人 提交于 2020-02-03 21:21:50
Transactional能入的值 isolation:事务的隔离级别 propagation:事务的传播行为 noRollbackFor:哪些异常事务可以不回滚(输入类型) noRollbackForClassName:哪些异常事务可以不回滚(输入全类名) rollbackFor:哪些异常事务需要回滚(输入类型) rollbackForClassName:哪些异常事务需要回滚(输入全类名) readOnly:设置事务只读 (默认为false)这个属性只能够使用在查询sql中。 timeout:事务超出指定时间后进行回滚(以秒为单位) 此文章就展示项目架构了项目架构请看 此文章 案例 timeout 案例 错误提示 readOnly 案例 错误提示 PreparedStatementCallback; SQL [update balance set price = price - ? where name= ?]; Connection is read-only. Queries leading to data modification are not allowed; nested exception is java.sql.SQLException: Connection is read-only. Queries leading to data modification

MySQL数据库详解(二)

半腔热情 提交于 2020-02-03 03:54:34
紧跟上一篇文章,我们继续学习MySQL数据库。 数据库意义:数据存储,数据管理 DML语言:数据操作语言 Insert update delete 1.添加Insert 语法: insert into 表名([字段名1,字段2,字段3])values('值1'),('值2'),('值3',....) 举例: -- 插入语句(添加) -- insert into 表名([字段名1,字段2,字段3])values('值1'),('值2'), INSERT INTO ` grade ` ( ` gradename ` ) VALUES ( '大四' ) -- 由于主键自增我们可以省略 (如果不写表的字段,他就会一一匹配) INSERT INTO ` grade ` VALUES ( '大三' ) -- 插入多个字段 INSERT INTO ` grade ` ( ` gradename ` ) VALUES ( '大二' ) , ( '大一' ) INSERT INTO ` student ` ( ` name ` , ` pwd ` , ` sex ` ) VALUES ( '张三' , 'aaaaaa' , '男' ) 注意: 1. 字段和字段之间使用 英文逗号 隔开 2. 字段是可以省略的,但是后面的值必须要要一一对应,不能少 3. 可以同时插入多条数据,VALUES 后面的值