核心接口:
Session、SessionFactory、Transaction、Query、Criteria、Configuration。
Configuration:
负责配置并启动Hibernate,创建SessionFactory对象。
SessionFactory:保存了对应当前数据库配置的所以映射关系。
Session:负责执行被持久化对象的CRUD操作。
Transaction:负责事务相关的操作。
Query和Criteria:进行数据查询。
基本的增删改查
1、save()
Session session = GetSessionFactory.
getSession
();
//开启事务
Transaction tr = session.beginTransaction();
//保存对象
session.save(user);
//提交事务
tr.commit();
//关闭session
session.close();
2、delete()方法,是通过主键id来删除,与其他属性无关。
Session session = GetSessionFactory.
getSession
();
//开启事务
Transaction tr = session.beginTransaction();
//将对象加载出来后进行删除
String hql =
"delete from User user where user.name=1212"
;
Query
querydelete = session.createQuery(hql);
//执行操作,成功返回1,失败返回0;
int
ret = querydelete.executeUpdate();
System.
out
.println(ret);
// User user = (User)session.load(User.class, 1);
// session.delete(user);
//提交事务
tr.commit();
//关闭session
session.close();
3、load()/get()
当数据库中没有所查询的数据时,load()抛出异常,get()返回null。
调用get方法是会立即进行查询操作,
load()方法会在第一次查询对象的时才真正进行查询操作,称为延时加载。
Session
session = GetSessionFactory.
getSession
();
User
user = (
User
)session.load(
User
.
class
, 2);
session.close();
查询种类:主键查询,HQL查询,Criteria查询,原生SQL查询,命名查询,JDBC查询,导航查询。
4、update
Session session = GetSessionFactory.
getSession
();
//开启事务
Transaction tr = session.beginTransaction();
//将对象加载出来后进行删除
String hql =
"update User user set user.password='55555' where user.name=?"
;
Query
querydelete = session.createQuery(hql);
querydelete.setParameter(0,
"55555"
);
//querydelete.setString(0, "55555");
//执行操作,成功返回1,失败返回0;
int
ret = querydelete.executeUpdate();
System.
out
.println(ret);
// User user = (User)session.load(User.class, 1);
// session.delete(user);
//提交事务
tr.commit();
//关闭session
session.close();