对象关系映射

20200105——mybatis 第二天

为君一笑 提交于 2020-01-07 02:49:29
订单商品模型分析 对于数据模型分析思路 1)搞清楚每张表的数据内容 分模块对每张表的内容进行熟悉, 相当于你学习系统,需求功能的过程 2)每张表重要的字段设置 非空、外键字段 3)数据库级别,表与表之间的关系 外键关系 4)表与表之间的业务关系 在分析表与表之间的业务关系时,一定要建立在某个业务意义的基础之上 数据模型分析 用户表user 记录了购买商品的用户信息 id:自增主键 订单表order 记录了用户所创建的订单 number:订单号 user_id : 外键 用户id 订单明细表orderall 记录了订单的详细信息 order_id 外键 订单id items_id 商品id 商品表items 记录了商品信息 表与表之间的业务关系时需要建立,在某个业务意义基础上去分析 先分析数据级别之间有关系的表之间的业务关系 user和order user ->orders 一个用户可以创建多个订单 orders ->user 一个订单只能由一个用户创建 orders与orderall orders ->orderall 一个订单可以包括多个订单明细 因为一个订单可以购买多个商品,每个商品的购买信息在orderall记录,一对多 返回过来,一个订单明细 只能包括在一个订单中 一对一 orderall ->item 一个订单明细,只对应一个商品信息 item ->

mybatis总结

牧云@^-^@ 提交于 2020-01-06 04:17:29
1.mybatis的工作原理 1:使用连接池,datasource,在驱动并连接的这个过程中优化并解耦 JDBC第一步其实从效率角度来看是不合适的,因为无论什么数据库都不可能支撑随机和庞大的连接数,而且不可避免的存在连接浪费的情况,Mybatis就封装了这些优化的方法。 2:统一sql存取到XML 如果代码写在java块中,在团队合作中很可能出现两个交叉业务的代码使用类似的sql语句,而开发人员的工作本身没有交集,那就代表sql语句肯定是无法复用的。而且对sql的修改,就代表着对java文件的修改,需要重新编译和打包部署(比如常见的状态值更改,sql修改随着业务变化必然存在修改)。 mybatis将sql统一存取到xml中,就算存在业务交叉,但因为统一配置的缘故,sql在xml中一目了然,两个跨team的程序员可以看到对方的sql,来判断自己是否需要重用。并且使用xml配置可以减少代码编译。 3:参数和结果集映射 sql的方式需要传入参数,如果存在多条件“或类型”的查询(列表查询的查询条件允许空),那就代表你必须传参进行sql拼接,就算使用xml的方式也不行。要么每个业务独立配置xml中的sql,要么还是写入java代码中,或者以工具的方式进行自动拼接。 Mybatis使用映射的方式,方便model管理参数,同时以解析器的方式将参数动态拼接到sql(sqlmaper里那些标签)

Spring监管下的Hibernate配置文件

醉酒当歌 提交于 2020-01-06 00:49:49
今天看了看别人的程序 , 用的是 SSH 搭建的 , 自己回忆了下感觉假设採用注解的话那么 Hibernate 的配置文件hibernate.cfg.xml是还须要的 , 而 *.hbm.xml 则能够被注解所替代的 , 结果确是我没有找到我想要的hibernate.cfg.xml . 事实上想想自己对 SSH 环境的搭建理解的还不是非常透彻 . 不过看着人家怎么搭建自己跟着怎么搭建而已 . 所以对 Spring 和 Hibernate 的整合配置文件略微整理了下 . spring对hibernate配置文件hibernate.cfg.xml的集成相当好。能够在Spring中配置Hibernate的SessionFactory从而代替Hibernate.cfg.xml和HibernateSessionFactory.java , 所以在 Spring 和 Hibernate 集成的时候我们关注的是 *.hbm.xml 是否还须要 . 当然我们能够选择继续使用 *.hbm.xml 或者不使用这样的配置文件 , 改用注解的方式 . 继续使用Hibernate的映射文件*.hbm.xml时扫描映射文件的方法 Spring集成Hibernate时去掉了Hibernate.cfg.xml。此时假设还继续使用Hibernate的映射文件*.hbm.xml的话

Servlet(基础)

让人想犯罪 __ 提交于 2020-01-05 19:19:29
Servlet 专 题 (基础) Servlet容器: Servlet 由 Servlet容器提供,Servlet容器是指 提供了Servlet功能的服务器。 (如Tomcat)。 作用: Servlet容器会将Servlet动态加载到服务器,然后通过HTTP请求 和 HTTP响应与客户端进行交互。 什么是Servlet? 宏观上: Servlet 是 Servlet 规范中的一个具体的接口。Servlet 规范中包含一套接口。而 Servlet 接口仅仅是其中之一。 微观上: Servlet 是 Servlet 接口实现类的一个实例对象,是运行在服务器上的一段 Java 小程序。即 Server Applet,也就是 Servlet 这个单词的来历。 通常来说,Servlet指所有实现了Servlet这个接口的类。 Servlet 的主要功能 根据客户端提交的请求,调用服务器端相关 Java 代码,完成对请求的处理与运算。(即,主要用于处理客户端传来的HTTP请求,并返回一个响应给客户端。) Servlet的特征? Servlet接口中定义了 五个抽象方法 Servlet的生命周期: 生命周期方法执行流程: Servlet 生命周期方法的执行流程: (1)当请求发送到 Web 容器后,Web 容器会解析请求 URL, 并从中分离出 Servlet 对应的URI。 (2

Hibernate学习

北城余情 提交于 2020-01-02 04:36:23
Hibernate学习 Hibernate基本配置 ### 实体类 package com.xiao;​import lombok.Data;​@Datapublic class GoodsEntity {​ public GoodsEntity() { }​ public GoodsEntity(String name, Double price) { this.name = name; this.price = price; }​ private int sid; private String name; private Double price;​} Hibernate核心配置文件 <?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <!--mysql账户名--> <property name="connection.username">root</property>

[置顶]
【hibernate进阶】hibernate基本映射

女生的网名这么多〃 提交于 2020-01-02 04:34:35
对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术,本质上就是将数据从一种形式转换到另外一种形式。 hibernate作为一个ORM框架的代表,在实现ORM中,就是靠hibernate的基本映射来实现的。 常用的hibernate的几种映射: 基本映射和关系映射。这篇博客主要介绍hibernate的基本映射。 Hibernate在实现ORM功能的时候主要用到的文件有: 1、 映射类(*.Java):它是描述数据库表的结构,表中的字段在类中被描述成属性,将来就可以实现把表中的记录映射成为该类的对象了。 2、映射文件(*.hbm.xml):它是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。 3、 hibernate核心配置文件(*.properties/*.cfg.xml):它指定hibernate的一些核心配置,包含与数据库连接时需要的连接信息,比如连接哪种数据库、登录数据库的用户名、登录密码以及连接字符串等。映射文件的地址信息也放在这里。 基本映射: java类映射成表: <strong><span style="font-size:18px;">package com

Hibernate(五)一对一单向关联映射

半腔热情 提交于 2020-01-02 04:31:57
上次的博文中 Hibernate从入门到精通(四)基本映射我们已经讲解了一下基本映射和相关概念,接下来 我们会讲稍微复杂点的映射——关系映射。 关系映射分类 关系映射即在基本映射的基础上处理 多个相关对象和多个相关表之间联系的映射。关系映射从对应关系的角度可以分为如下七种类型:一对一单向关联 一对一双向关联 一对多单向关联 多对一单向关联 一对多双向关联 多对多单向关联 多对多双向关联 接下来博客,我们会分别讲解一下这七种关系映射。今天我们只讲其中的一对一单向关联。 一对一 单向关联 一对一单向关联从对象的角度分析,即在一个对象(Person)中存在另一个对象(IdCard)的引 用,而在另一个对象(IdCard)中则不存在该对象(Person)的引用,这样就可以在加载该对象(Person)的时候找 到另一个对象(IdCard)。类结构图如下所示: 具体代码如下所示: public class Person { private int id; private String name; private IdCard idCard; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public

hibernate映射-继承映射

半城伤御伤魂 提交于 2020-01-02 04:31:17
(学习记录,错误不足之处,请您耐心指正^_^) hibernate映射-继承映射 对于面向对象的程序设计语言而言,继承和多态是两个最基本的概念。Hibernate的继承映射可以理解成持久化类之间的继承关系。例如:人和学生之间的关系。学生继承人,可以认为学生是一个特殊的人,如果对人进行查询,学生的实例也将被得到。 Hibernate支持3种继承映射策略: ①使用 subclass进行映射: 将域模型中的每一个实体对象映射到一个独立的表中,也就是说不用在关系数据模型中考虑域模型中的继承关系和多态。 ②使用 joined-subclass进行映射: 对于继承关系中的子类使用同一个表,这就需要在数据库表中增加额外的区分子类类型的字段。 ③使用 union-subclass进行映射: 域模型中的每一个类映射到一个表,通过关系数据模型中的外键来描述表之间的继承关系。这也就相当于按照域模型的结构来建立数据库中的 表,并通过外键来建立表之间的继承关系。 二、详解: 1. subclass元素的继承映射: 采用subclass的继承映射可以实现对于继承关系中的父类和子类使用同一张表,因为父类和子类的实例全部保存在同一个表中,因此需要在该表内增加一列,使用该列来区分每行记录到底是哪个类的实例---这个列被称为辨别者列(discriminator) 在这种映射策略下,使用 subclass 来映射子类

SSH深度历险(一)深入浅出Hibernate架构(一)-------映射解析——七种映射关系

☆樱花仙子☆ 提交于 2020-01-02 03:55:41
ORM,全称是( Object Relational Mapping ),即对象关系映射。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。Hibernate正是实现了这种思想,达到了方便开发人员以面向对象的思想来实现对数据库的操作。 Hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.java)、映射文件(*.hbm.xml)和数据库配置文件(*.properties/*.cfg.xml),它们各自的作用如下。 映射类 ( *.java ) :它是描述数据库表的结构,表中的字段在类中被描述成属性,将来就可以实现把表中的记录映射成为该类的对象了。 映射文件( *.hbm.xml ) :它是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。 数据库配置文件( *.properties/*.cfg.xml ) :它是指定与数据库连接时需要的连接信息,比如连接哪种数据库、登录数据库的用户名、登录密码以及连接字符串等。当然还可以把映射类的地址映射信息放在这里。 接下来让我们就一起走进 Hibernate 的七种映射关系: 1、 单向一对一关联映射(one-to-one): 两个对象之间一对的关系,例如:Person

Hibernate映射解析——七种映射关系

天大地大妈咪最大 提交于 2020-01-02 03:55:10
首先我们了解一个名词ORM,全称是( Object Relational Mapping ),即对象关系映射。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。Hibernate正是实现了这种思想,达到了方便开发人员以面向对象的思想来实现对数据库的操作。 Hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.java)、映射文件(*.hbm.xml)和数据库配置文件(*.properties/*.cfg.xml),它们各自的作用如下。 映射类 ( *.java ) :它是描述数据库表的结构,表中的字段在类中被描述成属性,将来就可以实现把表中的记录映射成为该类的对象了。 映射文件( *.hbm.xml ) :它是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。 数据库配置文件( *.properties/*.cfg.xml ) :它是指定与数据库连接时需要的连接信息,比如连接哪种数据库、登录数据库的用户名、登录密码以及连接字符串等。当然还可以把映射类的地址映射信息放在这里。 接下来让我们就一起走进 Hibernate 的七种映射关系: 1、 单向一对一关联映射(one-to-one): 两个对象之间一对的关系