Hibernate学习笔记(5)---Query接口】的更多相关文章

Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库的存取都与Session有关Session由SessionFactory创建,是线程安全的Thread-Safe,可以让多个线程同时存取SessionFactory而不会有数据共享的问题 Hibernate中Session的解释 :http://blog.csdn.net/shrek_xu/arti…
2016/4/22 23:19:44 Hibernate学习笔记(二) 1.1 Hibernate的持久化类状态 1.1.1 Hibernate的持久化类状态 持久化:就是一个实体类与数据库表建立了映射. 瞬时态 transisent:(临时态) 持久态 persistent 脱管态 detached:(离线态) 1.1.2 三种持久化对象的状态 Transient瞬时态:持久化对象没有唯一标识OID.没有纳入Session的管理. Persistent持久态:持久化对象有唯一标识OID.已经纳…
2016/4/18 19:58:58 Hibernate学习笔记(一) 1.Hibernate框架的概述: 就是一个持久层的ORM框架. ORM:对象关系映射.将Java中实体对象与关系型数据库中表建立一种关系.Hibernate中可以通过操作对象的方式,从而操作数据库的表. 常见的持久层框架: Hibernate MyBatis JPA DBUtils Hibernate3.x和Hibernate4.x 2.Hibernate快速入门: 2.1 下载Hibernate开发包. http://s…
Hibernate 学习笔记一 今天学习了hibernate的一点入门知识,主要是配置domain对象和表的关系映射,hibernate的一些常用的配置,以及对应的一个向数据库插入数据的小例子.期间碰到了两个Exception. 我们在使用hibernate的时候需要引入许多jar包,如果jar包少引入了或者版本老旧就会报错,下面是我遇到的两个Exception ,第一个是因为项目缺少slf4j-api.jar和slf4j-log4j12.jar这两个jar包.第二个是因为缺少log4j.jar…
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescript 学习笔记二:数据类型 Typescript 学习笔记三:函数 Typescript 学习笔记四:回忆Es5 中的类 Typescript 学习笔记五:类 Typescript 学习笔记六:接口 Typescript 学习笔记七:泛型 Typescript 中的接口 接口的作用:在面向对象的编程中…
Java学习笔记之---比较接口与抽象类 抽象类是描述事物的本质,接口是描述事物的功能 接口与抽象类的异同 1.一个类只能继承一个父类,但是可以有多个接口 2.抽象类中的抽象方法没有方法体,但是可以有非抽象方法:接口中的方法没有方法体,但是可以通过default或者static拥有方法体 3.如果子类不能重写父类中的抽象方法和接口中的方法,可以把子类变为abstract修饰的 4.子类重写父类的方法时形参不能改变,返回值类型不能改变 5.抽象类中可以包含构造函数,但是接口中不能出现构造函数 6.…
Hibernate中具有三种检索方式(HQL,QBC,SQL) Query接口 一个查询接口,用于向数据库中查询对象.并控制执行查询的过程.Query接口内封装了一个HQL查询语句. 举个栗子 //查询持久化类user Session session = sessionFactory.openSession(); //创建session实例 String hql ="from user as u where age>18"; //HQL语句,as别名可以省略不写 Query qu…
一.Hibernate基础 1.Hibernate简介 Hibernate是一种对象关系映射(ORM)框架,是实现持久化存储的一种解决方案.Java包括Java类到数据库表的映射和数据查询及获取的方法,能够大大减少开发人员使用JDK和SQL处理数据的时间. 2.Hibernate获取 Hibernate的官网是http://www.hibernate.org,需要的时候可以去官网上下载相关的版本. 3.Hibernate配置 在一个项目中有时候不需要Hibernate中的全部jar包,所以当项目…
一.对象图导航查询 对象图导航查询方式是根据已经加载的对象,导航到他的关联对象.它利用类与类之间的关系来查询对象.比如要查找一个联系人对应的客户,就可以由联系人对象自动导航找到联系人所属的客户对象.当然,前提是必须在对象关系映射文件上配置了多对一的关系.其检索方式如下所示: LinkMan linkMan = session.get(LinkMan.class, 1l); Customer customer = linkMan.getCustomer(); 二.OID检索方式 OID检索方式主要…
一.持久化类 1.1 什么是持久化类? Hibernate是持久层的ORM映射框架,专注于数据的持久化工作.所谓的持久化,就是将内存中的数据永久存储到关系型数据库中.那么知道了什么是持久化,什么又是持久化类呢?其实所谓的持久化类知道是一个Java类与数据库表建立了映射关系,那么这个类称为是持久化类.其实你可以简单的理解为持久化类就是一个Java类有了一个映射文件与数据库的表建立了关系.那么我们编写持久化类的时候有哪些要求呢? 1.2 持久化类的编写规则 我们在编写持久化类的时候需要有一下几点需要…
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架 hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久…
参考资料:Java Web核心框架 http://blog.csdn.net/lsh6688/article/details/7611950 补充:ThreadLocal的使用:http://www.cnblogs.com/gnivor/p/4440776.html Part 1.hibernate核心接口层次架构关系 图:hibernate核心接口层次架构关系 上图中,Hibernate的接口大致可以分为以下几种类型: 1. 基本操作类:一些被用户的应用程序调用的,用来完成基本的创建.读取.更…
Hibernate持久化类的编写规则 Hibernate是持久层的ORM映射框架,专注于数据的持久化工作.所谓持久化,就是将内存中的数据永久存储到关系型数据库中. 持久化类 一个java类与数据库表建立了映射关系,那么这个类称为持久化类.可以简单的理解为持久化类就是一个java类有一个映射文件与数据库的表建立了关系. 持久化类的编写规则: 1.持久化类需要提供无参数的构造方法.因为在Hibernate的底层需要使用反射生成类的实例. 2.持久化类的属性需要私有,对私有的属性提供共有的get和se…
转自:http://blog.csdn.net/mumufan05/article/details/45803219 学习笔记与个人理解,如有错误,欢迎指正. 温馨提示:建议跟着注释中的编号顺序阅读代码 测试方法:cat /proc/abc_proc echo 任意字符串 >/proc/abc_pro(需root权限) /************************************************* 使用seq_file接口实现可读写proc文件的例子 适用于3.10以后的内…
1 整合log4j(了解) l slf4j 核心jar  : slf4j-api-1.6.1.jar .slf4j是日志框架,将其他优秀的日志第三方进行整合. l 整合导入jar包 log4j 核心包:log4j-1.2.17.jar 过渡jar(整合jar):slf4j-log4j12-1.7.5.jar l 导入配置文件 log4j.properties  ,此配置文件通知log4j 如何输出日志 l 配置文件内容: 1.记录器 2.输出源 3.布局 l 记录器 例如: log4j.root…
*什么是Hibernate? > 一个框架 > 一个Java领域的持久层框架 > 一个ORM框架 *对象的持久化 > 狭义的理解:“持久化”仅仅指把对象永久保存到数据库中 > 广义的理解:“持久化”包括和数据库相关的各种操作: - 保存:把对象永久保存到数据库中 - 更新:更新数据库中对象(记录)的状态 - 删除:从数据库中删除一个对象 - 查询:根据特定的查询条件,把符合查询条件的一个或多个对象从数据库加载到内存中 - 加载:根据特定的OID,把一个对象从数据库加载到内存中…
1. 多对多关联: 在双方都要用一个类型为Set的属性保存对方的信息,并在映射配置文件中指定这个属性的名字,并指定中间表.还需要通过<key column=””>来指定自己在中间表中对应的外键.在<many-to-many>标签中,要配置对方的类,并且指定对方类在中间表中的对应的外键 *学生表配置文件: <class name="edu.whu.swe.lxl.learn.hibernate.model.stucourse.Student" table=&…
Configuration类 该类主要是读取配置文件,启动hibernate,并负责管理hibernate的配置信息,一个程序只创建一个Configuration对象. Configuration类操作方法 创建Configuration类 Configuration config = new Configuration().getconfigure(); 调用该方法后会自动查找默认hibernate.cfg.xml文件 如果想指定目录下自定义的 <!--创建File对象--> File fi…
1.configuration(配置信息管理,产生sessionfactory) sessionfactory管理一系列的连接池 opensession 永远打开新的,需要手动close getcurrentsession如果当前环境有,就会用已经存在的,没有就创建新的 一旦提交就没了 getcurrentsession主要用于界定事务边界,事务提交自动close 上下文:在hibernate.cfg.xml里面改   currentsession_context_class thread:线程…
1.在hibernate中持久化对象有三个状态,这个面试时可能会问到: (1)transient瞬时态:在数据库中没有与之匹配的数据,一般就是只new出了这个对象,并且在session缓存中也没有即此对象没有纳入session的管理,此状态的对象不能直接存入数据库(会抛出TransientObjectException). (2)persistent持久态:在数据库中有与之匹配的数据,并且纳入了session的管理(一般就是执行了save.update.load. get后的对象),在提交事务时…
Criteria接口 Criteria查询通过面相对向的设计,将数据查询条件封装为一个对象.在hibernate执行时会把criteria指定的查询恢复相应的sql语句. 条件查询 Criteria criteria = session.createCriteria(User.class); criteria.add(Restrictions.eq("uid",2));//add用来设置条件值,add里面实现条件 List<User> list =criteria.list…
我是从b站视频上学习的hibernate框架,其中有很多和当前版本不符合之处,我在笔记中进行了修改以下是b站视频地址:https://www.bilibili.com/video/av14626440   Hibernate查询方式 1 对象导航查询 1)根据id来查询出某个客户,再查询这个客户里面的联系人 2 oid查询 1)根据id查询某一条记录,返回对象(利用session里面的get方法) 3 hql查询 1)Query对象,写hql语句   *查询所有 : from  实体类名称 *条…
hql语句的查询(hibernate query language) hql和sql语句的区别sql:语言关系型数据库里面的通用查询,结构化查询语言,查看的是表以及表的列hql是hibernate中独有的查询语言,其是面向对象的查询语句,查询的是类以及类中的属性注意:hql语句不能执行insert语句,且最终编写的hql语句会转化为相应的sql语句,以及hibernate的get/load方法只能通过主键的方式进行查询from User u where u.name='zhangsan' and…
一.关于联合主键的映射测试实例 实体类: package com.***.comBineKey;public class Person { private Person_pk pk; private long age; public Person_pk getPk() { return pk; } public void setPk(Person_pk pk) { this.pk = pk; } public long getAge() { return age; } public void s…
xml文件[封装]写SQL语句<class class='com.briup.user',table='s_emp'> <property name='id' column='id' type=''></propert> <property name='name' column='name' type=''></propert> <property name='age' column='age' type=''></proper…
一.Criteria查询方式没有sql语了,因此更加面向对象一些.Criteria是一种比HQL更面向对象的查询方式:Criteria的创建方式: Criteria c = s.createCriteria(DomainClass.class); 简单属性条件如:c.add(Restrictions.eq(propertyName, name)); c.add(Restrictions.eqProperty(propertyName, otherpropertyName)); package c…
一.Get/Load Get方法是立即检索,而load是延迟检索,他们都是根据主键进行查询.在<class>标签中,若把lazy属性改为false,load方法就会立即检索,class中的lazy属性仅对load方法有效.在使用load时,当数据库没有找到数据时,会有ObjectNotFoundException,异常. public void LazyTest() { //lazy 改为false或者true,查看打印sql的时机 Tb_User u = session.load(Tb_Us…
五.映射一对多关联关系 1. 单向多对一 即 单向 n-1 1)单向 n-1 关联只需从 n 的一端可以访问 1 的一端 ① 域模型: 从 Order 到 Customer 的多对一单向关联需要在Order 类中定义一个 Customer 属性, 而在 Customer 类中无需定义存放 Order 对象的集合属性 ② 关系数据模型:ORDERS 表中的 CUSTOMER_ID 参照 CUSTOMER 表的主键 (多的那一端的数据表需要加上 s,否则建表不成功) 2)使用 many-to-one…
一,概念详解 1.持久化persistent 是指将内存中的数据保存到磁盘.数据库等存储设备中. 2.持久化对象:已经储存到磁盘或者数据库中的业务对象. 3.在java中对对象的持久化有三种方法: 1)序列化对象,将对象存放到格式化的文本文件中 2)将对象持久化到XML文档中 3)将对象持久化到数据库中,一般为关系数据库 关系数据库遵循的一条重要原则就是数据独立性,即数据可以独立于应用程序而存在 4.应用程序的三层结构 数据库层:存储需要持久化的数据.数据库对立与应用程序,提供了系统状态的一种持…
Hibernate基础配置 1.<property name="hbm2ddl.auto">update</property> 在SessionFactory创建时,自动将数据库schema的DDL导出到数据库. 使用 create-drop时,在显式关闭SessionFactory时,将drop掉数据库schema. 取值 update | create | create-drop 其实这个hibernate.hbm2ddl.auto参数的作用主要用于:自动创…