实体类

Hibernate框架学习第一天

青春壹個敷衍的年華 提交于 2019-11-27 03:33:22
学习内容来自于视频资源: https://space.bilibili.com/80018130 1. 什么是Hibernate框架 (1)hibernate框架是应用在web三层结构中 dao层的矿架; (2)hibernate框架可以实现对数据库的crud操作,hibernate框架的底层代码就是jdbc; (3)hibernate框架是一个开源的轻量级的框架; (4)hibernate框架是基于orm思想开发的; 2. 什么是orm思想 (1)orm单词对应:object relational mapping,对象关系映射; (2)文字描述:让实体类中的属性和数据库表中的字段进行一一对应; 3. 配置实体类和数据表的映射关系 (1)使用xml配置文件实现映射关系; 第一步:创建xml格式的配置文件; 映射配置文件名和位置关系没有特殊要求(在Maven中,该文件需要放到src/main/resources路径下); 建议:在实体类所在包里面创建,实体类名称.hbm.xml; 第二步:引入xml中关于hibernate的约束; <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping

Hibernate配置文件详解

泪湿孤枕 提交于 2019-11-27 03:15:52
Hibernate映射配置文件 1, 映射配置文件名称和位置没有固定要求 2, 映射配置文件中,标签name属性值写实体类相关内容 (1) class标签name属性值是 实体类全路径 (2) id标签和property标签name属性值是 实体类属性名称 3 ,id标签和property标签, column 属性可以省略的。 (1) column 属性不写,值和name属性值一样的 4 , property标签也有type属性,含义:设置生成表字段的类型,自动对应类型 Hibernate核心配置文件 1,配置部分三要素 (1)数据库部分必须的 (2) hibernate 部分可选的 (3)映射文件必须的。 2,核心配置文件名称和位置固定的 (1)位置,src下面。 (2)名称: hibernate.cfg.xml(固定的) 来源: https://blog.csdn.net/qq_44891295/article/details/99308495

Mapping Persistence Classes

你说的曾经没有我的故事 提交于 2019-11-26 21:27:43
2010年5月10日开篇 前言: 为 了身体力行“一段时间内集中精力做一件事”,今天起将原来的学习安排进行调整,晚上的时间集中的学习Hibernate的设计思路和应用方法。将每天的学习成果整理以后发布到网上,作为备忘,同时也可以接受网友们的监督,以防自己错误的理解了相关知识而不自知。 学习的教材方面,我选的《Manning.Java.Persistence.with.Hibernate.Nov.2006》,这本书的作者中有一个是Hibernate的设计者 ,由他讲解的一些Hibernate的设计思路应该是更有说服力。在此之前,我已经看过前三章了,因此以下的系列随笔就从第四章开始。 学习的节奏呢,尝试使用Pomodoro技术。 学习的原则,就是2/8法则,以点带面。 本章的重点内容有两个: 一是讲解基本的OR映射选项,这些选项如何影响Hibernate加载和保存数据的行为,并讲解这些选项在JPA Annotation、JPA XML Descriptors、Hibernate Native XML Format三种格式下的表示方式; 二是在细粒度的对象模型中,对象的属性和内部子对象如何映射到关系数据模型上。 好了,下面开始本章的学习整理。 一、 首先,先来澄清两个概念,实体Entity Type和值类型Value Type。 在我感觉,作者在这张开篇就引入这两个概念的区分

mybatis框架学习-多表查询

守給你的承諾、 提交于 2019-11-26 18:58:22
啰里巴嗦 mybatis中的多表查询 表之间的关系有几种: 一对多 多对一 一对一 多对多 举例: 用户和订单就是一对多 订单和用户就是多对一 一个用户可以下多个订单 多个订单属于同一个用户 人和身份证号就是一对一 一个人只能有一个身份证号 一个身份证号只能属于一个人 老师和学生之间就是多对多 一个学生可以被多个老师教过 一个老师可以交多个学生 特例: 如果拿出每一个订单,他都只能属于一个用户。 所以Mybatis就把多对一看成了一对一。 mybatis中的多表查询: 示例:用户和账户 一个用户可以有多个账户 一个账户只能属于一个用户(多个账户也可以属于同一个用户) 步骤: 1、建立两张表:用户表,账户表 让用户表和账户表之间具备一对多的关系: 需要使用外键在账户表中添加 2、建立两个实体类:用户实体类和账户实体类 让用户和账户的实体类能体现出来一对多的关系 3、建立两个配置文件 用户的配置文件 账户的配置文件 4、实现配置: 当我们查询用户时,可以同时得到用户下所包含的账户信息 当我们查询账户时,可以同时得到账户的所属用户信息 示例:用户和角色 一个用户可以有多个角色 一个角色可以赋予多个用户 步骤: 1、建立两张表:用户表,角色表 让用户表和角色表具有多对多的关系。 需要使用中间表,中间表中包含各自的主键,在中间表中是外键。 2、建立两个实体类:用户实体类和角色实体类

Spring boot+Mysql+Spring data JPA一个Web的Demo

无人久伴 提交于 2019-11-26 17:24:37
1.概述 因为要用spring boot,最近刚刚学习.这是一个web项目的配合mysq+Hibernate+tomcat的简单示例demo,很容易在此基础上扩展成自己的项目. 2.创建初始spring demo 作者用的IDE是IDEA,新建一个工程,选择Spring Initalizer. 下一步的话由于作者需要部署到服务器上面,选择了war.不需要的话可以选择jar. 选择spring web+spring Data JPA+Mysql Driver. 然后完成即可,首次运行的话配置依赖需要一点时间,请耐心等待. 3.配置数据源 配置数据源分为两部分,一部分是建表与建用户,另一部分是在application.properties中配置的. (1)建库 create database test; 注意这里不用创建表了,因为Hibernate从实体类自动创建一个同名的表. (2)建用户 create user 'db'@'%' identified by 'xxxxx'; (3)用户授权 grant all on test.* to 'db'@'%'; 这里建议授权all,因为后面Hibernate会用到建表权限,不能仅仅授权增删查改. (4)配置application.properties 配置四个属性: spring.jpa.hibernate.ddl-auto=

01_mybatis第一个应用程序

早过忘川 提交于 2019-11-26 17:19:58
1、mybatis简介   a):MyBatis 本是 apache 的一个开源项目 iBatis , 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的 持久层 框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)   b):MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。   c):每个MyBatis应用程序主要都是使用Sql Session Factory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。

hibernate1+基础入门

こ雲淡風輕ζ 提交于 2019-11-26 16:17:34
第1章 hibernate 和 ORM 的概念部分 1.1 Hibrenate 概述 Hibernate是一种 Java 语言下的 对象关系映射 解决方案。它是使用 GNU宽通用公共许可证 发行的 自由 、 开源 的软件。它为 面向对象 的 领域模型 到传统的 关系型数据库 的映射,提供了一个使用方便的 持久化框架 。 Hibernate框架是Java持久层框架之一,它的设计目标是将软件开发人员从大量相同的 数据持久层 相关编程工作中解放出来。无论是从设计草案还是从一个 遗留 数据库开始,开发人员都可以采用Hibernate。Hibernate不仅负责从Java 类 到数据库表的映射(还包括从Java数据类型到SQL数据类型的映射),还提供了面向对象的数据查询检索机制,从而极大地缩短了手动处理 SQL 和 JDBC 上的开发时间,由于它具有简单易学、灵活性强、扩展性强等特点,能够大大地简化程序的代码量,提高工作效率,因此受到广大开发人员的喜爱。 Hibernate是一个开放源代码的ORM框架,它对JDBC进行了轻量级的对象封装,使得Java开发人员可以使用面向对象的编程思想来操作数据库。 1.2 ORM 概述 Object Relation Mapping 对象关系映射。 对象 -关系映射(OBJECT/RELATIONALMAPPING,简称ORM),是随着面向对象的

springboot Could not resolve placeholder

余生长醉 提交于 2019-11-26 10:21:25
3、SpringBoot注解把配置文件自动映射到属性和实体类实战 简介:讲解使用@value注解配置文件自动映射到属性和实体类 1、配置文件加载 方式一 1、Controller上面配置 @PropertySource({"classpath:resource.properties"}) 2、增加属性 @Value("${test.name}") private String name; 方式二:实体类配置文件 步骤: 1、添加 @Component 注解; 2、使用 @PropertySource 注解指定配置文件位置; 3、使用 @ConfigurationProperties 注解,设置相关属性; 4、必须 通过注入IOC对象Resource 进来 , 才能在类中使用获取的配置文件值。 @Autowired private ServerSettings serverSettings; 例子: @Configuration @ConfigurationProperties(prefix="test") @PropertySource(value="classpath:resource.properties") public class ServerConstant { 常见问题: 1、配置文件注入失败,Could not resolve placeholder 解决

Learning Entity Framework - EDM

孤人 提交于 2019-11-26 09:02:47
EDM就是Entity Data Model,是EF的主要操作对象。在我理解,EDM是对数据库表的持久化和实体映射。M$提供的两个ORM技术,Linq2SQL和EF,目前大家还是用自底向上(先建表后映射实体类)的设计方法。其实我也是比较倾向于这么做的,画ER图然后往下layout的操作,我不是很感冒。。。。 在Visual Studio里创建一个EDM是非常方便的,提供了一个专门的designer,这个方法在网上也很常见,基本上也没有什么特别需要设置的地方。在创建EDM完毕之后,还是有个比较重要的事情要做,那就是把Entity Set Name改为复数形式,以及把one - many这种关系的one端的navigation properties名字也改为复数,这在后面的coding中会带来相当大的便利。 在VS的解决方案管理器中,打开EDM的方法似乎只有设计器,如果想看一看它的raw编码,可以右键->Open with->XML Editor。据说看懂这个玩意能够带来升级的EF理念,who knows.... 这其中的SSDL、CSDL和C-S Mapping的内容都是极端重要的。 EDM中也会有数据库视图,这些视图都是只读的,即没有Insert、Update和Delete命令。 EF会自动为model生成一些实体类,这些实体类就是向model做查询用的。 OK

mybatis学习-----day02

不问归期 提交于 2019-11-26 07:21:28
1.单元测试JUnitTest 创建一个单元测试类,单元测试类与其他的方法区别就是只有一个Class ClassName{} 在方法里面写业务逻辑 在写测试方法的时候要注意的是,不能有关键字修饰只能有public ,也没有返回值,只有void 单元测试类的格式如下: @Test public void functionName(){ } 在运行的时候run as---->JUnit Test 2.Mybatis A.在Mybatis配置文件中各种标签的顺序 鼠标放在configuration标签上既可以查看 Content Model : (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?) properties读取properties配置文件,比如mysql的配置,当我们在配置这个属性的时候,在下面的环境的属性配置中就不用写具体的 value,只需要指定为键名${keyName} typeAliases类的名字(从初始包到具体实体类)别名的配置, typeAlias子标签中的