java中单例模式是一种常见的设计模式,单例模式的写法有好几种,懒汉式单例、饿汉式单例、登记式单例。
单例模式有以下特点:
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
创建sessionFactory
package com.hlg.whd.controller;
import org.springframework.context.annotation.Configuration;
public class HibernateUtils {
//声明一个私有的静态final类型的Configuration
private static final Configuration config;
//声明一个私有的静态final类型的SessionFactory对象
private static final SessionFactory factory;
//通过静态代码块构建SessionFactory
static{
config=new Configuration().configure();
factory=config.buildSessionFactroy();
}
//提供一个公有的静态方法供外部获取,并返回一个Session对象
public static Session getSession(){
return factory;
}
}
上述代码声明了一个私有的final类型的Configuration对象和SessionFactory对象,供类中的成员使用,通过静态方法构建SessionFactory实例,最后提供了一个公有的静态方法供外部获取session对象。
测试类
public class test {
@Test
public void selectStu(){
Session session = HibernateUtils.getSession();
Transaction t = session.beginTransaction();
Costmer s = (Costmer) session.get(Costmer.class,1);
System.out.println(s.toString());
t.commit;
}
}
实体类
package com.hlg.whd;
public class Costmer {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Costmer [id=" + id + ", username=" + username + ", password="
+ password + "]";
}
}