数据库设计

初始MyBatis

二次信任 提交于 2019-11-30 14:27:21
为什么学习框架技术 优势如下: 不用再考虑公共问题,框架已经帮我们做好了 可以专心于业务逻辑,保证核心业务逻辑的开发质量 结构统一,便于学习和维护 框架中集成了前人的经验,可以帮助新手写出稳定、性能优良而且结构优美的高质量程序 框架的概念 框架(Framework)是一个可重用的公共结构的半成品,它为我们构建新的应用程序提供了极大的便利。一方面提供了可以拿来就用的工具,更重要的是,提供了可重用的设计 主流框架的介绍 Struts 2框架 Struts2 以WebWork 优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个更加整洁的基于MVC设计模式实现的Web应用程序框架。它应用了几个新的框架特性;从逻辑中分离出横切关注的拦截器,减少或者消除配置文件,贯穿整个框架的强大表达式语言,支持可变更和可重用的基于MVC模式的标签API等,Struts 2 充分利用了从其他MVC框架学到的经验和教训,使整个框架更加清晰更加灵活 Hibernate框架 Hibernate是一个优秀的持久化框架,负责将对象数据保存到数据库中,或从数据库中读取数据并封装DAO对象的工作。Hibernate通过简单配置和编码即可替代JDBC烦琐的程序代码。Hibernate已经成为当前主流的数据库持久化框架,被广泛应用 Spring框架 String是一个开源框架

数据库系统原理(第三章数据库设计 )

可紊 提交于 2019-11-30 13:42:57
一、数据库设计概述 数据库的生命周期 数据库设计的目标: 满足应用功能需求(存、取、删、改), 良好的数 据库性能(数据的高效率存取和空间的节省 共享性、完整性、一致性、安全保密性) 数据库设计的内容 数据库设计的方法 直观设计法( 最原始的数据库设计方法) 规范设计法:( 新奥尔良设计方法 :需求分析、概念结构设计、逻辑结构设计、物理结构设计 ; 基于E-R模型的数据库设计方法 ; 基于第三范式的设计方法 ,是一类结构化设计方法) 计算机辅助设计法( 辅助软件工程工具) 数据库设计的过程 二、数据库设计的基本步骤 需求分析(数据库设计的起点) 目标:是了解与分析用户的信息及应用处理的要求,并将结果按一定格式整理 而形成需求分析报告。 作用:该分析报告是后续概念设计、逻辑设计、物理设计、数据库建立与维护的依据。 需求分析的步骤: 确定数据库范围(数据库的第一项工作) 应用过程分析---了解并分析数据与数据处理间的关系 收集与分析数据 编写需求分析报告 ********************确定数据库范围(数据库的第一项工作)************** (1)有效地利用计算机设备及数据库系统的潜在能力; (2)提高数据库的应变能力; (3)避免应用过程中对数据库做太多或太大的修改; (4)延长数据库的生命周期。 ********************应用过程分析********

MyBatis进阶

六眼飞鱼酱① 提交于 2019-11-30 13:35:37
MyBatis进阶 笔记内容:日志管理、动态SQL、缓存、对象关联查询、分页、批处理和注解 日志管理 日志文件作用:用于记录系统操作事件的记录文件或文件集合,日志保存历史数据,是诊断问题以及理解系统活动的重要依据。 日志分为两部分:比如,SLF4j与Logback,如下图所示 日志门面和日志实现作用区别:统一的门面屏蔽了底层复杂的实现,门面就像插盘的面板规格,插盘内部的电路设计细节不同。门面和实现分开有助于数据迁移。 日志实现组件作用:提供日志的打印、输出、管理 使用步骤 在pom文件中加入logback依赖 <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> 可以自定义控制台输出日志的格式:在resources目录下新建logback.xml,规定控制台的输出日志格式。 一般调试时,设置root level级别为debug以上,方便调试。 <configuration> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>[%thread] %d{HH:mm

mysql_数据库设计类型选择及优化

橙三吉。 提交于 2019-11-30 09:03:36
数据库设计原则: a,更小的通常更好。 应该尽量使用可以正确存储数据的最小数据类型。如只要存储0-200,tinyint unsigned更好 b,简单就好 简单的数据类型的操作需要更少的cpu周期。同时后期优化也更为容易。 c,尽量避免使用null mysql在建立索引,优化过程对null需要做特殊处理,耗费额外资源。非特殊情况,避免使用null。 数据类型常识 一,整数类型 根据存储空间: TINYINT SMALLINT MEDIUMINT INT BIGINT 存储空间位数n 8 16 24 32 64 ‍ 存储范围 -128~127 根据属性 unsigned: -2(N-1)-2(N-1)-1 --没办法输入右上标 signed:0~2(N-1) 指定宽度 INT(11),这对大多数应用没有实际意义,他不会限制值的合法范围,只是规定了一些交互工具用来显示字符的个数,对存储和计算来说,INT(11)和INT(20)是相同的 二:实数类型 float,double,decimal float和double使用标准浮点近似运算. decimal使用精确运算.需要额外开销, decimal(18,9),存储18位数,小数点左右各9位。 三,字符串类型 长度 额外记录长度 长度不足 长度超出 尾部空格 varchar(n) 变长 需要 以实际长度存储 截断 保留 char(n)

数据库设计优化

孤者浪人 提交于 2019-11-30 05:44:30
数据库的基本语法的使用,很多,我也没有去整理,所以在这里就不介绍那些基本的语法了。如果对这方面有问题,我在这里给大家分享一个方法:   SQL语句应该怎样去优化?在职业生涯中,有一次维护一个项目中的一个模块。之前做的那个同事离职了,交给我来维护。我记得好像是七八张表吧,各种join、order by、distinct、group by.......看得头大。这样的SQL语句应该怎么优化呢?额......这怎么优化啊?建议从表的设计方面考虑吧。后来我也是这样做的,重新设计表,将表的数量减少,将数据更新到那写新表中去。即使不刷数据,流程中做下控制,时间久了,老表中的数据也都会更新到新表中去。 数据库设计步骤:   1、需求分析:大概明白需要存储什么   2、概要设计阶段:E-R图,表-属性-关系表,解决多方的沟通问题   3、详细设计,细致到表甚至字段 关系型数据库:面向对象的封装+关系 面向对象的思想来建表:   一对一:人----身份证;垂直分别的时候;相同主键/外键   一对多:订单----商品表;省-----市;公司-----员工;主外键表示   多对多:用户----菜单;学生----课程;女神----备胎;关系表/中间/映射表 三大范式:   第一范式:每一列保持原子性,不可分割     原子性:不可分割。     人----工作电话/家庭电话/移动电话,必须要拆分开

mybatis与hibernate区别

坚强是说给别人听的谎言 提交于 2019-11-30 02:30:12
具体从几个方面说一下两者的区别: 1.两者最大的区别: 针对简单逻辑,Hibernate和MyBatis都有相应的代码生成工具,可以生成简单基本的DAO层方法。 针对高级查询,Mybatis需要手动编写SQL语句,以及ResultMap。而Hibernate有良好的映射机制,开发者无需关心SQL的生成与结果映射,可以更专注于业务流程。 2.开发难度对比 Hibernate的开发难度要大于Mybatis。主要由于Hibernate比较复杂、庞大,学习周期较长。 而Mybatis则相对简单一些,并且Mybatis主要依赖于sql的书写,让开发者感觉更熟悉。 3.sql书写比较 Mybatis的SQL是手动编写的,所以可以按需求指定查询的字段。不过没有自己的日志统计,所以要借助log4j来记录日志。 Hibernate也可以自己写SQL来指定需要查询的字段,但这样就破坏了Hibernate开发的简洁性。不过Hibernate具有自己的日志统计。 4.数据库扩展性比较 Mybatis由于所有SQL都是依赖数据库书写的,所以扩展性,迁移性比较差。 Hibernate与数据库具体的关联都在XML中,所以HQL对具体是用什么数据库并不是很关心。 5.缓存机制比较 相同点:Hibernate和Mybatis的二级缓存除了采用系统默认的缓存机制外,都可以通过实现你自己的缓存或为其他第三方缓存方案

数据库设计之添加备用字段

半世苍凉 提交于 2019-11-29 21:45:26
备用字段,也称 预留字段 。 相关描述:   在数据表中,不仅设计了当前所需要的字段,而且还在其中留出几个字段作为备用。   比方说,我设计了一个人员表(Person),其中已经添加了各种必要的字段,包括姓名(Name)、性别(Sex)、出生年月日 (birthday)等等。大功告成之后,我忽然想到,将来系统中应该还会有很多其它与人相关的内容吧,比方说毕业院校,再比方说工作单位等等,尽管现在根本不需要填写,以后可能还是会用到的吧。好,那就加入5个varchar2型的字段,分别叫做Text1、Text2……Text5,然后又想到, 应该还有一些日期型的字段需要备用,就又建立了三个date型的字段,分别起名叫做date1、date2、date3,……   可以看到,在这个数据表中,存在着大量暂时无用的字段,我们可以称之为备用字段。   那它们的作用是什么呢?防患于未然!等到时候需要的时候,就不需要在表中增加新的字段了,而且这样做的话,一个表的数据应该会被存储在相邻的物理空间中,这对于性能也是有好处的。   另外,在一些古老的数据库中,如果改变数据库的定义(包括增加字段、改变字段的类型、删除字段等等),那么其中所有的数据就会丢失,所以这项工作非常麻烦(我们需要先建立临时表,将数据备份出来,然后创建新表,将数据导入其中,最后再删除原来的表)。 但是备用字段也不能滥用,“过度设计

Hibernate 学习教程

青春壹個敷衍的年華 提交于 2019-11-29 21:01:47
第1课 课程内容. 6 第2课Hibernate UML图. 6 第3课 风格. 7 第4课 资源. 7 第5课 环境准备. 7 第6课 第一个示例HibernateHelloWorld 7 第7课 建立Annotation版本的HellWorld 9 第8课 什么是O/RMapping 11 一、 定义:. 11 二、 Hibernate的创始人:. 11 三、 Hibernate做什么:. 12 四、 Hibernate存在的原因:. 12 五、 Hibernate的优缺点:. 12 六、 Hibernate使用范围:. 12 第9课Hibernate的重点学习:Hibernate的对象关系映射. 12 一、对象---关系映射模式. 12 二、常用的O/R映射框架:. 13 第10课 模拟Hibernate原理(OR模拟) 13 一、 项目名称. 13 二、 原代码. 13 第11课Hibernate基础配置. 15 一、 提纲. 15 二、 介绍MYSQL的图形化客户端. 16 三、 Hibernate.cfg.xml:hbm2ddl.auto 16 四、 搭建日志环境并配置显示DDL语句. 16 五、 搭建Junit环境. 16 六、 ehibernate.cfg.xml : show_sql 17 七、 hibernate.cfg.xml :format_sql 17 八

MyBatis的发展和选型

走远了吗. 提交于 2019-11-29 16:06:19
xlecho编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075)交流学习。 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!! 参考文章列表: ORM框架的简单介绍 数据层框架的发展史 JDBC编码的几大问题和MyBatis等框架的发展支持原因? 在最初编写JDBC连接数据库的时候,各种代码操作较为复杂,而且有很多缺陷。缺陷总结如下: 方法的封装问题 数据源的支持 映射结果集的接收和处理 SQL语句硬编码 程序参数只能按照顺序传入(占位符) 没有实现实体类到数据库记录的映射 没有提供缓存等功能 工具类封装的出现解决了一部分问题 相应的工具类如:springjdbc、jdbcutils、Apache DbUtils等。这样的工具类主要解决了一下几个问题: 方法的封装 数据源的支持 映射结果集 工具类的响应实现解决了部分JDBC的缺陷,但是并不完美。每一次的改进和工具类的出现的就是我们框架的前身出现,框架也是工具。在越来越完善的解决方案的出现之后,ORM框架基本就成型了。同时解决了以上JDBC列出来的各种问题。 ORM框架,全称Object Relational Mapping,对象关系的映 面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统

mysql数据库设计

浪尽此生 提交于 2019-11-29 13:55:31
数据库设计 简介 简单来说,数据库设计就是根据业务系统的具体需要,结合我们所选的数据库管理系统,为这个业务系统构造出最优的数据库存储模型.并建立好数据库中的表结构及表与表之间的关联关系的过程.使之能有效的对应应用系统中的数据进行存储,并可以高效的对已经存储的数据进行访问. 常用关系型数据库:mysql、Oracle、SQL server、PgSql 常用非关系型数据库:Mongo、Memcache、Redis 数据库设计作用 优良的设计 糟糕的设计 减少数据冗余 存在大量数据冗余 避免数据维护异常 存在数据插入,更新,删除异常 节约存储空间 浪费大量存储空间 高效的访问 访问数据低效 维护调整方便 较难调整维护 数据库设计步骤 需求分析 数据库是什么 数据库有哪些属性 数据库和属性各自的特点有哪些 逻辑设计 使用ER图对数据库进行逻辑建模 物理设计 根据使用的数据库自身的特点把逻辑设计转换为物理设计 维护优化 新需求进行表建立 索引优化 大表拆分 需求分析 1.了解系统中所要存储的数据 2.了解数据的存储特点 3.了解数据的生命周期 需求分析要搞清以下问题 实体及实体之间的关系(1对1,1对多,多对多) 实体所包含的属性有什么 哪些属性或属性的组合可以唯一标识一个实体 实例演示需求分析过程 以小型电子商务网站为例,包含的模块: 用户模块 包括属性:用户名、密码、电话、邮箱、身份证号