java 从零开始,学习笔记之基础入门(Hibernate_实战演练)(三十七)(一)

2014-11-24 02:45:24 · 作者: · 浏览: 1

Hibernate_实战演练

使用HibernateSessionFactory得到session实现CRUD

UserOperDAO.java

package com.ibm.dao;

import java.util.Iterator;

import java.util.List;

import org.hibernate.CacheMode;

import org.hibernate.Query;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import com.ibm.factory.HibernateSessionFactory;

import com.ibm.pojo.User;

public class UserOperDAO {

public void add(User user){

//定义sessiontran变量

Session session=null;

Transaction tran=null;

try {

//获得session开启事务(涉及数据修改操作时都需要开启事务)

session=HibernateSessionFactory.getSession();

tran=session.beginTransaction();

session.save(user);

//提交事务数据入库

tran.commit();

} catch (Exception e) {

//事务回滚

tran.rollback();

}finally{

//关闭session

HibernateSessionFactory.closeSession();

}

}

/**

* 按照用户id删除用户

* @param user

*/

public void delUser(User user){

Session session= null;

Transaction tran=null;

try {

session=HibernateSessionFactory.getSession();

tran=session.beginTransaction();

session.delete(user);

tran.commit();

} catch (Exception e) {

tran.rollback();

}finally{

HibernateSessionFactory.closeSession();

}

}

/**

* 修改用户

* @param user

*/

public void updateUser(User user){

Session session= null;

Transaction tran=null;

try {

session=HibernateSessionFactory.getSession();

tran=session.beginTransaction();

session.update(user);

tran.commit();

} catch (Exception e) {

e.printStackTrace();

tran.rollback();

}finally{

HibernateSessionFactory.closeSession();

}

}

/**

* 获得用户信息列表

* @return list

*/

public List getAllUser(){

List list= null;

Session session=null;

try {

session=HibernateSessionFactory.getSession();

String sql="from User user";

Query query=session.createQuery(sql);

list=query.list();

System.out.println("获得结果集");

for (User u : list) {

System.out.println("用户名是:"+u.getUserName());

}

} catch (Exception e) {

e.printStackTrace();

}

return list;

}

}

public static void main(String[] args) {

UserOperDAO dao=new UserOperDAO();

//增加

// User user = new User();

// user.setUserName("范围");

// dao.add(user);

//删除

// User user1=new User();

// //删除时必须给删除对象的主键赋值

// user1.setUserId(2);

// dao.delUser(user1);

//修改

// User user2=new User();

// user2.setUserId(5);

// user2.setUserName("jack");

// dao.updateUser(user2);

//查询

// List list=dao.getAllUser();

// for (User user : list) {

// System.out.println("用户名称是:"+user.getUserName());

// }

}

延迟加载

/**

* 延迟加载

*

*/

public void lazyTest(){

Session session=null;

try {

session=HibernateSessionFactory.getSession();

User user=(User) session.load(User.class, 5);

System.out.println("用户id是:"+user.getUserId());

System.out.println("*********************分割线************");

// System.out.println("用户姓名是:"+user.getUserName());

} catch (Exception e) {

e.printStackTrace();

}finally{

HibernateSessionFactory.closeSession();

}

}

缓存事例

/**

* 缓存事例

*/

public void cachTest(){

//一级缓存

Session session=null;

try {

session=HibernateSessionFactory.getSession();

// User user=(User) session.load(User.class, 5);

// System.out.println("用户id是:"+user.getUserId());

// System.out.println("*********************分割线************");

// System.out.println("用户姓名是:"+user.getUserName());

// //一级缓存和session生命周期一致的缓存

// //clear是将所有的一级缓存中的数据清空掉

// //session.clear();

//

// //evict将指定的对象从一级缓存中清除掉

// session.evict(user);

// System.out.println("--------