Hibernate的学习——4.hibernate的简单增删改操作
4.hibernate的简单增删改操作
- 先写一个hibernateUtil工具类,代码和截图如下。
package www.itheima.util;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
public class HibernateUtil {
private static Configuration cfg=null;
private static ServiceRegistry registry=null;
private static SessionFactory factory=null;
private static ThreadLocal<Session> sessionLocal=null;
static{
cfg=new Configuration().configure();
registry=new ServiceRegistryBuilder()
.applySettings(cfg.getProperties())
.build();
//sessionFactory是一个重量级对象,在一个应用只需要一个即可
factory=cfg.buildSessionFactory(registry);
sessionLocal=new ThreadLocal<Session>();
}
public static Session getSession(){
if(sessionLocal.get()!=null&&!sessionLocal.get().isOpen()){
sessionLocal.set(null);
}
if(sessionLocal.get()==null){
sessionLocal.set(factory.openSession());
}
return sessionLocal.get();
}
public static void close(){
if(sessionLocal.get()!=null){
sessionLocal.get().close();
sessionLocal.set(null);
}
}
}
- 增删改查的测试类hibernateTest。代码和截图如下。
package www.itheima.com;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import www.itheima.util.HibernateUtil;
public class HibernateTest {
public static void main(String[] args) {
save();
update();
delete();
}
private static void delete() {
Session session=null;
Transaction tx=null;
try{
//获取session
session=HibernateUtil.getSession();
//开启事务
tx=session.beginTransaction();
User user=(User)session.get(User.class, 2);
//删除数据
session.delete(user);
//提交事务
tx.commit();
}catch(Exception e){
e.printStackTrace();
if(tx!=null)
tx.rollback();
}finally{
HibernateUtil.close();
}
}
private static void update() {
Session session=null;
Transaction tx=null;
try{
//获取session
session=HibernateUtil.getSession();
//开启事务
tx=session.beginTransaction();
User user=(User)session.get(User.class, 2);
//修改
user.setName("阿华");
//保存数据
session.save(user);
//提交事务
tx.commit();
}catch(Exception e){
e.printStackTrace();
if(tx!=null)
tx.rollback();
}finally{
HibernateUtil.close();
}
}
private static void save() {
Session session=null;
Transaction tx=null;
try{
//获取session
session=HibernateUtil.getSession();
//开启事务
tx=session.beginTransaction();
User user=new User();
user.setName("刘德华");
user.setAge(53);
//保存数据
session.save(user);
tx.commit();
}catch(Exception e){
e.printStackTrace();
if(tx!=null)
tx.rollback();
}finally{
HibernateUtil.close();
}
}
}