Hibernate
文章平均质量分 68
SY-
这个作者很懒,什么都没留下…
展开
-
hibernate--单一主键
单一主键:某一列充当主键。对应:复合主键 两种常见的生成策略:assigned:由java应用程序负责生成标识符(手工赋值)native:由底层数据库自动生成标识符,生成方式与数据库相关。如果是mysql就是increment类型(自动增长类型);如果是oracle就是sequence(序列)。转载 2016-08-27 13:59:11 · 474 阅读 · 0 评论 -
HQL语句--select(选择)
以Object[]类型返回选择的属性: 如果在select子句中只是指定了选择的对象和属性,没有指定返回的数据类型,默认查询结果以对象数组Object[]形式返回。 eg:@Test public void testSelectClauseObjectArray(){ //通过select子句指定返回Object[]类型查询结果 //注:不能只指定一个属性,因为返回类型就转载 2016-09-01 12:51:09 · 9391 阅读 · 0 评论 -
HQL语句--where(限制)
where子句:逻辑表达式。用来设置查询的条件来限制返回的查询结果。比较运算:将持久化类的属性与给定的查询条件来进行比较。 比较运算符:=、<>、<、>、>=、<=null值判断— is [not] null 或者使用相等(=)、不等(<>)进行判断。x=null -> x is null; x<>null -> x is not null@Test public void test转载 2016-09-01 15:07:50 · 14301 阅读 · 0 评论 -
HQL语句--order by(排序)
order by:对查询结果排序升序排序 asc (默认升序)降序排序 desc@Test public void testOrderby(){ String hql="from Commodity order by price asc"; //升序 Query query=session.createQuery(hql); List<C转载 2016-09-01 15:34:27 · 39161 阅读 · 2 评论 -
hibernate.cfg.xml
hibernate.cfg.xml常用配置: hbm2ddl.auto:create:删除原有的表,重新生成表结构并向其中添加记录,不保留原有的数据update:在原有表的基础上进行更新,不删除原有的表,不删除原有数据create-drop:先创建再删除validate:对原有表结构进行验证,如果现有表结构和原有表结构不同,就不会创建表结构注:hibernate的前缀可以省略,即hi转载 2016-08-26 11:21:24 · 227 阅读 · 0 评论 -
transaction简介
transaction:事务。在执行某个session方法时,必须将其放在一个事务之中。hibernate对数据的操作都是封装在事务当中,并且默认是非自动提交的方式来处理。所以用session保存对象时,如果不开启事务,并且手工提交事务,对象并不会真正保存在数据库中。JDBC是默认自动提交事务,若想hibernate像jdbc那样自动提交事务,必须调用session对象的doWork()方法,获得j转载 2016-08-26 20:35:32 · 508 阅读 · 0 评论 -
session简介
hibernate的执行流程: 首先创建一个configuration配置对象,来读取配置文档hibernate.cfg.xml获得配置对象来创建SessionFactory对象,同时读取里面加载的对象关系映射文件获得SessionFactory对象来创建Session对象(类似JDBC的Connection),获得了session对象就表示获得了一个数据库连接对象,就可执行相应的增、删、改、查转载 2016-08-26 14:52:36 · 315 阅读 · 0 评论 -
session详解
session:hibernate操作数据库的对象,session对象表示数据库的一个连接。 获得session对象的方法(都来自SessionFactory):openSessiongetCurrentSession:此方法需在hibernate.cfg.xml文档中进行配置import org.hibernate.Session;import org.hibernate.Session转载 2016-08-26 21:58:07 · 799 阅读 · 0 评论 -
hbm配置文档
hbm配置文档:对象关系映射 常用设置:转载 2016-08-26 22:06:30 · 415 阅读 · 0 评论 -
HQL语句--from(检索对象)
from字句:HQL语句最简形式。from指定了HQL语句查询的主体–持久化类及其属性。from子句中持久化类的引用: 1、不需要引入持久化类的全限定名,直接引入类名即可。eg:from Seller 2、auto-import(自动引入)缺省情况from子句中别名的应用: 1、为被查询的类指定别名,使用AS关键字来设定别名(也可省略)。 2、定义别名的目的是,在HQL语句其他部分通过别名引转载 2016-09-01 10:01:48 · 1104 阅读 · 0 评论 -
HQL数据查询
HQL定义:Hibernate Query Language。是Hibernate框架提供的一种查询语言。HQL是面向对象的查询语言,其查询的主体是映射配置的持久化类及其属性。(注:SQL不是面向对象的查询语言,其主体是数据库表及表的字段) 实际上,hibernate框架会将编写好的HQL语句解析成相应的sql语句来完成最终的数据库查询操作。 HQL查询丰富灵活,是hibernate官方推荐的查转载 2016-08-31 17:49:19 · 540 阅读 · 0 评论 -
Hibernate--cascade属性
cascade属性:表示级联。默认值为none。转载 2016-08-30 22:20:24 · 405 阅读 · 0 评论 -
hibernate--对象类型
binary:字节数据 text/clob:文本数据类型 blob:二进制数据类型(音频/视频/图片等) 注: (文本长度依次递增)使用hibernate向数据库中添加一个blob(二进制)类型字段,并向其中添加blob类型数据: 在Students类中添加一个Blob类型属性picture: private Blob picture; //照片Students.hbm.xml中:<pro转载 2016-08-27 15:12:25 · 540 阅读 · 0 评论 -
hibernate--组件属性
组件属性:实体类中的某个属性属于用户自定义的类的对象。 eg: 上例,属性address就是一个组件属性(它是属于Address类的一个对象)。Address类又有3个字段:postcode、phone、address。编写一个Address类,含有属性: private String postcode;//邮编 private String phone;//电话 priv转载 2016-08-28 14:41:00 · 473 阅读 · 0 评论 -
hibernate对单表增删改查(CRUD)
增删改查:saveupdatedeleteget/load(查询单个记录)import java.util.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configurat转载 2016-08-28 15:22:50 · 2358 阅读 · 0 评论 -
Hibernate
ORM(Object/Relationship Mapping):对象/关系映射。在面向对象编程中尽量少写和底层数据库相关的sql语句,方便程序的修改、维护、跨平台性、扩展。SQL语句的不足之处:不同的数据库使用的SQL语法不同。比如:PL/SQL(Oracle版本)和T/SQL(微软版本)同样的功能在不同的数据库中有不同的实现方式。比如分页SQL。过分依赖SQL不利于程序移植、扩展和维护。转载 2016-08-19 21:14:19 · 318 阅读 · 1 评论 -
Hibernate--inverse属性
inverse:表示反转。inverse用来指定关联关系的维护。它是<Set>节点的一个属性。它的值默认是false,表示不反转,也就是说由‘一方’进行维护。 若双方都进行维护则会降低性能。 当需要只由多方进行维护时,可将其值设置为true,定义为反转。转载 2016-08-30 21:46:35 · 459 阅读 · 0 评论 -
Hibernate关联映射--多对一映射
单向多对一关联关系: eg:多个学生属于一个班级。在一对多的例子上,我们进行一些改变来建立单向多对一映射: 在student类中增加一个grade班级属性,建立其get/set方法: private int sid; //学生编号 private String sname; //学生姓名 private String sex; //学生性别 //在多方定义转载 2016-08-30 21:37:03 · 259 阅读 · 0 评论 -
Hibernate关联映射--一对多映射
映射类型(4种): 常见的及常用的:一对多、多对一。一对多映射(one-to-many): 如何表示一对多的关联关系: 例子:一个班级对应多个学生。在班级中定义一个学生的集合。 在数据库中创建表student(学生表)和grade(班级表) hibernate.cfg.xml(注意指定映射文件的路径):<?xml version='1.0' encoding='UTF-8'?>转载 2016-08-29 21:36:49 · 473 阅读 · 0 评论 -
hibernate--基本类型
详解date、timestamp: Students.hbm.xml:<property name="birthday" type="java.util.Date"> <column name="birthday" length="10" /> </property>可将其type属性修改为上述表中的任意hibernate映射类型,从而在数据库中实现不同时间转载 2016-08-27 14:19:04 · 450 阅读 · 0 评论 -
Hibernate--悲观锁和乐观锁
当多个事务同时访问数据库中的相同数据时,如果没有采取必要的隔离措施,将会导致各种并发问题,这时可以采取悲观锁和乐观锁对其控制。悲观锁: 悲观锁是在每次操作数据时,都悲观地认为会有其他事务也会来操作同一数据。因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁由数据库来实现,在锁定的时间其他事务不能对数据进行存取,这样很有可能造成长时间等待。在Hibernate中,用户可以显式地设定要锁定的表或字原创 2016-09-27 17:09:17 · 387 阅读 · 0 评论