package org.hibernate;
import java.io.Serializable;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
public class HibernateSessionFactory {
private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
private static Configuration configuration = new Configuration();
private static org.hibernate.SessionFactory sessionFactory;
private static String configFile = CONFIG_FILE_LOCATION;
static { //初使化时执行一次,以后就不会执行了!
try {
configuration.configure(configFile); //解析hibernate.cfg.xml映射文件。
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
private HibernateSessionFactory() { //不能new
}
public static Session getSession() throws HibernateException {
Session session = (Session) threadLocal.get();
if (session == null || !session.isOpen()) {
if (sessionFactory == null) {
rebuildSessionFactory();
}
session = (sessionFactory != null) ? sessionFactory.openSession()
: null;
threadLocal.set(session);
}
return session;
}
public static void rebuildSessionFactory() {
try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
public static void closeSession() throws HibernateException {
Session session = (Session) threadLocal.get();
threadLocal.set(null);
if (session != null) {
session.close();
}
}
public static org.hibernate.SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void setConfigFile(String configFile) {
HibernateSessionFactory.configFile = configFile;
sessionFactory = null;
}
public static Configuration getConfiguration() {
return configuration;
}
//增加对象
public static void add(Object entity){
Session s=null;
Transaction tx=null;
try{
s=HibernateSessionFactory.getSession();
tx=s.beginTransaction();
s.save(entity);
tx.commit();
}finally{
if(s!=null){
s.close();
}
}
}
//更新对象
public static void update(Object entity){
Session s=null;
Transaction tx=null;
try{
s=HibernateSessionFactory.getSession();
tx=s.beginTransaction();
s.update(entity);
tx.commit();
}finally{
if(s!=null){
s.close();
}
}
}
//删除对象
public static void delete(Object entity){
Session s=null;
Transaction tx=null;
try{
s=HibernateSessionFactory.getSession();
tx=s.beginTransaction();
s.delete(entity);
tx.commit();
}finally{
if(s!=null){
s.close();
}
}
}
//通过id得到对象
public static Object get(Class clazz,Serializable id){
Session s=null;
try{
s=HibernateSessionFactory.getSession();
Object obj=s.get(clazz, id);
return obj;
}finally{
if(s!=null){
s.close();
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
hibernate的基本例子
共24个文件
java:5个
xml:5个
class:5个
需积分: 7 5 下载量 201 浏览量
2008-11-24
15:11:28
上传
评论
收藏 436KB RAR 举报
温馨提示
一个用hibernate框架开发的最基本的添加,删除,修改,通过id得到用户,通过name得到用户
资源详情
资源评论
资源推荐
收起资源包目录
Hibernate3.0.rar (24个子文件)
Hibernate3.0
mysql-connector-java-3.1.12-bin.jar 436KB
src
org
hibernate
dao
UserDAO.java 284B
domain
User.hbm.xml 483B
User.java 489B
笔记 4KB
HibernateSessionFactory.java 3KB
impl
UserCURD.java 3KB
test
UserTest.java 960B
hibernate.cfg.xml 1022B
bin
org
hibernate
dao
UserDAO.class 334B
domain
User.class 978B
User.hbm.xml 483B
笔记 4KB
impl
UserCURD.class 3KB
test
UserTest.class 1KB
HibernateSessionFactory.class 4KB
hibernate.cfg.xml 1022B
.classpath 411B
.mymetadata 309B
.myeclipse
.project 722B
WebRoot
META-INF
MANIFEST.MF 39B
index.jsp 834B
WEB-INF
classes
lib
web.xml 375B
.myhibernatedata 474B
共 24 条
- 1
wangjun_pfc
- 粉丝: 252
- 资源: 124
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 卡尔曼滤波(Kalman Filter)是一种有效的递归滤波器,用于线性动态系统的状态估计 它通过考虑先前的估计和当前的观测来提
- 卡尔曼滤波(Kalman Filter)是一种有效的递归滤波器,用于线性动态系统的状态估计 它通过考虑先前的估计和当前的观测来提
- 卡尔曼滤波(Kalman Filter)是一种有效的递归滤波器,用于线性动态系统的状态估计 它通过考虑先前的估计和当前的观测来提
- python 卡尔曼滤波算法
- python 卡尔曼滤波算法
- python 卡尔曼滤波算法
- MFC工控项目实例之一主菜单制作
- 基于HTML的旅游网页制作源码设计.zip
- 基于HTML的旅游网页制作源码设计.zip
- 大数据揭秘京沪程序员的爱情代码 WIFIPIX(PDF格式).rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0