没有合适的资源?快使用搜索试试~ 我知道了~
数据库也是程序猿必须学习的技能,所以面试也必问,但是我对数据库的了解甚少,因为做Android开发,所以一直使用的是SQLite,所以每次都只能说SQLite,当然这里也只总结了一部分的知识点。
资源推荐
资源详情
资源评论
1、 SQL 语句:数据定义:creat,alter,drop。数据操纵:select,insert,update,delete。数据控
制:grant,revoke。
2、 事务:一系列的数据库操作,是数据库应用的基本逻辑单元。原子性:事务要么全部执
行,要么全部不执行;一致性:事务的执行使得数据库从一种正确的状态转换成另一
种正确状态,约束条件依然成立;隔离性:在事务正确提交之前,不允许把事务对数
据的任何改变提供给任何其他事务;持久性:事务正确提交之后,其结果将永久保存
在数据库中。
3、 锁。
锁是实现事务的关键,锁可以保证事务的完整性和并发性,可以使得某些数据的拥有
者,在某个时间段内不能使用某些数据或者数据结构。
Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象
封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。它支持两种
锁机制:悲观锁和乐观锁。
悲观锁:对数据被外界修改持保守态度,在整个数据处理过程中,将数据处于锁定状
态。它的实现往往依靠数据库提供的锁机制。如:select * from account where name=”Erica”
for update;锁定了 account 表中的所有符合检索条件 name=“Erica”的记录。在查询开始之
前设定加锁,才会真正通过数据库的锁机制进行加锁处理,否则数据已经通过不包括 for
update 子句的 select sql 加载进来了。
乐观锁:大多基于数据版本记录机制实现的。数据版本一般通过为数据库表增加一个
version 字段来实现。读取出数据时,将此版本号一同读出,之后更新时,对此版本号加一。
此时,将提交数据的版本数据与数据库表对应记录的当前版本信息进行比对,如果提交的
数据版本号大于数据库表当前版本号,则予以更新,否则认为是过期数据。乐观锁机制避
免了长事务中的数据库加锁开销,大大提升了大并发量下的系统整体性能表现。
数据库提供的锁:1.共享锁:共享锁用于所有的只读数据操作。共享锁是非独占的,允
许多个并发事务读取其锁定的资源。
2.排它锁:为修改数据而保留的。它所锁定的资源,其他事务不能读取也不能修改。
3.更新锁:更新锁在修改操作的初始化阶段用来锁定可能要被修改的资源,这样可以避
免使用共享锁造成的死锁现象。
4.结构锁:执行表的数据定义语言 (DDL) 操作(例如添加列或除去表)时使用架构修改
(Sch-M) 锁。
5.意向锁:数据库在资源的低层获得共享锁或排它锁的意向。
4、 SQLite 采用粗放型的锁。当一个连接要写数据库,所有其它的连接被锁住,直到写连接
结束了它的事务。SQLite 有一个加锁表,来帮助不同的写数据库都能够在最后一刻再加
锁,以保证最大的并发性。
资源评论
海牛宝宝爱学习
- 粉丝: 37
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功