数据库设计

ibatis和hibernate区别 [转]

让人想犯罪 __ 提交于 2019-11-26 15:03:47
http://zhidao.baidu.com/question/99674664.html?fr=qrl&cid=870&index=1 ibatis:sql需要自己写 hibernate:sql自动生成 上面是最大的区别,下面是一些细节. 选择Hibernate还是iBATIS都有它的道理: Hibernate的特点: Hibernate功能强大,数据库无关性好,O/R映射能力强,如果你对Hibernate相当精通,而且对Hibernate进行了适当的封装,那么你的项目整个持久层代码会相当简单,需要写的代码很少,开发速度很快,非常爽。以数据库字段一一对应映射得到的PO和Hibernte这种对象化映射得到的PO是截然不同的,本质区别在于这种PO是扁平化的,不像Hibernate映射的PO是可以表达立体的对象继承,聚合等等关系的,这将会直接影响到你的整个软件系统的设计思路。Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行

Mybatis与Hibernate区别

给你一囗甜甜゛ 提交于 2019-11-26 14:38:49
以前没怎么用过mybatis,只知道与hibernate一样是个orm数据库框架。随着使用熟练度的增加,发现它与hibernate区别是非常大的,结合至今为止的经验,总结出以下几点: 1. hibernate是全自动,而mybatis是半自动。 hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql。而mybatis仅有基本的字段映射,对象数据以及对象实际关系仍然需要通过手写sql来实现和管理。 2. hibernate数据库移植性远大于mybatis。 hibernate通过它强大的映射结构和hql语言,大大降低了对象与数据库(oracle、mysql等)的耦合性,而mybatis由于需要手写sql,因此与数据库的耦合性直接取决于程序员写sql的方法,如果sql不具通用性而用了很多某数据库特性的sql语句的话,移植性也会随之降低很多,成本很高。 3. hibernate拥有完整的日志系统,mybatis则欠缺一些。 hibernate日志系统非常健全,涉及广泛,包括:sql记录、关系异常、优化警告、缓存提示、脏数据警告等;而mybatis则除了基本记录功能外,功能薄弱很多。 4. mybatis相比hibernate需要关心很多细节 hibernate配置要比mybatis复杂的多

数据库设计60个技巧

为君一笑 提交于 2019-11-26 12:47:01
数据库设计指南 如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分。有关数据库设计的材料汗牛充栋,大学学位课程里也有专门的讲述。不过,就如我们反复强调的那样,再好的老师也比不过经验的教诲。所以我们最近找了些对数据库设计颇有造诣的专业人士给大家传授一些设计数据库的技巧和经验。我们的编辑从收到的130 个反馈中精选了其中的60 个最佳技巧,并把这些技巧编写成了本文,为了方便索引其内容划分为5 个部分: 第1 部分— 设计数据库之前 这一部分罗列了12 个基本技巧,包括命名规范和明确业务需求等。 第2 部分— 设计数据库表 总共24 个指南性技巧,涵盖表内字段设计以及应该避免的常见问题等。 第3 部分— 选择键 怎么选择键呢?这里有10 个技巧专门涉及系统生成的主键的正确用法,还有何时以及如何索引字段以获得最佳性能等。 第 4 部分 — 保证数据完整性 讨论如何保持数据库的清晰和健壮,如何把有害数据降低到最小程度。 第5 部分— 各种小技巧 不包括在以上4 个部分中的其他技巧,五花八门,有 了它们希望你的数据库开发工作会更轻松一些。 第1 部分— 设计数据库之前 考察现有环境 在设计一个新数据库时,你不但应该仔细研究业务需求而且还要考察现有的系统。大多数数据库项目都不是从头开始建立的;通常,机构内总会存在用来满足特定需求的现有系统(可能没有实现自动计算)。显然

MyBatis的事物管理和缓存

此生再无相见时 提交于 2019-11-26 12:08:31
MyBatis的事物 事物的概念 在Java语言数据库框架中,数据库的事务管理都是非常重要的。 每个业务逻辑都是由一系列数据库访问完成的,这些访问可能修改多条数据记录,这一系列修改应该是一个整体,绝对不能只修改其中的某几条数据记录。 多个数据库原子访问应该被绑定成一个整体,这就是事物。事务是一步或几步操作组成的逻辑执行单元,这些基本操作作为一个整体执行单元,它们要么全部执行,要么全部取消执行,绝对不能仅仅执行一部分。 一个用户请求对应一个业务逻辑方法,一个逻辑方法往往具有逻辑上的原子性,此时应使用事物。 例如:一个转账操作,对应修改两个账户余额,这两个账户的修改要么同时生效,要么同时取消,同时生效是转账成功,同时取消是转账失败;但不可只修改其中一个账户,那将破坏数据库的完整性。 事物的四个特性 1.原子性:事物是应用中最小的执行单位,就如原子是自然界最小颗粒而不可以再分一样,事物是应用中不可再分的最小逻辑执行体。 2.一致性:事物的执行结果,必须使数据库从一种一致性状态,变为另一种一致性状态。当数据库只包含事物成功提交的结果时,数据库处于一致性状态。当系统运行发生中断,某个事物尚未完成而被迫中断,而该未完成的事物对数据库所做的修改已被写入数据库,此时,数据库处于不正确的状态。一致性是通过原子性来保证的。 3.隔离性:各个事物的执行互不干扰,任意一个事物的内部操作对其他并发的事物

做外包项目的几个原则

邮差的信 提交于 2019-11-25 22:56:53
这篇又是经验之谈。 1、开发人员尽量单线程工作,避免同时参与2个或以上的项目,集中精力才能确保效率和质量。 2、给客户承诺的工期之外,要额外给团队留一点时间,作为两个项目之间的缓冲,用来应对需求调整,维护期的工作,项目总结等。 3、该有的技术文档一定不能少,不拘泥于形式,但要便于后人接手。接口文档,数据库设计说明(可以直接体现在表和字段的备注当中,不一定非要一个文档)是必须的,其他的看情况。 4、要强迫程序员研读需求文档,交互原型,确保对需求充分理解之后,再开工。 5、原型没确认之前,前后端都禁止开工。 6、必须有人定期评审(至少每周)代码,不合格就加班返工,不许偷懒。 7、所有需求变更必须进行记录,无论是否对工期和费用产生影响,都要记录备查。 来源: https://www.cnblogs.com/zhaoxizhe/p/11313933.html

阿里新零售数据库设计与实战

天涯浪子 提交于 2019-11-25 21:58:40
第1章 新零售数据库序章【6.21优惠券过期啦,适用于618薅羊毛の压轴课】 618活动期间最后一门课啦,这里有个羊毛可以薅。本章首先介绍为什么学本课程,适合谁学习,课程内容纲要,课程所提供的服务等。重磅压轴课,千呼万唤使出来,让大家久等啦~ 第2章 前置准备【磨刀不误砍柴工】 本章首先介绍“新零售”概念,即线上+线下销售模式。有别于纯电商,所以业务上既要考虑线下又要考虑线上。接下来,需要配置好学习环境,安装VMware虚拟机,安装CentOS操作系统。掌握VMware虚拟机的常用管理:创建快照以及创建克隆镜像等等。 ... 第3章 前导知识【九层之台,起于累土】 本章带大家夯实基础,首先在CentOS系统上安装MySQL数据库,做好配置,以及导入练习库。然后学习MySQL核心基础知识,如:看懂ER图、数据库的CRUD操作、事物机制等等。所谓“九层之台,起于累土”,成大事者,都是从基础开始的。... 第4章 新零售数据结构设计【立足需求,转化成果,向优秀致敬!】 本章结合新零售业务需求,以苏宁易购为蓝本,设计新零售的数据库平台,将开启你对数据库认识的新篇章,理解业务需求基础上,把业务拆分成一张张关系表。例如商品、产品、门类、品类、订单、仓库、库存、顾客、收货地址、购物券等。... 第5章 常见问题与企业级解决方案【适用于“直面”项目面试官+工作中技高一筹】

数据库设计(一)——数据库设计

笑着哭i 提交于 2019-11-25 20:10:23
数据库设计(一)——数据库设计 一、数据库设计简介 按照规范设计,将数据库的设计过程分为六个阶段: A、系统需求分析阶段 B、概念结构设计阶段 C、逻辑结构设计阶段 D、物理结构设计阶段 E、数据库实施阶段 F、数据库运行与维护阶段 需求分析和概念结构设计独立于任何数据库管理系统。 二、系统需求分析 1、需求分析的任务 需求分析的任务:对现实世界要处理的对象进行详细的调查,通过对原系统的了解,收集支持新系统的基础数据并对其进行处理,在此基础上确定新系统的功能。 A、调查分析用户活动 B、收集和分析需求数据,确定系统边界信息需求,处理需求,安全性和完整性需求 C、编写系统分析报告 2、需求分析的方法 需求分析有两种方法:自顶向下、自底向上 A、自顶向下 自顶向下方法从最上层的系统组织机构入手,采用逐层分解的方式分析系统。 用数据流图和数据字典描述系统 数据流图:描述输入数据到输出数据的变换过程 数据流:由一组固定成分的数据组成,代表数据的流动方向 处理:描述了输入数据到输出数据的变换 文件:用于存储数据 源或宿:存在于系统之外的人员或组织,表示系统输入数据的来源和输出数据的去向 B、自底向上 3、实例 教学管理系统 基本需求: 某学校设计学校教学管理系统,学生实体包括学号、姓名、性别、生日、民族、籍贯、简历、入学日期,每名学生选择一个主修专业,专业包括专业编号、名称、类别