数据库设计

输出mysql数据库设计文档

随声附和 提交于 2019-12-01 04:05:10
前言 最近需要把数据库输出word表格文档,由于表较多,一个个表结构复制出来做成文档感觉效率太低,想实现一键导出来,INFORMATION_SCHEMA的数据可以检索出想要的数据,COLUMNS获取所有列数据属性和TABLES获取所有表数据属性。 整个思路就是连接数据库,检索表数据、列字段数据,输出doc 当然,感觉实现还需要花一定时间熟悉word相关框架包,最后还是去找了现成的。现成如下 java版 https://blog.csdn.net/lq18050010830/article/details/78851180 python版 https://gitee.com/icecooly/Mysql2docx 搭建 我用了python工具版Mysql2docx,很方便,安装软件即可。 1.环境: win7 64位系统 python 3.7( https://www.python.org/downloads/release/python-370/ ) pip 18.0( https://pypi.org/project/pip/#files ) 安装与使用 安装 注意配置环境变量,Mysql2docx使用如下 [需要python3.0以上] pip install Mysql2docx 使用 >>> from Mysql2docx import Mysql2docx >>> m

必须知道的MyBatis实用知识点

丶灬走出姿态 提交于 2019-12-01 03:01:48
一、 MyBatis简介 MyBatis的前身是Apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。2013年11月迁移到GitHub,因此目前MyBatis是由GitHub维护的。 同样作为持久层框架的 Hibernate在前些年非常的火,它在配置了映射文件和数据库连接文件后就可以通过Session操作,它甚至提供了HQL去操作POJO进而操作数据库的数据,几乎可以使编程人员脱离sql语言。可是为什么MyBatis却越来越受欢迎呢?我们稍稍总结如下: Hibernate: 1.不方便的全表映射,比如更新时需要发送所有的字段; 2.无法根据不同的条件组装不同sql; 3.对多表关联和复制sql查询支持较差; 4.有HQL但性能较差,做不到sql优化; 5.不能有效支持存储过程; 在当今的大型互联网中,灵活、 sql优化,减少数据的传递是最基本的优化方法,但是Hibernate却无法满足我们的需求,而MyBatis提供了更灵活、更方便的方法。在MyBatis里,我们需要自己编写sql,虽然比Hibernate配置要多,但是是MyBatis可以配置动态sql,也可以优化sql,且支持存储过程,MyBatis几乎能做到 JDBC 所能做到的所有事情!凭借其高度灵活

学习《数据库设计入门经典》笔记——容易方法的范式

会有一股神秘感。 提交于 2019-12-01 02:32:26
第一范式(1NF):删除原表中的 重复字段 。通过创建新的表来删除重复的字段,其中以主-明细的、一对多的关系链接原始表和新表。 第二范式(2NF):删除第一范式中新表的 重复值 。创建一个2NF的新表,将1NF新表中重复的值移动到2NF新表中,结果是原始表和新表之间创建多对一关系。      通常,2NF在动态和静态数据之间创建多对一关系,将事务表中的静态数据移动到新的表中。 第三范式(3NF):几种容易方法的实现: 1、(两表)将多对多关系分解到新的表中,即引入中间表。 2、(两个以上的表)将重复内容(字段)合并到新表中,结果是原始各表和新表之间创建多对一关系。形同做了多个2NF变换。 3、(一个表)从一个表3NF传递依赖分离到新表,即删除传递依赖,可能创建过多表,导致必须连接过多表的缓慢查询。 4、(一个表)删除计算字段。计算出的值的字段由相同表中的其他字段中的值产生,有时计算字段是为了性能,没有必要删除。 第三范式以上的范式:显示使用第三范式以上的范式可能是愚蠢的行为,就是说不要去用。 1、将潜在的NULL字段移动到新的表,并且创建一对[一或零]的关系。在现代高端关系数据库引擎中,这是非常无关的,磁盘空间是廉价的,不断增加的表数量将导致较大的sql连接和较差的性能 一般商业设计,只使用到三范式(部分第三范式),不使用三范式以上的范式。 来源: https://www

Mybatis

ぃ、小莉子 提交于 2019-12-01 01:21:02
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/a745233700/article/details/80977133 1、什么是Mybatis? (1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。 (2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 (3)通过xml 文件或注解的方式将要执行的各种 statement 配置起来,并通过java对象和 statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。(从执行sql到返回result的过程)。 2、Mybaits的优点: (1)基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用。 (2

MyBatis增啥改查

我们两清 提交于 2019-11-30 19:50:55
一. 什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。 MyBatis参考资料官网: https://mybatis.github.io/mybatis-3/zh/index.html 。 官网对Mybatis的介绍更加具有权威性: MyBatis 是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。 MyBatis 避免了几乎所有的 JDBC 代码和手工设置参数以及抽取结果集。 MyBatis 使用简单的 XML 或注解来配置和映射基本体,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 MyBatis优点: 1)、简单易学 mybatis本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。 2)、灵活

mybatis执行过程及经典面试题

北慕城南 提交于 2019-11-30 18:03:58
Mybatis执行流程   mybatis中xml解析是通过SqlSessionFactoryBuilder.build()方法。   初始化mybatis(解析xml文件构建成Configuration对象)并初始化SqlSessionFactory对象   在解析xml时会同时根据其中节点做相应的初始化操作   关键节点: settings、typeAliases、mappers   通过SqlSesssionFactory.openSession()方法打开一个SqlSession对象   SqlSessionFactory对象的作用是里面存了全局的配置信息以及初始化环境和DataSource,DataSource对象可以用来开辟连接,SqlSessionFactory对象是用来保存全局信息并且打开数据库连接   在打开SqlSession对象的时候就会开辟一个连接对象并传给SqlSession对象,和数据库打交道的操作入口在于SqlSession对象   通过SqlSession.getMapper()根据传入的Mapper对象类型动态代理并返回一个动态代理后的Mapper对象   由SqlSession.select()/update(),MapperProxy对象的invoke()方法执行后再执行execure方法,再根据情况选择执行select/update  

Mybatis学习——Mybatis核心配置

可紊 提交于 2019-11-30 16:18:07
MyBatis的核心配置   在使用MyBatis框架时,设计两个核心的d对象:SqlSessionFactory和SqlSession. SqlsessionFactory   SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像,其主要作用用来创建SqlSession对象,SqlSessionFactory实例对象是可以通过SqlSessionFactoryBulider对象来构建,而SqlSessionFactoryBulider对象可以通过XML文件或者Configuration实例来创建SqlSessionFactory实例,其代码如下: //1.读取配置文件 String resource ="mybatis-config.xml"; InputStream inputStream=Resources.getResourceAsStream(resource); //2.获取会话工厂对象 SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);   注意:SqlSessionFactory对象是线性安全的,它一旦被创建,在整个应用程序间都会存在,如果我们多次的创建同一个SqlSessionFactory对象

初始MyBatis

寵の児 提交于 2019-11-30 14:45:46
框架的概念 框架(Framework)是一个可重用的公共结构的半成品,它为我们构建新的应用程序提供了极大的便利。一方面提供了可以拿来就用的工具,更重要的是,提供了可重用的设计 主流框架的介绍 Struts 2框架 Struts2 以WebWork 优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个更加整洁的基于MVC设计模式实现的Web应用程序框架。它应用了几个新的框架特性;从逻辑中分离出横切关注的拦截器,减少或者消除配置文件,贯穿整个框架的强大表达式语言,支持可变更和可重用的基于MVC模式的标签API等,Struts 2 充分利用了从其他MVC框架学到的经验和教训,使整个框架更加清晰更加灵活 Hibernate框架 Hibernate是一个优秀的持久化框架,负责将对象数据保存到数据库中,或从数据库中读取数据并封装DAO对象的工作。Hibernate通过简单配置和编码即可替代JDBC烦琐的程序代码。Hibernate已经成为当前主流的数据库持久化框架,被广泛应用 Spring框架 String是一个开源框架,他的目标是使现有的JavaEE技术更容易使用和促进良好的编程习惯。它是一个轻量级的框架,渗透了JavaEE技术的方方面面。他的主要作用作为依赖注入容器和AOP实现存在还提供了声明式事务,对DAO层的支持等简化开发的功能

以及Hibernate和Mybatis区别

帅比萌擦擦* 提交于 2019-11-30 14:40:14
ORM框架? Object Relational Mapping,对象-关系映射。 项目中的业务实体有两种表现形式:对象和关系数据,即在内存中表现为对象,在数据库中表现为关系数据。 为什么需要ORM框架? ORM框架是对象关系映射,那为什么要映射mapping? 因为对象之间可以存在关联和继承关系,但是在数据库中,关系数据无法表达多对多关联和继承关系。(ps:在数据库原理中,会把逻辑上的多对多转换为多个一对关系才能实现)因此,对象和关系(业务实体的两种表现形式)想要映射正确,项目系统一般以中间件的形式,即持久层框架。 Hibernate? Hibernate是一个开源的对象关系映射框架。 它对jdbc进行了非常轻量级的对象封装,将pojo(普通的Java对象)与数据库表建立映射关系,是一个全自动的ORM框架,甚至自动生成SQL语句,自动执行。 因此,程序员可以随心所有地使用对象编程思维来操纵数据库。 Hibernate特点: Hibernate通过修改一个“持久化”对象的属性,从而修改数据库表中对应的记录数据 提供线程和进程两个级别的缓存提升应用程序性能 有丰富的映射方式将 Java对象之间的关系(POJO) 转换为 数据库表之间的关系 屏蔽不同数据库实现之间的差异。在Hibernate中只需通过“方言”的形式指定当前使用的数据库,就可以根据底层数据库的实际情况生成适合的SQL语句

初始MyBatis

萝らか妹 提交于 2019-11-30 14:35:36
初始MyBatis 什么是 MyBatis? MyBatis是支持定制化SQL,存储过程以及高级映射的优秀的持久层框架.MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集.MyBatis可以对配置和原生Map使用简单的XMl或注解,将接口和Java的POJO(Plain Old java Objects,普通的Java对象)映射成数据库中的记录. *** MyBatis如何安装? jar包下载地址 要使用MyBatis,只需要mybatis-x.x.x.jar文件置于classpath中即可,web项目把jar包放到WEB-INF下的lib包中 如果使用Maven来构建项目,则需将下面dependency代码置于pom.xml文件中: <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifacId> <version>x.x.x</version> //版本号 </dependency> MyBatis的功能架构 我们把Mybatis的功能架构分为三层 API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库.接口层一接受调用请求就会调用数据处理层来完成具体的数据处理. 数据处理层:负责具体的SQL查找.SQL解析.SQL执行和执行结果映射处理等