hibernate学习笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一次课:

持久化:就是把瞬时状态的数据转变为持久化状态的数据,这一个过程就是持久化。

(java中内存分为:栈(变量,方法,形参都是在栈上),堆(new出来的对象在堆上))

1)瞬时状态:刚new出来,在内存中存在的对象就是瞬时状态的。如果程序结束,对象就会被回收。

2)持久化状态:在磁盘或者是数据库中存在的数据就是持久状态。

Hibernate是什么?

1)是一个优秀的持久化框架,对jdbc进行进一步的封装。(hibernate,ibatis )。

2)是一个ORM (Object relation mapping ).

Mysql,oracle,access 是关系型数据库

= hibernate操作的是对象。

使用hibernate的步骤:1)新建项目

2)引入jar包(hibernate最少依赖8个jar包)

3)新建 hibernate配置文件(hibernate.cfg.xml) ,放在src根目录下面。

用于数据库的配置信息。

com.mysql.jdbc.Driver

root

abc

jdbc:mysql:///fwcz

org.hibernate.dialect.MySQLDialect

create

4)写bean/vo类,并且编写映射文件。

5)将映射文件添加到hibernate.cfg.xml文件中

6)数据测试:

//向数据库中添加一条数据

//1.读取配置文件

Configuration cfg = new Configuration().configure();

//2.创建一个工厂

SessionFactory factory = cfg.buildSessionFactory();

//3.获得session (是一个连接对象 Connection)

Session session = factory.openSession();

//4.开始事务

Transaction tx = session.beginTransaction();

//5.添加用户

User u = new User();

u.setName("admin");

u.setPass("123");

session.save(u);//保存对象

//6.提交事务

mit();

//7.关闭

session.close();

Hibernate操作数据库的几个对象:

1)Configuration:

Configuration cfg = new Configuration().configure(); 读取文件名为hibernagte.cfg.xml 文件中的信息

//如果修改过配置文件名称

Configuration cfg = new Configuration().configure(“配置文件名”);

2)SessionFactory:用于产生Session的工厂类,耗费大量的资源。一个项目中只存在一个。

cfg.buildSessionFactory();

3)Session类:jsp/servlet中的session代表的是浏览器一次会话。而hibernate中的Session,代表的是程序与数据库之间的链接。相当于 Connection。

Session session = facory.openSession(); //打开一个新的session连接。

一定要关闭

4)Transaction: 代表的是事务。对数据库的一次操作,要么都成功,要么都失败Transation tx = session.beginTransaction();

mit();//事务提交

添加用户save : User u = new User();

u.setName("admin1111");

u.setPass("123");

session.save(u);//保存对象

查询用户:get() /load();

User u = (User)session.get(User.class,1); //查询id号为1的用户

//立即发送sql语句,然后返回一个对象

User u = (User)session.load(User.class,1);//没有发送sql语句,先到hibernate 缓存中查。如果没有使用User对象(u.setName(),u.getName()),不会发送sql语句。懒加载。

删除用户:

User u = (User)session.get(User.class,1); //获得id号为1的数据

相关文档
最新文档