hibernate 实战(第一章)

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解决方案:

  1. 在持久化类的对象上执行基本的CRUD操作的一个API
  2. 用于指定应用类或者属性的查询的一种语言或者API
  3. 用于指定映射元数据的一种工具
  4. 用于实现ORM的一项技术,与事务对象交互,执行脏检查(dirty checking),延迟关联抓取以及其他优化功能

1.4.2提出了ORM大部分问题

有一个共通的问题就是

  1. 事务和并发性
  2. 高速缓存管理(和并发性)

介绍了hibernate,EJB3.0,JPA。

第一章(完)

时间: 2024-10-23 07:37:11

hibernate 实战(第一章)的相关文章

2017.2.20 activiti实战--第一章--认识Activiti

学习资料:<Activiti实战> 第一章 认识Activiti 内容概览:讲解activiti的特点.接口概览.架构等基本信息. 1.3 Activiti的特点 1.使用mybatis 2.原生支持spring,可以轻松集成spring 3.引擎的Service接口 Activiti引擎提供了7大Service接口,均通过processEngine获取,支持链式API风格. Service接口 作用 RepositoryService 流程仓库服务,管理流程仓库,比如部署.删除.读取流程资源

OSGI实战第一章

第一章         解开OSGI的面纱 OSGI是什么?是Java平台的一个模块化层. 模块化:软件应用程序的代码被分割为表示独立内容的逻辑单元,可简化开发,可通过强化逻辑模块的界限来提高可维护性. Java模块化的不足 a)         Java使用访问修饰符(如public.protected.private和包级私有),解决底层面向对象封装,而不是逻辑系统划分. 比如,如果需要代码在多个包之间课件,那么包内的代码必须声明为public,那么所有的模块都可以使用这个public类.这

核心系统命令实战 第一章Linux命令行简介

第一章Linux命令行简介 1.1 Linux命令行概述 1.1.1 Linux 命令行的开启和退出 开启:登陆账号密码进入系统 退出:exit/logout  快捷键:Ctrl+d 1.1.2 Linux命令行提示符介绍 (1)提示符由PS1环境变量控制.实例代码如下: [[email protected] ~]# set | grep PS1 PS1='[\[email protected]\h \W]\$ ' 这里的PS1='[\[email protected]\h \W]\$ ',可以

DirectX12 3D 游戏开发与实战第一章内容

DirectX12 3D 第一章内容 学习目标 1.学习向量在几何学和数学中的表示方法 2.了解向量的运算定义以及它在几何学中的应用 3.熟悉DirectXMath库中与向量有关的类和方法 1.1 向量 向量是一种兼具大小和方向的量,具有这两种的量都称为向量值物理量,在几何学中我们一般用一条有向线段来表示一个向量 1.1.1 向量与坐标系 前提:计算机无法直接处理以几何方法表示的向量,所以需要寻求一种用数学方法来表示向量 在这里我们会引入一种3D空间坐标系,通过平移操作使向量的尾部位于原点,然后

机器学习实战——第一章

分类:将实例数据划分到合适的分类中.目标变量是离散型. 回归:预测数值型数据.目标变量是连续型的数值. 监督学习:必须知道预测什么,即目标变量的分类信息.目标变量是机器学习算法的预测结果. 开发机器学习应用程序的步骤:1)收集数据:2)准备输入数据:3)分析输入数据:4)训练算法:5)测试算法:6)使用算法. 1 from numpy import * #将numpy函数库中的所有模块引入当前命名空间 2 random.rand(4,4) #构造4*4的随机数组array 3 randMat =

机器学习实战--第一章 Numpy使用

导入numpy 并简单赋值 import numpy as np a = np.array([0, 1, 2, 3, 4, 5]) print a # 数组转换到2D矩阵 变成三行两列 b = a.reshape((3, 2)) print b # .ndim(空间维度的意思)即矩阵列数 print a.ndim print b.ndim # .shape查看矩阵形态,即几行几列 print b.shape# numpy避免复制操作 直接修改值,a,b的值都变化 b[1][0] = 77prin

[Python编程实战] 第一章 python的创建型设计模式1.1抽象工厂模式

注:关乎对象的创建方式的设计模式就是"创建型设计模式"(creational design pattern) 1.1 抽象工厂模式 "抽象工厂模式"(Abstract Factory Pattern)用来创建复杂的对象,这种对象由许多小对象组成,而这些小对象都属于某个特定的"系列"(family). 比如说,在GUI 系统里可以设计"抽象控件工厂"(abstract widget factory),并设计三个"具体子

hibernate实战第一录

java中链接数据库使用的是java database connectivity (JDBC)来对数据库进行操作.crud操作.还有数据库事务等等操作.java中和数据库链接使用的是各种数据库的驱动.在项目中只需要加载不同数据库的驱动就可以进行对数据库的操作.数据库分为关系型数据库和nosql类型的数据库.以MySQL为代表,在Java中只需要加载一个MySQL的驱动我们就可以操作数据库完成开发的基本任务.但是不可能像dba那样对数据有非常高的要求.但是在设计数据库的时候可以和dba进行一些优化

java并发编程实战第一章

线程不安全代码测试 private static class UnsafeSequence { private int value; public int getNext() { return value++; } } 使用两个线程分别调用上面的getNext方法1000次,出现了一次线程不安全的情况,在转出的结果中有两个1311: 图片.png 原因分析,与书上说的一致: 图片.png 完整的代码 import java.io.PrintWriter; import java.util.con