2019独角兽企业重金招聘Python工程师标准>>>

一、框架引入

1.创建项目。

2.下载官方jar包。hibernate-distribution-3.5.6-Final

3.导入需要的包。

D:\jar\hibernate\hibernate-distribution-3.5.6-Final\hibernate3.jar
D:\jar\hibernate\hibernate-distribution-3.5.6-Final\lib\required\*
D:\jar\hibernate\hibernate-distribution-3.5.6-Final\lib\jpa\hibernate-jpa-2.0-api-1.0.0.Final.jar

4.运行项目发现有错。

java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder

导入另一个包

D:\jar\slf4j-nop-1.5.8.jar

注意此时的包必须与 slf4j-api-1.5.8.jar 版本相对应。

二、初步使用

1.many-to-one 多对一关联。

对于外键关联,存在多个外键表实体对应一个主键表实体。在项目中就是一对多关联。例:

①汽车品牌表Brand对应的实体类:

public class Brand {private int brandId;private String name;private int bIndex;private String memo;public int getBrandId() {return brandId;}public void setBrandId(int brandId) {this.brandId = brandId;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getbIndex() {return bIndex;}public void setbIndex(int bIndex) {this.bIndex = bIndex;}public String getMemo() {return memo;}public void setMemo(String memo) {this.memo = memo;}
}

②汽车系列表Series对应的实体类:

public class Series {private int seriesId;private String name;private int sIndex;private String memo;private Brand brand;public int getSeriesId() {return seriesId;}public void setSeriesId(int seriesId) {this.seriesId = seriesId;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getsIndex() {return sIndex;}public void setsIndex(int sIndex) {this.sIndex = sIndex;}public String getMemo() {return memo;}public void setMemo(String memo) {this.memo = memo;}public Brand getBrand() {return brand;}public void setBrand(Brand brand) {this.brand = brand;}}

实际关系是一个品牌的汽车包含多个系列,因此存在多个系列从属于一个品牌的情况。故配置Series.hbm.xml如下:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.server.doman"><class name="Series"><id name="seriesId" column="series_id" type="int"><generator class="increment" /></id><!-- <property name="brandId" column="brand_id" type="int"></property> --><property name="name" column="name" type="string"></property><property name="sIndex" column="s_index" type="int"></property><property name="memo" column="memo" type="string"></property><!-- 多个系列可能从属于一个品牌 name对应Series类的brand属性,column对应Brand表的主键列--><many-to-one name="brand" class="com.server.doman.Brand" column="Brand_id"/></class></hibernate-mapping>

注意:以上在Series类中有了brand类就不用添该表中的brand_id,否则就会报错

Column 'Brand_id' specified twice

列Brand_id 实例化两次。

三、延迟加载,连接抓取

3.1多对一

<set order-by="csid" name="categorySeconds" fetch="join">   <key column="cid"/><one-to-many class="cn.itcast.shop.categorysecond.vo.CategorySecond"/>
</set>

3.2一对多

<many-to-one name="category" fetch="join" class="cn.itcast.shop.category.vo.Category" column="cid"/>

3.3获取数据

String hql = "from Category";
List<Category> list = this.getHibernateTemplate().loadAll(Category.class);

总结:在映射文档中定义抓取策略时,只有通过get或load方法才生效。

转载于:https://my.oschina.net/u/2245926/blog/397088

hibernate 框架学习笔记相关推荐

  1. Hibernate框架--学习笔记(上):hibernate项目的搭建和常用接口方法、对象的使用

    一.什么是Hibernate框架: 1.Hibernate是一个操作数据库的框架,实现了对JDBC的封装: 2.Hibernate是一个ORM(对象关系映射)框架,我们在写程序时 ,用的是面向对象的方 ...

  2. hibernate框架学习笔记2:配置文件详解

    实体类: package domain;public class Customer {private Long cust_id;private String cust_name;private Str ...

  3. hibernate框架学习笔记11:Criteria查询详解

    创建实体类对象: package domain;import java.util.HashSet; import java.util.Set;//客户实体 public class Customer ...

  4. Hibernate框架--学习笔记(下):hibernate的查询方式、多表查询、检索策略、批量抓取

    一.hibernate的查询方式: 主要有五种:对象导航查询:OID查询:hql查询:QBC查询:本地sql查询. 1.对象导航查询:根据id查询某个客户,再查询这个客户里面所有的联系人. 2.OID ...

  5. Hibernate框架--学习笔记(中):一对多配置、多对多配置

    一.一对多: 一个客户可以有多个联系人,一个联系人只能属于一个客户. 1.一对多映射配置: (1)创建实体类 //客户类:一个客户可以有多个联系人,一个联系人只能属于一个客户 public class ...

  6. SpringMVC框架--学习笔记(上)

    1.SpringMVC入门程序: (1)导入jar包:spring核心jar包.spring-webmvc整合Jar包 (2)配置前端控制器:web.xml文件中 <?xml version=& ...

  7. mybatis框架--学习笔记(上)

    使用JDBC操作数据库的问题总结: (1)数据库连接,使用时创建,不使用时立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能. 设想:使用数据库连接池管理数据库连接. (2) ...

  8. Spring框架学习笔记(三)(AOP,事务管理)

    Spring框架学习笔记(三) 九.AOP 9.1 AOP的注解配置 (1) 新建计算器核心功能(模拟:不能在改动核心代码) (2) 建立一个普通的Java类写增强代码(面向切面编程),使用Sprin ...

  9. 27Vert.X框架学习笔记

    vert.x框架学习笔记 文章目录 1 Vert.x简明介绍 1.1 Vert.x能干什么 1.2 Vert.x快速体验 1.3 Vert.x的简单介绍 1.4 Vert.x的一些优势 1.4.1 异 ...

  10. SpringMVC框架--学习笔记(下)

    接上篇:SpirngMVC框架--学习笔记(上):https://blog.csdn.net/a745233700/article/details/81038382 17.全局异常处理: 系统中异常包 ...

最新文章

  1. 手把手教你如何做建模竞赛(baseline代码讲解)
  2. 在Visual Studio中使用序列图描述对象之间的互动
  3. 做人不能太忽悠 评淘宝团购 续集
  4. Kafka关键参数设置
  5. python基础函数图_Python基础:函数
  6. 前端:JS操作数字类库
  7. asp.net的MessageBox
  8. python爬虫今日头条街拍美图开发背景_【Python3网络爬虫开发实战】6.4-分析Ajax爬取今日头条街拍美图...
  9. 华为荣耀9x怎么解账户锁_跟华为毫无关系的荣耀为何不值得买?
  10. WSDL2Java详细使用说明【官方最全说明】
  11. java 生成拼音_java 根据汉字生成拼音全拼或拼音首字母
  12. 人工智能贬为人工智障,揭下“伪装”的智能产品
  13. python点到直线的距离_点到直线距离公式的几种推导
  14. Droid razr xt910 tegra2 地牢猎人2 dungeon hunter2
  15. jQuery菜鸟教程01
  16. [网络安全学习篇60]:文件上传
  17. IOS9禁用UIWebView的放大镜
  18. 生地中考总结(也许是对人生的感慨)
  19. PNG 图片压缩原理解析
  20. SDIO wifi Marvell8801/Marvell88w8801 介绍(五) ---- Marvell8801/Marvell88w8801 TLV

热门文章

  1. vue要求更新3.0-》使用axios的时候出现错误
  2. Luogu2481 SDOI2010 代码拍卖会 DP、组合
  3. 循环控制-链表删除结点
  4. 2、Zookeeper集群搭建、命令行Client操作
  5. c#中sqlhelper类的编写(一)
  6. Pausing and Resuming an Activity
  7. [Oracle 9i] Case Expression and Case Statement in 9i
  8. BZOJ - 4568 幸运数字
  9. [CTSC2018]假面(概率DP)
  10. oracle更改用户名的问题