mysql事务

day28 JavaWEB阶段——JDBC笔记(mysql-5.1.37和mysql-8.0.15数据库驱动包,SQL 注入原因和解决方案,PreparedStatement 完成增、删、改、查)

戏子无情 提交于 2020-01-30 03:54:24
JDBC mysql-5.1.37和mysql-8.0.15数据库驱动包下载 ,如何导入IDEA往下看 今日源码 链接: https://pan.baidu.com/s/12ibAtAjbaRGFPuAcaA52Dg 提取码:n6ux 第1节 回顾 1.1 表连接 内连接: 隐式、显式 隐式: 没有 join,使用 where 显式: inner join…on 外连接: 左连接和右连接 左连接: left outer join … on 右连接: right outer join … on 1.2 子查询 三种情况: 单行单列:比较运算符:>、<、= 多行单列:使用 in 关键字 多行多列:放在 from 后面,做为一张表再次查询 1.3 备份与还原 备份:mysqldump -u 用户名 -p 密码 数据库 > 文件名 还原: 登录使用数据库 use 数据库 source 文件名 1.4 事务 事务四个特性 ACID:原子性、一致性、隔离性、持久性 在 mysql 中有三条语句: 开启事务:start transaction 提交事务:commit 回滚事务:rollback 设置事务回滚点:savepoint 名字 回到回滚点:rollback to 名字 第2节 学习目标 能够理解 JDBC 的概念 能够使用 DriverManager 类 能够使用 Connection

mysql的基本使用2019.12.23

坚强是说给别人听的谎言 提交于 2020-01-30 00:41:48
MYSQL linux安装mysql linux的mysql下载地址 下载安装 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum update yum install mysql-server 权限设置 chown mysql:mysql -R /var/lib/mysql 初始化mysql mysql --initialize 启动mysql systemctl start mysql 停止mysql systemctl stop mysql 查看mysql运行状态 systemctl status mysql 验证mysql安装 mysqladmin --version 查看mysql的所有的数据库 show databases; 连接mysql mysql -u root -p 卸载mysql 安装前检测系统是否自带mysql rpm -qa | grep mysql 普通卸载删除mysql rpm -e mysql 强力卸载删除,如果使用上面命令删除提示依赖其他文件,则使用这个命令对其强行删除 rpm -e --nodeps mysql 默认root用户密码为空,设置mysql密码

Spring注解方式管理事务以及事务传播行为Propagation(视频笔记23)

大憨熊 提交于 2020-01-29 12:19:05
使用@Transactional注解声明Bean底下所有业务方法需要事务管理。 1.默认一个业务方法开启和结束事务,什么时候提交,什么时候回滚呢? Spring容器默认情况下对于运行期异常(unchecked Exception)会进行事务回滚,如果是用户违例(checked Exception),事务不会回滚。 运行期违例:throw new RuntimeException("XXX");运行期违例不需要使用try/catch捕捉,编译可以通过 用户违例,throw new Exception("XXX");必须使用try/catch捕捉,否则编译不能通过。 也可以修改这种行为,在业务方法上加上@Transactional(rollbackFor=Exception.class),则cheked Exception也会回滚。 如果@Transactional(noRollbackFor=RuntimeException.class),则运行期例外也不会回滚。 2.有些业务方法不需要业务管理,如获取数据的。开启事务会对性能有影响。所以使用 @Transactional(propagation=Propagation.NOT_SUPPORTED) propagation属性指定事务的传播行为。则Spring容器在该业务方法前不会开启事务。 事务的传播属性 : (1

MySQL事务处理特性和隔离级别

喜欢而已 提交于 2020-01-29 05:33:26
一.事务的特性 1.原子性(Atomicity):原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 2.一致性(Consistency):在一个事务中,事务前后数据的完整性必须保持一致,可以想象银行转账、火车购票。 3.隔离性(Isolation):多个事务,事务的隔离性是指多个用户并发访问数据库时, 一个用户的事务不能被其它用户的事务所干扰,多个并发事务之间数据要相互隔离。 4.持久性(Durability):持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。 二.事务的隔离级别 上面介绍了3种事务并发问题!现在介绍一下数据库提供的解决方案! 1.read uncommitted : 读取尚未提交的数据 :这个最低级,但是效率肯定最高,但是哪一个问题都不能解决。 2.read committed:读取已经提交的数据 :可以解决脏读 。 3.repeatable read:重读读取:可以解决脏读 和 不可重复读 。 4.serializable:串行化:可以解决脏读不可重复读和虚读,效率最差,相当于锁表,开发中一般不用。 上面的“2”是oracle数据库默认设置,“3”是mysql数据库默认的设置。 总结一下 事务隔离级别的性能: read uncommitted>read

@Transactional注解

喜欢而已 提交于 2020-01-29 05:09:05
@Transactional注解 一.事物传播行为介绍: @Transactional(propagation=Propagation.REQUIRED) :如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)   @Transactional(propagation=Propagation.NOT_SUPPORTED) :容器不为这个方法开启事务   @Transactional(propagation=Propagation.REQUIRES_NEW) :不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务   @Transactional(propagation=Propagation.MANDATORY) :必须在一个已有的事务中执行,否则抛出异常   @Transactional(propagation=Propagation.NEVER) :必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反)   @Transactional(propagation=Propagation.SUPPORTS) :如果其他bean调用这个方法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务. 二.事物超时设置: @Transactional(timeout=30) /

Spring 事务管理的使用

一曲冷凌霜 提交于 2020-01-28 22:11:59
Spring提供了2种事务管理 编程式的 声明式的(重点):包括xml方式、注解方式(推荐) 基于转账的demo dao层 新建包com.chy.dao,包下新建接口AccountDao、实现类AccountDaoImpl: public interface AccountDao { //查询用户账户上的余额 public double queryMoney(int id); //减少用户账户上的余额 public void reduceMoney(int id, double amount); //增加用户账户上的余额 public void addMoney(int id, double amount); } @Repository public class AccountDaoImpl extends JdbcDaoSupport implements AccountDao { @Override public double queryMoney(int id) { String sql = "select money from account_tb where id=?"; JdbcTemplate jdbcTemplate = super.getJdbcTemplate(); double money = jdbcTemplate.queryForObject(sql,

mysql 的事务

£可爱£侵袭症+ 提交于 2020-01-28 21:04:19
mysql 的事务管理 一、事务的基础介绍 概念: 事务Transactions:一组原子性的SQL语句,或一个独立工作单元 事务日志:记录事务信息,实现undo,redo等故障恢复功能 事务的ACID特性 A:atomicity原子性;整个事务中的所有操作要么全部成功执行,要么全部 失败后回滚 C:consistency一致性;数据库总是从一个一致性状态转换为另一个一致性 状态 I:Isolation隔离性;一个事务所做出的操作在提交之前,是不能为其它事务 所见;隔离有多种隔离级别,实现并发 D:durability持久性;一旦事务提交,其所做的修改会永久保存于数据库中 二、事务的管理 启动事务: BEGIN BEGIN WORK START TRANSACTION 结束事务: COMMIT:提交 ROLLBACK: 回滚 注意:只有事务型存储引擎中的DML语句方能支持此类操作 自动提交:set autocommit={1|0} 默认为1,为0时设为非自动提交 建议:显式请求和提交事务,而不要使用“自动提交”功能 事务支持保存点:savepoint 类似快照的作用,但是事务一提交就失效了 设置事务保存点 SAVEPOINT identifier MariaDB [ hellodb ] > savepoint b5 ; Query OK , 0 rows affected ( 0

mysql的锁

扶醉桌前 提交于 2020-01-28 19:16:22
mysql的锁 一、锁的分类: 锁粒度: 表级锁 (mysam) 行级锁 (innodb) 用途: 读锁:共享锁,只读不可写(包括当前事务,当前会话中的其他表不可以更新、) ,多个读互不阻塞 写锁:独占锁,排它锁,写锁会阻塞其它事务(不包括当前事务)的读和它锁 实现 : 存储引擎:自行实现其锁策略和锁粒度 服务器级:实现了锁,表级锁,用户可显式 请求分类: 隐式锁:由存储引擎自动施加锁 显式锁:用户手动请求 二、锁的策略 ​ 在锁粒度及数据安全性寻求的平衡机制 三、锁的使用示例 3.1 显式使用锁 3.1.1 表锁: 加锁 LOCK TABLES tbl_name [[AS] alias] lock_type [, tbl_name [[AS] alias] lock_type] … lock_type: READ , WRITE Database changed MariaDB [ hellodb ] > lock table students read ; Query OK , 0 rows affected ( 0.00 sec ) MariaDB [ hellodb ] > grant all privileges on hellodb . * to 'a' @' 192.168 . % ' identified by ' a '; ERROR 1100 (HY000):

hibernate整理

泪湿孤枕 提交于 2020-01-28 17:19:24
国外框架项目地址:http://websystique.com/springmvc/spring-mvc-4-angularjs-example/Angularjs文本输入框用ng-moduel,其他的用{{ }}放行用.*?Angularjs插件地址http://www.cnblogs.com/pilixiami/p/5634405.htmlUI班的教程:http://pan.baidu.com/share/link?shareid=4146906997&uk=866705889非严格读写是并发的概念Spring不支持多线程Flush()强制要求缓存与数据库一致Eache表连接,lazy子查询ORM: 编写程序时,以面向对象的方式处理数据 保存数据时是以关系型数据库的方式存储的Hibernate的数据持久化: New实例化对象时默认是瞬时的 Jdbc连接数据库时,持久化数据 将数据存入硬盘单向关联关系: 一个类单方向包含另一个类为属性,模拟数据库外键mysql数据库附加:String driver=com.mysql.jdbc.DriverString url=jdbc:mysql://localhost:3306/demohibernate注入: 实体类(1)这个表示一个实体类,Table表示对应数据库中的表名。@Entity@Table(name="t_emp")(2

MySQL 事务

时间秒杀一切 提交于 2020-01-28 16:05:34
银行引用是事务的一个经典例子:假如银行有两张表,一张支票表,一张储蓄表,现在需要从Jones用户的支票账户转移200¥ 至储蓄账户,那么至少需要三步: 1. 检查Jones的支票账户余额是否大于200¥ 2. Jones的支票账户-200¥ 3. Jones的储蓄账户+200¥ 上述三步可组成一个事务,当2、3步故障时,之前执行的操作会自动回滚,保证数据的一致性。 一、MySQL事务 MySQL事务是一组SQL语句或一个独立运行的工作单元并且满足ACID测试。 ACID测试: A.atomicity,原子性,一个事务必须作为不可分割的最小单元,事务中的语句要么都执行成功,要么都执行失败。 C.consistency,一致性,数据库总是从一个一致性状态到另一个一致性状态(数据库的结果是一致的,所有事务中SQL语句共同修改后的结果)不可能因为系统奔溃出现上述支票表-200¥而储蓄表未+200¥,未提交的事务并不会保存至数据库中。 I. isolation ,隔离性,当前事务操作过程对于另一个线程事务的可见度,由隔离级别决定。 D. durability , 持久性 , 所有事务提交后都永久存放于数据库中。 隔离级别: 1. READ UNCOMMITTED (读未提交) 2. READ COMMITTED(读提交) 3. REPEATEABLE READ(可重复读) 4.