事务,mybatis
数据库事务:一件完整的事情, 要么全部成功,要么就全部失败
金典案例:转账
A给B转账:100
A:-100
B:+100
如何开启事务:
Start transaction;
之前的转账操作(如果在转账过程中出现异常:rollback)
Commit;
事务的特性(ACID):
原子性:要么全部成功 要么全部失败 不可以分割
一致性:事务前后,所有的状态都要保持一致
隔离性:一个事务最好不要受到其他事务的影响
持久性:将提交或者回滚的事务 存储到数据库中
不考虑隔离性:
脏读:读取到另一个事务中未提交的数据
不可重复读:在同一个事务中,两次查询结果不一样(update)
虚读(幻读):在同一个事务中,两次查询结果不一样(insert)
隔离级别:
1)read uncommitted : 读取尚未提交的数据 :哪个问题都不能解决
2)read committed:读取已经提交的数据 :可以解决脏读 ---- oracle默认的
3)repeatable read:重读读取:可以解决脏读 和 不可重复读 ---mysql默认的
4)serializable:串行化:可以解决 脏读 不可重复读 和 虚读---相当于锁表
查看数据库的隔离级别:
Select @@tx_isolation;
Mysql 默认的隔离级别:repeatable-read;
Oracle : read committed
设置mysql的隔离级别:set session transaction isolation level 设置事务隔离级别
框架:我们可以简单的理解成为一个半成品 它提供了一套解决方案
框架的好处:
框架封装了细节,提高了开发效率,减轻了开发难度。
mybatis框架:
mybatis是一个持久层框架,用java语言编写的。
封装了jdbc。使开发者只需要注意sql语句本身,不用去纠结jdbc的其他细节
使用了ORM思想: 对象关系映射
O:Object
R:Relational
M:Mapping
mybatis环境搭建:
1、创建maven工程
2、创建实体类和UserDao接口
3、创建mybatis的核心配置文件
SqlMapConfig.xml
4、创建对象映射文件:
UserDao.xml
注意:UserDao.xml 需要和UserDao接口 名字一样 并且 路径一样
环境搭建注意点:
1、UserDao.xml 和 UserDao.java 名字和路径需要保持一致
2、映射配置文件的的mapper标签中的 namespace的属性取值必须是dao接口的全限定名
3、映射配置文件的操作配置(select) ,id属性的取值必须是dao接口中的方法名
自定义mybatis:
1、分析出需要的对象
class Resources
class SqlSessionFactoryBuilder
interface SqlSessionFactory
interface SqlSession
事务,mybatis的更多相关文章
- spring IOC DI AOP MVC 事务, mybatis 源码解读
demo https://gitee.com/easybao/aop.git spring DI运行时序 AbstractApplicationContext类的 refresh()方法 1: pre ...
- mybatis源码分析(8)-----事务(mybatis管理、spring管理)
写在前面 接口:MyBatis的事务Transaction的接口有一下实现类 JdbcTransaction 由jdbc管理的事务(即利用Connection对象完成对事务的提交(commit()). ...
- MyBatis架构(转)
本文来自http://www.bubuko.com/infodetail-549184.html 如果不太熟悉MyBatis使用的请先参见MyBatis官方文档,这对理解其架构设计和源码分析有很大好处 ...
- MyBatis架构设计及源代码分析系列(一):MyBatis架构
如果不太熟悉MyBatis使用的请先参见MyBatis官方文档,这对理解其架构设计和源码分析有很大好处. 一.概述 MyBatis并不是一个完整的ORM框架,其官方首页是这么介绍自己 The MyBa ...
- 使用maven整合spring+springmvc+mybatis
使用maven整合spring+springmvc+mybatis 开发环境: 1. jdk1.8 2. eclipse4.7.0 (Oxygen) 3. mysql 5.7 在pom.xml文件中, ...
- 深入理解Mybatis技术与原理
目录 第1章 Mybatis简介 1.1 传统的JDBC编程 1.2 ORM模型 1.4 MyBatis 1.5 什么时候用MyBatis 第2章 MyBatis入门 2.2 MyBatis构成 2. ...
- MyBatis实战之配置
MyBatis最重要的配置也就两个,一个是mybatis-config.xml,又称MyBatis的全局配置,另一个就是XXXDao.xml或XXXMapper.xml映射配置. mybatis-co ...
- java-mybaits-009-mybatis-spring-使用,SqlSessionFactoryBean、事务
一.版本限制 参看地址:http://www.mybatis.org/spring/ 二.使用入门 2.1.pom <dependency> <groupId>org.myba ...
- 2017.2.9 深入浅出MyBatis技术原理与实践-第八章 MyBatis-Spring(二)-----配置文件详解
深入浅出MyBatis技术原理与实践-第八章 MyBatis-Spring(二) ------配置文件详解 8.2 MyBatis-Spring应用 8.2.1 概述 本文主要讲述通过注解配置MyBa ...
- spring-第N篇整合SSM,即Mybatis+Spring+Spring MVC
1.Mybatis的配置使用 1>Jar包:mybatis-3.4.5.jar.mysql-connector-6.0.2或者ojdbc6-11.2.0.4.jar. 2>编写conf.x ...
随机推荐
- LNMP平台搭建之一:nginx编译安装
参考博客:https://www.cnblogs.com/zhang-shijie/p/5294162.html jack.zhang 一.环境说明 系统环境:centos6.5 [root@lo ...
- TP5新增模块
tp5模块自动生成 1build.php配置要生成的目录 <?php// +----------------------------------------------------------- ...
- 从Redis到Codis移植实践
一. 背景 随着业务的发展,线上Redis的数据越来越多,所以必须考虑扩容的事情了.对于redis的扩容,目前可选的方案有三种:1.client自己做sharding,一般是按key的hash值 ...
- django signals 信号
django signals 信号 配置方式 app下的 __init__.py default_app_config="web.apps.WebConfig" #初始化app配置 ...
- 微信网页授权获取用户openid及用户信息
$code = $_GET["code"];//获取code $appid=“xxxx”;//公众号appid $APPSECRET="xxx";//公众号ap ...
- pandas nan值处理
创建DataFrame样例数据 >>> import pandas as pd >>> import numpy as np >>> data = ...
- 《AI算法工程师手册》
本文转载自:http://www.huaxiaozhuan.com/ 这是一份机器学习算法和技能的学习手册,可以作为学习工作的参考,都看一遍应该能收获满满吧. 作者华校专,曾任阿里巴巴资深算法工程师, ...
- JDK源码——单例模式
JDK源码中单例模式的应用 1.Runtime类 Runtime类封装了Java运行时的环境.每一个java程序实际上都是启动了一个JVM进程,那么每个JVM进程都是对应这一个Runtime实例,此实 ...
- sql语句中select……as的用法
- java面试经常问到的计算机网络问题
GET 和 POST 的区别 GET请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:/test/demo_form.asp?name1=value1&name2=val ...