前面的相关文章中,我们已经介绍了使用XML配置文件映射实体类及其各种类型的属性的相关知识.然而不论是时代的潮流还是臃肿繁杂的配置代码告诉我们,注解配置才是更人性化的设计,于是学习了基本的映射实体类的基本注解,此处做一点总结,后续文章将陆续更新使用注解的方式管理配置各种映射关联关系.本篇主要涉及以下内容: 使用最基本的注解映射一个实体类 使用注解映射属性 使用注解映射主键 其他特殊类型的属性映射 一.使用最基本的注解映射一个实体类 @Entity @Table(name = "userI…
     上篇文章我们通过注解对映射了单个实体类,但是具体项目中往往实体类之间又是相互关联的,本篇文章就是从实体类之间存在的不同关联角度,具体学习下如何映射他们之间的关联,主要涉及内容如下: 单向的一对一关联关系映射 单向的多对一的关联关系映射 单向的一对多的关联关系映射 单向的多对多的关联关系映射 双向的一对一关联关系映射 双向的一对多关联关系映射 双向的多对多关联关系映射 一.单向的一对一关联关系映射 首先,我们需要知道什么样的两张表具有一对一的关联关系. 这就是一个典型的单向的一对一的关联…
一.JPA概述以及它和Hibernate之间的关系 1.1.Hibernate 概述 JPA Java Persistence API,是EJB3规范中负责对象持久化的应用程序编程接口(ORM接口),它定义一系列的注释.这些注释大体可分为:类级别注释.方法级别注释.字段级别注释.给实体类添加适当的注释可以在程序运行时告诉Hibernate如何将一个实体类保存到数据库中以及如何将数据以对象的形式从数据库中读取出来. 目前有两种注释方案可以确定对象与表格之间的对应关系:一种是注释实体类的属性字段(字…
缓存不止存在与程序中,电脑硬件乃至于生活中都存在缓存 目的:提高效率 比如IO流读写字节,如果没有缓存,读一字节写一字节,效率低下 hibernate中的一级缓存:提高操作数据库的效率 示例: 抽取的工具类 package utils; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUt…
数据库mysql: 1.一对一 person50表password50表是一对一的关系: password50表中有外键 person_id person实体类: package com.c50.entity; import java.util.Date; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persi…
一.注解类 1. @Table 声明了该实体bean映射指定的表(table),目录(catalog)和schema名字 2. @Id 声明了该实体bean的标识属性(对应表中的主键). 3. @Column 声明了属性到列的映射.该注解有如下的属性: name 可选,列名(默认值是属性名) unique 可选,是否在该列上设置唯一约束(默认值false) nullable 可选,是否设置该列的值可以为空(默认值false) insertable 可选,该列是否作为生成的insert语句中的一个…
一.安装hibernate tools插件 1.在线安装 通过Eclipse的Help->Install New Software 在线安装插件,插件连接为: eclipse helios(3.6)版 添加如下地址:http://download.jboss.org/jbosstools/updates/stable/helios/ 选择性安装:hibernate tools在All Jboss tools节点下面 eclipse indigo(3.7)版 添加如下地址:http://downl…
以MySQL数据库为例,请在数据库里面建好对应的表. 1.配置数据库链接 打开Myelipse Database Explorer视图 Window-->Open Perspective-->MyEclipse Database Explorer 在DB Browser栏中右键新建连接:New... 填写相关信息:记得导入包,否则会报错 Driver name:在MyEclipse里面显示的名称: Connection URL:链接数据库的URL,这里以mysql为例: User name:数…
表名的映射 //代表此类参与ORM映射,此注解必须要有 @Entity //代表user这个类映射了一个表user50,如果表名和类名一样,此注解可以省略 @Table(name="user50") public class User { 主键的映射 //主键,此注解必须要有 @Id //数据库表中主键列名为id,如果实体类属性名和列名相同,此注解可以省略 @Column(name="id") //主键的维护策略 @GenericGenerator(name=&qu…
因为一直报实体类空异常,去网上查了资料只查到了并没有查到数据库空值时不给实体类赋值的属性 异常 org.hibernate.InvalidMappingException: Could not parse mapping document from resource cn/pojo/EmpDao.xml at org.hibernate.cfg.Configuration.addResource(Configuration.java:) at org.hibernate.cfg.Configur…
一.Hibernate中的实体规则 1.实体类创建的注意事项 1)持久化类提供无参数构造,因为在Hibernate的底层需要使用反射生成类的实例. 2)成员变量私有,提供公有的get和set方法,需提供属性(属性规则就是同时存在get和set方法,否则只能叫字段),因为在Hibernate底层会将查询到的数据进行封装. 3)持久化类中的属性应尽量使用包装类型(例如用Long代替long),因为包装类和基本数据类型的默认值不同,包装类的类型语义描述更加清晰而基本数据类型不容易描述(例如考试分数为D…
此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblogs.com/wkrbky/p/5912810.html 一.Hibernate(数据层)的搭建: 实现流程 二.Spring(注入实例)的使用: 实现流程 三.Struts2(MVC)的搭建: 实现流程 这里注意一点问题: Struts2与Hibernate在一起搭建,antlr包,有冲突.MyE…
一.Hibernate持久化类的编写规范 1.什么是持久化类 Hibernate是持久层的ORM影射框架,专注于数据的持久化工作.所谓持久化,就是将内存中的数据永久存储到关系型数据库中.那么知道了什么是持久化,什么又是持久化类呢?其实所谓的持久化类指的是一个Java类与数据库表建立了映射关系,那么这个类称为是持寺久化类.其实可以简单的理解为持久化类就是一个Java类有了一个映射文件与数据库的表建立了关系.那么我们在编写持久化类的时候有哪些要求呢?接下来我们来看一下: 2.持久化类的编写规则(应该…
一.表关系的分析 Hibernate框架实现了ORM的思想,将关系数据库中表的数据映射成对象,使开发人员把对数据库的操作转化为对对象的操作,Hibernate的关联关系映射主要包括多表的映射配置.数据的增加.删除等. 数据库中多表之间存在着三种关系,也就是系统设计中的三种实体关系.如图所示. 从图可以看出,系统设计的三种实体关系分别为:多对多.一对多和一对一关系.在数据库中实体表之间的关系映射是采用外键来描述的,具体如下. 1.1 表与表的三种关系 ●  一对多 建表原则:再多的一方创建外键指向…
hibernate框架技术重点学习笔记 1.针对不同的数据库,有不同的数据库实现类,使其符号对应的数据库? mysqlDaoImpl oracleDaoImpl ... ... 2.对象和表记录的转换存在着转换问题->orm,对象和关系的一种映射 3.框架:解决一种问题的方案集合! 4..配置文件 Xxx.cfg.xml  主配置文件 xxx.hbm.xml映射文件: 映射基础 普通属性 主键 集合属性 关联关系:一对多  多对一 多对多  一对一 继承结构 5.其他特性:数据库连接池  懒加载…
Configuration对象: package api; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.junit.Test; //学习Configuration对象 // Configuration功能: 配置加载类.用于加载主配置,orm元数据加载 public class Demo { @Test public void fun1(){ //1 创建,调用空参…
实体类: package domain; public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private String cust_level; private String cust_linkman; private String cust_phone; private String c…
hibernate框架属于dao层,类似dbutils的作用,是一款ORM(对象关系映射)操作 使用hibernate框架好处是:操作数据库不需要写SQL语句,使用面向对象的方式完成 这里使用eclipse工具搭建: 官网下载:https://sourceforge.net/projects/hibernate/files/hibernate-orm/5.0.7.Final/ 下载.zip文件后解压: lib文件夹下的required文件夹内的jar包为必须包: 另外还需要MySQL的驱动包:…
一.JavaEE开发三层结构和三大框架的对应关系: Struts2框架 -> 表现层 web层(MVC是表现层的设计模型) 业务层 service层 Hibernate框架 -> 持久层 dao层 Spring框架 ->综合类框架 二.持久层技术有哪些: JDBC:操作数据库最底层的方式 优势:底层.效率高 弊端:编写代码时比较繁琐,尤其是封装结果集 DBUtils:基于JDBC进行了简单封装 优势:封装结果集操作变得简单,并且仍然是自己编写SQL语句,相对效率没有太大影响 弊端:要求实…
什么是hibernate框架? 1.它是应用在javaee 三层架构中的dao层 它的底层就是JDBC 它对JDBC进行了封装,好处就是不用写jdbc的代码,和sql语句,它是一个开源的轻量级框架,现在使用hibernate5.x版本 入门使用: 1. 导入hibernate所需要的jar文件 2.创建实体类  (User类 例:com.bin.User) 3.在com.bin.User 这个包中 创建相对应的xml文件 (User.hbm.xml) <?xml version="1.0&…
一.框架是什么 1.框架是用来提高开发效率的 2.封装好了一些功能,我们需要使用这些功能时,调用即可,不需要手动实现 3.框架可以理解成一个半成品的项目,只要懂得如何驾驭这些功能即可 二.hibernate框架是什么 三.hibernate 1.操作数据库的时候,可以以面向对象的方式来完成,不需要书写SQL语句 2.hibernate是一款orm框架 1)orm:object relating mapping.对象关系映射 2) 3)orm分4级 hibernate属于4级:完全面向对象操作数据…
  步骤一: window-->open Perspective-->MyEclipse Java Persistence 进行了上面的 操作后会出现一个视图DB Brower:MyEclipse Derby, 点击右键新建new一个在出现的面板Database Driver中,Driver template中选择Oracle(ThinDriver)这里以oracle软件为例,如果是mysql就选mysql的 driver name可以随意取,Connection URL就写平常的JDBC中的…
1.实现功能 我们已经对注解有了基本的认识,知道了如何自定义注解,如何使用和最基本的处理注解. 本篇主要介绍,如何使用运行时级别的注解,配合反射来自动生成建表的sql语句.如下例: 我们有实体类Student,并添加相应的注解 @Table.@Column,最终可以获取到创建对应表的sql语句 @Table(name = "t_student") public class Student { @Column(name = "c_name") public Strin…
     上篇我们介绍了Spring中有关高级依赖关系配置的内容,也可以调用任意方法的返回值作为属性注入的值,它解决了Spring配置文件的动态性不足的缺点.而本篇,我们将介绍Spring的又一大核心思想,AOP,也就是面向切面编程.这是对面向对象编程的一个扩展,即便问世不长,但是已经成为当下最流行的编程思想之一.本篇主要涉及以下内容: Spring中的后置处理器 "零配置"实现Bean的配置 Spring AOP 一.后置处理器 为了实现良好的扩展性,Spring允许我们扩展它的IO…
创建实体类对象: package domain; import java.util.HashSet; import java.util.Set; //客户实体 public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private String cust_level; private Strin…
HQL语句中不可以出现与表有关的内容,而是对象的属性 实体类(注意配置文件): package domain; import java.util.HashSet; import java.util.Set; //客户实体 public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private S…
MySQL的事务.JDBC事务操作: 详细见这篇文章:比较详细 http://www.cnblogs.com/xuyiqing/p/8430214.html 如何在hibernate中配置隔离级别: 再核心配置文件中: <!-- 指定hibernate操作数据库时的隔离级别 #hibernate.connection.isolation 1|2|4|8 0001 1 读未提交 0010 2 读已提交 0100 4 可重复读 1000 8 串行化 --> <property name=&q…
ConfigurationSessionFactorySessionTransactionQueryCriteria Configuration Configuration对象用于封装Hibernate的配置信息,在Hibernate框架启动后,需要装载对应的配置文件.Hibernate的配置文件有两种格式hibernate.properties文件(早期格式)hibernate.cfg.xml文件(常用格式) 使用hibernate.properties加载配置 Configuration c…
  Hibernate 是一个 JDO( Java Data Objects)工具.它的工作原理是通过文件把值对象(Java对象)和 数据库表之间建立起一个映射关系,还提供数据查询和获取数据的方法.   配置 Hibernate 框架 配置 Hibernate 框架,需要三个准备,七个步骤. 准备一.导入 Hibernate 库 准备二.添加配置文件 hibernate.cfg.xml 准备三.添加映射文件 UserInfo.hbm.xml 步骤一.创建 Configuration 步骤二.创建…
一.Configuration对象 功能:配置加载类,用于加载主配置,orm元数据加载. //1.创建,调用空参构造(还没有读配置文件) Configuration conf=new Configuration(); //2.读取指令配置文件=>空参加载方法,加载src下的hibernate.cfg.xml文件 conf.configure(); //3.读取指定orm元数据(扩展),如果主配置中已经引入映射配置,不需要手动加载 //conf.addResource(resourceName);…