java中链接数据库使用的是java database connectivity (JDBC)来对数据库进行操作。crud操作。还有数据库事务等等操作。java中和数据库链接使用的是各种数据库的驱动。在项目中只需要加载不同数据库的驱动就可以进行对数据库的操作。数据库分为关系型数据库和nosql类型的数据库。以MySQL为代表,在Java中只需要加载一个MySQL的驱动我们就可以操作数据库完成开发的基本任务。但是不可能像dba那样对数据有非常高的要求。但是在设计数据库的时候可以和dba进行一些优化和扩张备份等等上的一些讨论。可以借鉴dba对数据库的专业性来进行java web项目的开发工作。
1.2中讲解的是范式不匹配的内容。
1.2.1中有一个粒度,我理解的是在java 类中是一个类来表示对象的存在。当有关系要进行建立的时候就产生了粒度。比如是把地址放在用户表中还是单独建立一张地址表来进行关联。user-definded-datatype(UDT,用户自定义的数据类型),刚刚的地址如果放在user表中则属于用户自定义了一个address的类型数据。但是数据库间的不通用性注定这是一个难解的问题。现在考虑一下粒度,address是一个粗粒度的数据类型可以把所有需要处理的粗粒度类型大部分转化为数据库的基本数据类型。这样每一个colnm都是一个基本的数据库数据类型(细粒度)。粒度问题的理解。也可以放在java中面向对象的上面进行理解。
1.3节
1:应用层级的划分
这个算是一个应用的层级划分。
在层级划分下讲解了持久层和面向对象的数据库设计。
在持久层使用:sql+jdbc的模式是早期进行开发的方案。但是在项目重复造轮子的过程中jdbc+sql的可移植性就会出现一定的问题。复杂的sql,jdbc的对象维护性低。都会成为移植的噩梦。
1.3.4还介绍了一种面向对象的数据库系统。其实可以看做是一个应用系统。主要使用的是多层实现。
1.4介绍ORM
orm就是利用描述对象和数据库之间映射元数据关系,自动且(透明的)地把java应用程序中的对象持久化到数据库的关系表中。
orm解决方案:
- 在持久化类的对象上执行基本的CRUD操作的一个API
- 用于指定应用类或者属性的查询的一种语言或者API
- 用于指定映射元数据的一种工具
- 用于实现ORM的一项技术,与事务对象交互,执行脏检查(dirty checking),延迟关联抓取以及其他优化功能
1.4.2提出了ORM大部分问题
有一个共通的问题就是
- 事务和并发性
- 高速缓存管理(和并发性)
介绍了hibernate,EJB3.0,JPA。
第一章(完)