HIBERNATE - 技术教程文章

MyEclipse中删除对Struts、hibernate、spring的支持

注:本文转载自:http://blog.csdn.net/j04110414/article/details/9900033,版权归其所有一、首先是撤消MyEclipse对Struts的支持    关键的步骤是两个,一是把struts-config.xml文件删除,二是修改.project文件。第一步无需赘述,在左侧的导航栏里找到文件delete即可,相信学到了部署struts的各位都能做到。删除config文件是主要的,否则重新部署struts时MyEclipse会瘫痪。其他由MyEclipse自动生成的struts相关文件可以不去理会...

Spring + Struts + Hibernate 简单封装通用接口【代码】

1、BaseDaopublicinterface BaseDao<T> {/*** 获取符合条件的记录数* @param filter* @param sortName* @param sortOrder* @return int*/publicint findCount(String filter, String sortName, String sortOrder);/*** 获取分页数据* @param filter* @param sortName* @param sortOrder* @param startSize* @param pageSize* @return List<T>*/public List<T> findGrid(String filter, String sortName, String sortOrder, int sta...

hibernate框架学习之多表查询helloworld【代码】

package cn.itcast.h3.hql;import java.util.List;import org.hibernate.Query; import org.hibernate.Session;import cn.itcast.h3.hql.vo.StudentModel; import cn.itcast.h3.hql.vo.TeacherModel; import cn.itcast.h3.util.HibernateUtil;//多表查询publicclass MulHQLApp {//内连接void testMulInner(){Session s = HibernateUtil.getSession();Query q = s.createQuery("from TeacherModel tm inner join tm.students s");Li...

hibernate 环境快速搭建【图】

?时间长了对hibernate的基础使用有点生疏,于是决定重新温习一下。一.登录hibernate官方,下载hibernate相关jar包。??将下载的压缩包解压:在该hibernate-release-4.2.20.Final\lib\required 路径下的找到hibernate所需要的jar包,将该目录下所有jar包加入工程。二.hibernate配置文件。配置文件可以在快速开始文档的工程里找到 参考路径:hibernate-release-4.2.20.Final\documentation\quickstart\en-US\html\files,在该文件下有...

Hibernate3和4版本的不同

hibernate4的改动较大只有spring3.1以上版本能够支持,Spring3.1取消了HibernateTemplate,因为Hibernate4的事务管理已经很好了,不用Spring再扩展了。这里简单介绍了hibernate4相对于hibernate3配置时出现的错误,只列举了问题和解决方法,详细原理如果大家感兴趣还是去自己搜吧,网上很多。1、Spring3.1去掉了HibernateDaoSupport类。hibernate4需要通过getCurrentSession()获取session。并且设置 <prop key="hibernate.curre...

Intellij Idea 15 下新建 Hibernate 项目以及如何添加配置【代码】【图】

1.说明:Idea 下,项目对应于 Eclipse 下的 workspace,Module 对应于 Eclipse 下的项目。Idea 下,新添加的项目既可以单独作为一个 Project,也可以作为一个 Project 下的 Module。2.本篇文章介绍内容:(1)如何在 Project 新建 Hibernate Module。(2)如何添加 jar 包到 Module 下。(3)如何添加 hibernate.cfg.xml,以及如何自定义模板。(4)如何添加 Entity.hbm.xml 文件,以及自动生成实体。3.在最开始前,添加 Hibernate...

Hibernate结合JPA编写通用泛型多条件查询【代码】【图】

项目中使用Hibernate和JPA对数据库对象进行实例化,但是生成的方法不支持多条件查询。而如果针对每一个数据库对象进行多条件查询编码,则会变得很麻烦,而且一旦以后发生表结构发生变化,这些方法可能还需要进行重新编码。所以考虑编写一个方法可以对数据库对象进行多条件查询,并返回泛型对象,这样就可以方便使用。具体实现思路如下:第一步:编写数据库查询参数对象,此部分包含两个,一个是查询实体名称(QueryCondition.java)...

hibernate笔记(四)

目标:一、hibernate查询二、hibernate对连接池的支持三、二级缓存 一、hibernate查询 1. 查询概述1) Get/load主键查询2) 对象导航查询3) HQL查询, Hibernate Query language hibernate 提供的面向对象的查询语言。4) Criteria 查询, 完全面向对象的查询(Query By Criteria ,QBC)5) SQLQuery, 本地SQL查询缺点:不能跨数据库平台: 如果改了数据库,sql语句有可能要改使用场景: 对于复杂sql,hql实现...

Hibernate简单用法解析【代码】【图】

一、hibernate需要的配置文件首先hibernate中有两种xml文件。.cfg,xml文件负责配置连接数据库的信息、指定映射类、指定hbm映射文件。.hbm.xml文件负责配置持久化类和数据库表的映射关系。 其次每一个表都有一个对应的“持久化类”。因为hibernate操作数据库是面向对象的,所以当我们要操作某张表时,实际上操作的是该表所对应的持久化类。 二、操作hibernate在hibernate中,由session类来具体的操作数据库(如增删查改相关持久化类...

mybatis和hibernate的区别

mybatis和hibernate一样是个orm数据库框架。随着使用熟练度的增加,发现它与hibernate区别是非常大的,结合至今为止的经验,总结出以下几点:1. hibernate是全自动,而mybatis是半自动。hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql。而mybatis仅有基本的字段映射,对象数据以及对象实际关系仍然需要通过手写sql来实现和管理。2. hibernate数据库移植性远大于myb...

Hibernate关系映射

本文为博主原创,允许转载,但请声明原文地址:http://www.coselding.cn/blog/8/8-140.html1、关系映射: A. 一对一:主键关联:主键关联 单向:外键关联 双向:外键关联或中间表 联合主键: @OneToOne:一对一关联关系,注解在对方类引用的get方法上 @JoinColumn:设置关联的外键名,name属性 @PrimaryKeyJoinColumn:设置主键关联 @JoinColumns设置联合主键 xml使用<many-to-one/>标签,添加...

spring(一)--spring/springmvc/spring+hibernate(mybatis)配置文件【代码】

这篇文章用来总结一下spring,springmvc,spring+mybatis,spring+hibernate的配置文件1.web.xml要使用spring,必须在web.xml中定义分发器等信息,基本的配置信息如下:<?xml version="1.0" encoding= "UTF-8"?><web-appversion= "3.0"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-...

Hibernate延迟加载问题【图】

Hibernate延迟加载是项目中非常常用的技术。通过使用Hibernate延迟加载机制可以在加载数据是不必加载全部数据,而是只加载我们需要的那部分,其余部分在需要使用时才从数据库装载,以此来减少数据量提高系统性能。 Hibernate延迟加载大致可以分为两类,一类是延迟属性加载,另一类是延迟关联实体加载。属性加载 属性加载又可以分为两类,一类是集合属性,一类是非集合属性。关联加载 关联加载也分两种情况,一种是多对一,另一种...

Hibernate-配置【代码】【图】

什么是持久化技术持久化技术。就是把数据保存到可永久保存的存储设备中。持久化的主要应用是将内存中的对象存储在关系型数据库中。什么是ORM对象关系映射。通过ORM我们可以通过类的方式去操作数据库,而不用原生的SQL语句。通过把表映射成类,把行当作实例,把字段当作属性。ORM在执行对象操作的时候最终还是会把对应的操作转换为数据库原生语句。新建工程步骤导入相关的包创建orm类创建Hibernate核心配置文件创建映射关系创建类执...

Hibernate框架基础【代码】

ORM概念O, Object 对象 R, Realtion 关系 (关系型数据库: MySQL, Oracle…) M,Mapping 映射ORM, 对象关系映射!ORM, 解决什么问题?存储: 能否把对象的数据直接保存到数据库? 获取: 能否直接从数据库拿到一个对象? 想做到上面2点,必须要有映射!总结:Hibernate与ORM的关系?Hibernate是ORM的实现! Hibernate 案例搭建一个Hibernate环境,开发步骤: 1. 下载源码版本:hibernate-distribution-3.6.0.Final 2. 引入...

Hibernate入门(二)之hibernate的内部执行过程,主键生成器,对象的状态【代码】【图】

内部执行过程主键生成器Identity(常用)1、表必须支持自动增长机制 2、数据库生成主键 3、不需要在程序中设置主键 Assigned必须通过程序的方式给值才可以 person.setId(xxx); 一般用于开发的时候测试使用 Increment(常用)1、如果选择该主键的生成方式,则必须是数字类型 2、先获取主键的最大值,在最大值的基础上加1,形成新的主键 3、效率比较低,因为这种方式会先select表中最大的主键值 4、主键的生成是由hibernate内部实现的...

hibernate基本配置文件【代码】

1. hibernate.cfg.xml  hibernate与数据库的基本连接信息。  在hibernate运行的初始阶段,其配置信息被加载到Configuration和SessionFactory实例。2. *.hbm.xml  hibernate基本映射信息,即每一个实体类与其对应的数据库表的关联信息。  通过xml元素的配置将持久化类与关系数据库之间建立起映射[1]。  在hibernate运行的初始阶段,其配置信息通过hibernate.cfg.xml-mapping节点[2]加载到Configuration和SessoinFactory...

Hibernate 自动更新表出错 More than one table found in namespace

报错:Caused by: org.hibernate.tool.schema.extract.spi.SchemaExtractionException: More than one table found in namespace (, ) : data_source可能原因:在其他catalog schmea 下存在同名表或表名符合格式data_source(如data1source)。若是在其他catalog schmea 下存在同名表,可配置默认catalog 和schema。hibernate 中配置参数default_catalog、default_schema,根据数据库是否支持catalog、schema 进行配置。spring dat...

[Hibernate Search] (3) 基础查询【代码】【图】

基础查询 目前我们只用到了基于关键字的查询,实际上Hibenrate Search DSL还提供了其它的查询方式,下面我们就来一探究竟。映射API和查询API 对于映射API,我们可以通过使用Hibernate提供的注解来完成映射工作,同时我们也可以使用JPA提供的注解来完成。类似的,对于查询API,我们也可以从Hibernate和JPA提供的查询API中进行选择。每种方式都有它的优点和缺点,比如当我们使用Hibernate提供的查询API时,意味着可以使用更多的特性,...

Hibernate4.x之映射文件【代码】

POJO类和数据库的映射文件*.hbm.xml   POJO类和关系数据库之间的映射可以用一个XML文档来定义   通过POJO类的数据库映射文件,Hibernate可以理解持久化类和数据库表之间的对应关系,也可以理解持久化类属性与数据库表列之间的对应关系   在运行时Hibernate将根据这个映射文件来生成各种SQL语句   映射文件的扩展名为.hbm.xml映射文件说明   hibernate-mapping   -类层次:class     主键:id     基本类型...

Struts和Hibernate使用总结

1 struts.xml重定向时报错 action cannot be found in the namespace/ http://blog.csdn.net/greetturing/article/details/656298232 struts2文件上传 https://www.cnblogs.com/justlove/p/6817276.html https://www.cnblogs.com/wkrbky/p/5904787.html3 使用通配符配置action https://www.cnblogs.com/mrcharles/p/4731696.html 4 Hibernate中的merge使用详情解说 ht...

SpringMVC+hibernate整合小例子,用户的增删查改【图】

SpringMVC+hibernate整合小例子,用户的增删查改对于使用框架写项目,我的第一反应的把所有需要的jar文件引入。因为我用的是JDK1.8,当使用spring3.2 注解的时候会出现问题,所以最终使用的spring4.0. hibernate使用的版本为4.0 。至于一些依赖包的版本就是看别人的资料拿的。然后看下整体的项目结构第一步写的是web.xml配置文件,当然有写东西是后面加上去的,不是一步到位的,比如说控制post方式的乱码、以及无法时候JS文件等一...

Hibernate-二级缓存策略

二级缓存的策略 当多个并发的事务同时访问持久化层的缓存中的相同数据时,会引起并发问题,必须采用必要的事务隔离措施。 在进程范围或集群范围的缓存,即第二级缓存,会出现并发问题。因此可以设定以下4种类型的并发访问策略,每一种策略对应一种事务隔离级别。● 只读缓存(read-only) 如果应用程序需要读取一个持久化类的实例,但是并不打算修改它们,可以使用read-only缓存。这是最简单,也是实用性最好的...

【Hibernate学习笔记】第一章节:Java EE应用和开发环境

1. Java EE应用的分层模型 1.1. Java EE架构模式大致可以分为以下几层: >> Domain Object(领域对象)层:此层由POJO(Plain Old Java Object,普通的、传统的Java对象)组成,这些对象是该系统的Domain Object,往往包含了各自所需要实现的业务逻辑方法。 >> DAO(Data Access Object,数据访问对象)层:此层由一系列的DAO组件组成,这些DAO实现了对数据库的创建、查询、更新和删除等院子操作。 >> 业务逻辑层:此层...

hibernate的多对多配置【代码】

Teacher.java 1package com.xiaostudy.domain;2 3import java.util.HashSet;4import java.util.Set;5 6/** 7 * Teacher8 * 9 * @author xiaostudy 10 * 11*/12publicclass Teacher { 13// id14private Integer id; 15// 普通属性16private String name; 17// 另一个类的集合18private Set<Student> students = new HashSet<Student>(); 1920// 自动生成get、set方法21public Integer getId() { 22return id; 23 } 2425publicvoi...

8、Hibernate框架(ORM详解、主文件配置、映射文件配置)【代码】

开发回顾: SSH框架: Struts框架, 基于mvc模式的应用层框架技术! Hibernate, 基于持久层的框架(数据访问层使用)! Spring, 创建对象处理对象的依赖关系以及框架整合!Dao代码,如何编写?- 操作XML数据- 使用Jdbc技术原始的jdbc操作, Connection/Statement/ResultSet自定义一个持久层框架, 封装了dao的通用方法DbUtils组件, 轻量级的dao的组件;Hibernate技术 【hibernate最终执行的也是jdbc代码!】 一、Hibernate框架...

springboot中使用hibernate envers【代码】【图】

添加maven配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>...

2、Hibernate持久化编写【图】

一、对于hibernate中的PO编写规则:1. 必须提供一个无参数的public构造方法 2. 所有属性要private ,对外提供public 的get/set方法 3. 在PO类必须提供一个标识属性,让它与数据库中的主键对应,我们管这个属性叫OID,Hibernate框架它是通过OID来区分不同的PO对象,如果在内存中有两个相同的OID对象,那么hibernate认为它们是同一个对象。 4. PO类中的属性尽量使用基本数据类型的包装类,使用基本数据类型是没有办法去描述不存在概念,...

Hibernate Dao操作总结【代码】

Hibernate使用构建器://1. 获取条件构建 CriteriaBuilder criteriaBuilder = getSession().getCriteriaBuilder(); //2. 创建条件构造器 CriteriaQuery<User> cq = criteriaBuilder.createQuery(User.class); //3. 指定根条件 Root<User> root = cq.from(User.class); //4. 指定查询条件 List<Predicate> predicates = new ArrayList<>(); if (StringUtils.isNotEmpty(email)) {predicates.add(criteriaBuilder.and(criteriaBuilde...