hibernate学习(二)

来源:互联网 发布:软件系统响应时间 编辑:程序博客网 时间:2024/06/18 06:49

常用API

Configuration
主要是用于加载hibernate配置.
Configuration config=new Configuration().config();主要加载src下的hibernate.cfg.xml
Configuration config=new Configuration();主要加载的src下的hibernate.properties
Configuration config=new Configuration().config(aaa.cfg.xml);加载指定的名称的配置文件
问题:我们是在hibernate.cfg.xml文件中有xxx.hbm.xml文件的位置。如果我们使用的是hibernate.properties这种核心配置,它如何加载映射配置?
手动配置映射:config.addResource("com/wds/domain/Customer.hbm.xml")// 直接加载映射配置文件
或者config.addClass(Customer.class);// 直接在实体类所在包下查找规范映射文件
SessionFactory
SessionFactory sessionFactory = config.buildSessionFactory();
SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。
**注意:**SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
问题:怎样可以保证在一个项目中所使用的SessionFactory是同一个?

public class HibernateUtils {    private static Configuration config;    private static SessionFactory sessionFactory;    static {        config = new Configuration().configure();        sessionFactory = config.buildSessionFactory();    }    public static Session openSession() {        return sessionFactory.openSession();    }}

得到session有两种方式
1. sessionFactory.openSession();
2. sessionFactory.getCurrentSession();
sessionFactory内部还维护了一个连接池, 如果使用c3p0连接池
1. 导入c3p0的相关jar包:在hibernate/lib/options下有关于c3p0连接池jar包
2. 在hibernate.cfg.xml文件中配置c3p0连接, 可以查看etc/hibernate.properties中关于c3p0的配置

0 0
原创粉丝点击