工具类hibernate----学习笔记
//工具类hibernateuntils
package cn.hibernate.untils;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
//工具类 写静态代码块实现,静态代码块在加载类的时候,执行且只执行一次
public class HibernateUntils {
static Configuration cfg = null;
static SessionFactory sessionFactory = null;
//静态代码块的实现 只加载一次
static {
// 加载核心配置文件 一般名为hibernate.cfg.xml
cfg = new Configuration();
cfg.configure();
sessionFactory = cfg.buildSessionFactory();
}
//提供返回与本地现场绑定的session的方法
public static Session getSessionobject(){
return sessionFactory.getCurrentSession();
}
//提供方法返回sessionFactory
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void main(String[] args) {
}
}
hibernate代码规范:
@Test
public void textTx(){
SessionFactory sessionFactory = null;
Session session =null;
try{
sessionFactory = HibernateUtils.getSessionFactory();
session =sessionFactory.openSession();
Transaction tx = null;
//开启事物
tx =session.beginTransaction();
//添加
User user = new User();
user.setUsername("小马");
user.setPassword("250");
user.setAddress("美国");
session.save(user);
int i = 10/0;
//提交事物
tx.commit();
}catch(Exception){
//回滚事物
tx.rollback();
}finally{
//关闭操作
session.close();
sessionFactory.close
}
}
try {
//放置可能出现异常的代码,一旦发现异常立即跳到catch(捕获异常)里面,没有异常catch不执行
}catch{//如果try没有异常,则不执行此处的代码
}finally{
只要try语句块与catch语句块其中的一个执行,此语句快就会执行
}
测试类中实现crud操作的语句:
//添加数据
@Test
public void Testadd(){
SessionFactory sessionFactory = null;
Session session =null;
Transaction tx=null;
try{
sessionFactory = HibernateUntils.getSessionFactory();
session =sessionFactory.openSession();
//开启事物
tx =session.beginTransaction();
//添加操作
User user = new User();
user.setUname("小马");
user.setPassword("250");
user.setAddress("美国");
session.save(user);
/*
//删除操作
//方法一 推荐使用
//根据id查询
//调用session里面的get方法
//第一个参数:实体的class
//第二个参数:id的值
User user = session.get(User.class, 2);
session.delete(user);
//方法二
User user = new User();
// user.setUid(3);
// session.delete(user);
*/
/*
//修改操作
//4.1 id查询
User user = session.get(User.class, 2);
//4.2返回user对象里面设置修改后的值
user.setUname("东方不败");
//4.3调用session的update方法修改
//执行过程,到user对象里面找到uid值,根据uid进行修改
session.update(user);
*/
/*
// 查询操作 根据id查询
//调用session里面的get方法
//第一个参数:实体的class
//第二个参数:id的值
User user = session.get(User.class, 1);
System.out.println(user);*/
//提交事物
tx.commit();
}catch(Exception e){
//回滚事物
tx.rollback();
}finally{
//关闭操作
session.close();
sessionFactory.close();
}
}
所需jar包:
不确定是不是这些包,当初代码能看到运行结果