hibernate入门

1. 什么是hibernate
hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了 轻量级的封装,java程序员可以使用面向对象的思想来操纵数据库。

优势:跨数据库的无缝移植
注1:Object Relational Mapping

hibernate 核心接口

session:负责被持久化对象CRUD操作
sessionFactory:负责初始化hibernate,创建session对象
configuration:负责配置并启动hibernate,创建SessionFactory
Transaction:负责事物相关的操作
Query和Criteria接口:负责执行各种数据库查询

2. 如何在项目中添加hibernate支持(手动添加)
2.1 添加hibernate相关依赖

2.2 在resource目录下添加hibernate.cfg.xml(核心配置文件)

2.2.1 添加DTD支持
2.2.2 添加Hibernate的配置
1 >数据库相关(connection.username|connection.password|
connection.url|connection.driver_class|dialect)
2> 调试相关(show_sql|format_sql)
3> 在开发阶段再创建实体类和实体映射文件(*.hbm.xml)
实体必须实现Serializable接口

小结:hibernate.cfg.xml(1)/*.hbm.xml(N)
实体映射文件一定要加到核心配置文件

hibernate入门

.

实体映射文件(*.hbm.xml)
hibernate入门

3. hibernate工作原理:
1.通过Configuration config = new Configuration().configure();//读取并解析hibernate.cfg.xml配置文件
2.由hibernate.cfg.xml中的读取并解析映射信息
3.通过SessionFactory sf = config.buildSessionFactory();//创建SessionFactory
4.Session session = sf.openSession();//打开Sesssion
5.Transaction tx = session.beginTransaction();//创建并启动事务Transation
6.persistent operate操作数据,持久化操作
7.tx.commit();//提交事务
8.关闭Session
9.关闭SesstionFactory

4. 如何使用hibernate完成CRUD(增删改查)操作
1>搭建好环境
引入hibernate jar包
准备Hibernate.cfg.xml启动配置文件
2>创建库表
3>写实体类(pojo)
4>为实体类写映射文件"User.hbm.xml"
在hibernate.cfg.xml添加映射的实体
5>写测试类

测试类:

package com.zking.one.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.zking.one.entity.User;

public class Demo1_add {

public static void main(String[] args) {
/**
 * 1. 获得Configuration   读取配置文件
 * 2.创建SessionFactory	
 * 3.打开Session
 * 4.开启事务
 * 5.使用session操作数据
 * 6.提交事务
 * 7.关闭资源
 * 
 */
Configuration	cfg=new Configuration().configure("hibernate.cfg.xml");//读取配置文件
SessionFactory sessionFactory=cfg.buildSessionFactory();	//创建SessionFactory
Session session = sessionFactory.openSession();//打开SessionFactory	
Transaction transaction = session.beginTransaction(); //开启事务

User user=new User();

user.setUserName("admin");
user.setUserPwd("123");
session.save(user);//执行数据库操作  (save新增)



//user.setId(3);
//user.setUserPwd("123");
//user.setUserName("唐思语");
//session.update(user);//修改


//User user2=session.get(User.class, 2);//查询
//System.out.println(user2);
//if(user2!=null) {
//	user2.setUserName("唐思语");//修改
//}



// User user3=session.get(User.class, 4);//查询
//
//if(user3!=null) {
//	user3.setUserName("唐思语");//修改
//}
//session.delete(user3);//执行数据库操作  


transaction.commit();//提交事务
session.close();//关闭资源



}	

}

注意事项
4.2.1 hibernate默认使用的是手动事务,因此必须显示的开启和提交事

4.2.2 删除操作时,必须先查再删