Hibernate 和快照

8.Oracle中的数据类型
9.Oracle中的伪列
Rowid和RowNum
Rowid
Rownum:在内存中形成一个不断裂的自增列
--最重要的。就是Oracle分页
我想要emp中的第二页数据,4--6
9.Oracle分页三层嵌套 :性能最高
select * from
(
Select emp.*,rownum as rn
from
(
select * from emp
)emp
where rownum<=9
)
where rn>=7
这是由于CBO优化模式下,Oracle可以将外层的查询条件推到内层查询中,以提高内层查询的执行效率。对于第一个查询语句,第二层的查询条件WHERE ROWNUM <= 40就可以被Oracle推入到内层查询中,
这样Oracle查询的结果一旦超过了ROWNUM限制条件,就终止查询将结果返回了。
10.第一个入门案例
1.构建了一个Student实体类
public class Student {
private Integer id;
//name
private String name;
//age
private Integer age;
}
2.构建一个大配置
在src根目录下书写
Hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name="connection.username">sb</property>
<property name="connection.password">sb</property>
<!-- 输出所有 SQL 语句到控制台。 -->
<property name="hibernate.show_sql">true</property>
<!-- 在 log 和 console 中打印出更漂亮的 SQL。 -->
<property name="hibernate.format_sql">true</property>
<!-- 方言 -->
<property name="hibernate.dialect"> org.hibernate.dialect.Oracle10gDialect</property>
<!-- 关联小配置 -->
</session-factory>
</hibernate-configuration>
3.构建小配置,和实体类对应的
Student.hbm.xml
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.happy.entity">
<class name="Student" table="Student">
<id name="id" type="int" column="id">
</id>
<property name="name" type="string" column="name"/>
<property name="age" type="int" column="age"/>
</class>
</hibernate-mapping>
4.测试代码
对session进行探究。
Session.save(stu);
package cn.happy.test;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import org.junit.Test;
import cn.happy.entity.Student;
public class H_01Test {
@Test
public void testAdd(){
//1.1构建一个学生对象
Student stu=new Student();
stu.setAge(18);
stu.setName("2016年8月28日09:21:09训练营");
stu.setId(3);
//1.2 找到和数据库的接口 xxx========session--->sessionFactory--->configure.buildSessionFactory()
//咱们要想打通和db通道
Configuration cf=new Configuration().configure("hibernate.cfg.xml");
SessionFactory factory = cf.buildSessionFactory();
Session session = factory.openSession();
Transaction tx = session.beginTransaction();
//1.3保存
session.save(stu);
tx.commit();
session.close();
}
}
11.ORM
Object Relational Mapping 对象/关系 映射
|
Object(对象)Java Java实体类 Public class Student{ Priavte Integer age; Private Integer id; Private String name; } |
|
Mapping (hbm配置文件) <class name=”Student” table=”Student”> <id name=”id” column=”id”> </id> <property name=”name” column=”name”/> </class> |
|
Relational(关系) DB 关系型数据库 Sql sever mysql oracle Student Id Number Age Number Name nvarchar2(32) |
12.Hibernate定位
HIbernate是一款实现了ORM思想的框架
JDO
TOpLink
13.用HIbernate实现删除,修改和查询
/**
* 1.1 删除学生
*/
@Test
public void delTest(){
Session session = HibernateUtil.getSession();
Student stu=new Student();
stu.setId(2);
Transaction tx = session.beginTransaction();
session.delete(stu);
tx.commit();
HibernateUtil.closeSession();
System.out.println("del ok!");
}
/**
* 1.2 修改学生
*/
@Test
public void updateTest(){
Session session = HibernateUtil.getSession();
//不被上下文跟踪对象
/*Student stu=new Student();
stu.setId(3);
stu.setName("微冷的雨训练营");*/
//方式二:如何用呗上下文跟踪的方式
//检索出一条记录,一个实体对象
Student stu= (Student)session.load(Student.class,3);
stu.setName("金龙加油!!!!");
Transaction tx = session.beginTransaction();
session.update(stu);
tx.commit();
HibernateUtil.closeSession();
System.out.println("update ok!");
}
Hibernate的一级缓存:快照区
现在我们详细的说一下一级缓存的结构
Hibernate 和快照的更多相关文章
- Hibernate 和 快照
Hibernate我们已经学了四天,该讲的知识我们已经讲完,明天放假,后天练习一天就要结束hibernate的学习,有点不舍的,想来hibernate也不是传说中的那么难,在次将hibernate中三 ...
- hibernate学习(四)hibernate的一级缓存&快照
缓存:提高效率 硬件的 CPU缓存 硬盘缓存 内存 软件的 io流缓存 hibernate 的一级缓存 也是为了操作数据库的效率. 证明一级缓存在 : Person p=sessio ...
- hibernate笔记加强版
hibernate 一. hibernate介绍 hibernate事实上就是ormapping框架,此框架的作用就是简单话数据库的操作. hibernate就是将用户提交的代码.參照持久化类配置文件 ...
- Hibernate学习——持久化类的学习
A.概念 持久化:将内存中的对象持久化(存储)到数据库的过程.Hibernate就是持久化的框架. 持久化类:一个普通java对象与数据库的表建立了映射关系,那么这个类在Hiberna中被称为持久化类 ...
- Hibernate事务以及一级缓存02
一. Hibernate中的事务 1. 事务的回顾 1.1 什么是事务(Transaction)(面试重点) 是并发控制的单元,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的 ...
- 【Hibernate一】概述及入门
Hibernate学习框架: 1.基本部分 crud的操作 主键的生成机制 类型 持久化类 映射文件 *.hbm.xml 配置文件 hibe ...
- hibernate 中对象的3种状态总结
1.Hibernate把对象分文三种状态:Transient(临时状态).Persistent(持久化状态).Detached(游离状态). 1)Transient:刚刚new出来的对象,就是Tran ...
- Hibernate学习笔记(二)—— 实体规则&对象的状态&一级缓存
一.持久化类 1.1 什么是持久化类? Hibernate是持久层的ORM映射框架,专注于数据的持久化工作.所谓的持久化,就是将内存中的数据永久存储到关系型数据库中.那么知道了什么是持久化,什么又是持 ...
- hibernate的CRUD操作
一对多关系映射的crud操作: 1.单项的保存操作 /** * 保存操作 * 正常的保存:创建一个联系人,需要关联客户 */ @Test public void test1(){ Session s= ...
随机推荐
- ABAP绘图功能模块概观(转)
ABAP Graphics FM OverviewABAP绘图功能模块概观 此处仅将功能模块及范例程序列出(若要列出详细参数篇幅过大) 2 Main Graphics Demo Program: GR ...
- ArcGIS Server For Linux 10.2.2安装
1.# yum install Xvfb# yum groupinstall "X Window System"# yum install gettext 2./usr/sbi ...
- Snort - 配置文件
Snort.conf 版本 2.9.8.3 编译可用选项: --enable-gre --enable-mpls --enable-targetbased --enable-ppm --enable- ...
- SharePoint Error - An unrecognized HTTP response was received when attempting to crawl this item
SharePoint 2013爬网报错 An unrecognized HTTP response was received when attempting to crawl this item. V ...
- atitit.数据验证--db数据库数据验证约束
atitit.数据验证--db数据库数据验证约束 1. 为了加强账户数据金额的安全性,需要增加验证字段..1 2. 创建帐户1 3. 更改账户2 4. ---code3 5. --fini4 1. 为 ...
- IOS中十六进制的颜色转换为UIColor
IOS中十六进制的颜色转换为UIColor #pragma mark - 颜色转换 IOS中十六进制的颜色转换为UIColor + (UIColor *) colorWithHexString: (N ...
- GCD中的dispatch_group函数的详解
<一>引入dispatch_group函数的目的 在追加到dispatch_Queue中的多个处理全部结束后想要执行结束的处理,这种需求经常会在我们的程序中出现 (第一种情况)只使用一个S ...
- DB2导入导出编目配置
可使用db2cfexp和db2cfimp导出导入DB2数据库编码信息.这对于编目信息从一台机器复制到另一台机器时十分有用. 命令详细信息: db2cfexp db2cfexp exports conf ...
- jQuery.noConflict() 函数
jQuery.noConflict()函数用于让出jQuery库对变量$(和变量jQuery)的控制权. 一般情况下,在jQuery库中,变量$是变量jQuery的别名,它们之间是等价的,例如jQue ...
- C#复习⑦
C#复习⑦ 2016年6月22日 11:50 Main Exception & Namespaces & Assemblies 异常 & 命名空间 & 程序集 1.tr ...