啥叫事物?
好多面试里会问到事物。
哦哟,啥叫事物哟……
还是老办法,先搞清楚为啥要有这个东西,没有这个东西会怎样?
和其他所有东西一样,简单徳没朋友。
假说我们要在数据库里解决这个功能:A跟B转账。
OK,无论怎样,转账流程应该是数据库里A钱少了,B钱多了,完事。但是排不排除,A钱少了,B钱还没多就中断滴情形?不排除。所以,把整...
分类:
数据库 时间:
2015-07-17 19:03:51
阅读次数:
156
JDBC事务控制事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。例如转账,一方多了,一方少了同时执行。mysql数据库默认事务是自动提交的,即一条SQL语句就是一个单独的事务,是自动提交的。Oracle数据库默认是事务不是自动提交的,没一句都需要手动提交事务,否则默认为...
分类:
数据库 时间:
2015-07-14 06:08:21
阅读次数:
210
线程安全问题可以用银行转账来解释 1 /** 2 * 传统的线程互斥技术 3 * @author LiTaiQing 4 */ 5 public class TraditionalThreadSynchronized { 6 7 public static void mai...
分类:
编程语言 时间:
2015-07-10 13:12:57
阅读次数:
146
假如现在 你向支付宝 转账,即一些数据信息,为了保证信息传送的保密性、真实性、完整性和不可否认性,需要对传送的信息进行数字加密和签名,其传送过程为:
1.首先你要确认是否是支付宝的数字证书,如果确认为支付宝,则对方真实可信,
2.你准备好要传送的数字信息(明文);
3.你 对数字信息进行哈希运算,得到一个信息摘要;
4.你 用自己的私钥对信息摘要进行加密得到 你 的数字签名,并将其附在数字信息上;
5.你 随机产生一个加密密钥,并用此密码对要发送的信息进行加密,形成密文;
6.你用 支付宝的公钥对刚才随机产...
分类:
其他好文 时间:
2015-07-09 09:50:26
阅读次数:
209
原文:http://python.jobbole.com/81666/在现实生活中,记录日志非常重要。银行转账时会有转账记录;飞机飞行过程中,会有黑盒子(飞行数据记录器)记录飞行过程中的一切。如果有出现什么问题,人们可以通过日志数据来搞清楚到底发生了什么。对于系统开发、调试以及运行,记录日志都是同样...
分类:
编程语言 时间:
2015-07-03 09:07:49
阅读次数:
169
一、什么是事务 事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml(数据操作语言,增删改,没有查询)语句要么全部成功,要么全部失败。 如:网上转账就是典型的要用事务来处理,用于保证数据的一致...
分类:
数据库 时间:
2015-07-02 17:58:46
阅读次数:
150
在说之前先普及一下线程是什么?
线程:说白了就是一个任务片段
进程:是一个具有独立功能的程序关于某个数据集合的一次运行活动,一个进程有一个或者多个线程
线程与进程的本质区别就是有么有数据共享空间,线程之间可以共享数据,进程不可以
下面进入主题:线程间的同步
由于现在业务流程增加,业务节点也增加,使用业务的人员也同时增加,这个时候就不可避免的出现并发问题,多个线程同时访问操...
分类:
编程语言 时间:
2015-07-02 10:09:02
阅读次数:
135
一、 事务的ACID
事务是保证数据库从一个一致性的状态永久地变成另外一个一致性状态的根本,其中,ACID是事务的基本特性。
A是Atomicity,原子性。一个事务往往涉及到许多的子操作,原子性则保证这些子操作要么都做,要么都不做,而不至于出现事务的部分操
作成功,而另外一部分操作没有成功。如果事务在执行的过程中发生错误,那么数据库将回滚到事务发生之前的状态。比如银行的转账服务...
分类:
其他好文 时间:
2015-06-30 16:27:38
阅读次数:
15378
当使用多个线程来访问同一个数据时,就容易出现线程安全的问题。例如,银行取钱。当我们去自动取款机取钱时,正好另一个人转账,即多个线程修改同一数据,这时就容易出现线程安全问题。
线程安全
/**
* 账户类,该类封装了账户编号和余额两个属性
* @author Emily-T
*
*/
public class Account {
//账户编号
private String...
分类:
编程语言 时间:
2015-06-28 11:14:58
阅读次数:
181
SQLite是Android系统内置的一款轻量级的关系型数据库,它的运算速度非常快,占用资源很少,通常只需要几百K的内存就足够了。SQLite不仅支持标准的SQL语法,还遵循了数据库的ACID事务。模拟一个应用场景:进行一次转账操作,银行会将转账的金额先从你的账户中扣除,然后再向收款方的账户中添加等...
分类:
移动开发 时间:
2015-06-28 11:06:04
阅读次数:
142