工具类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包:

不确定是不是这些包,当初代码能看到运行结果

整理之前的Java学习笔记,看看这三年学了些什么,毕业了,要找工作了感觉啥也没学清楚,顺便重温Java,在向后面学

猜你喜欢

转载自blog.csdn.net/RONG_YAO/article/details/89325563
今日推荐