本文最后更新于 3083 天前,其中的信息可能已经有所发展或是发生改变。
事务代码规范写法
public class TestHibernate {
@Test
public void test2(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction transaction = null;
try {
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.openSession();
transaction = session.beginTransaction();
User u = new User();
u.setUsername("小胡");
u.setPassword("333");
session.save(u);
transaction.commit();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
transaction.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
}
笔记罢了…
package com.glj.utils;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtils {
static Configuration cfg = null;
static SessionFactory sessionFactory = null;
static{
cfg = new Configuration();
cfg.configure();
sessionFactory = cfg.buildSessionFactory();
}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
}
单例模式
定义:
- 在任何地方,任何时候都只能获取某种类型(class)的同一个实例。
- 即无论怎么取得的实例均为同一个实例。
需满足三个条件:
- 一个私有的静态变量指向自身
- 一个私有空参的构造方法
- 一个公有的静态方法返回自身
单例模式种类
- 饿汉式
- 懒汉式
饿汉式代码demo:
- 类加载时,马上实例化对象
- 在需要时返回此实例化好的对象
class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return instance;
}
}
懒汉式代码demo:
- 类加载是并不马上实例化对象
- 请求这个对象时才开始实例化
- 需要同步加锁
class Singleton {
private static Singleton instance ;
private Singleton() {
}
public static Singleton getInstance() {
if (instance == null) {
synchronized("key"){
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}

学习存下了