SSH与SSM学习之hibernate04——Configuration
来源:互联网 发布:淘宝申请退款多久到账 编辑:程序博客网 时间:2024/06/11 09:56
- SSH与SSM学习之hibernate04Configuration
- 一Configuration主要方法说明
- 二Configuration例子
- 三推荐使StandardServiceRegistry
- 四数据库中的结果
SSH与SSM学习之hibernate04——Configuration
一、Configuration主要方法说明
Configuration功能: 配置加载类.用于加载主配置,orm元数据加载
我们主要用到以下的方法
configure()configure(String resource)Configuration configure(URL url)Configuration configure(File configFile)
都是加载配置的,我们主要看一下我们最常用的两个
configure()configure(String resource)
查看我们的源码,是这定义的
Configuration
....public Configuration configure() throws HibernateException { return configure( StandardServiceRegistryBuilder.DEFAULT_CFG_RESOURCE_NAME );}public Configuration configure(String resource) throws HibernateException { standardServiceRegistryBuilder.configure( resource ); // todo : still need to have StandardServiceRegistryBuilder handle the "other cfg.xml" elements. // currently it just reads the config properties properties.putAll( standardServiceRegistryBuilder.getSettings() ); return this;}....
DEFAULT_CFG_RESOURCE_NAME值
public class StandardServiceRegistryBuilder { /** * The default resource name for a hibernate configuration xml file. */ public static final String DEFAULT_CFG_RESOURCE_NAME = "hibernate.cfg.xml"; .....}
所以如果我们的配置文件 hibernate.cfg.xml 在 src下,那么我们下面的两种方式是一样的
//下面的两行代码是一样的conf.configure();conf.configure("hibernate.cfg.xml");
我们的主配置文件绝大多数都是放在src 下的,所以一般都是上面两种方式加载配置的。
如果你放在 src其他目录下,需要写相对于 src下的相对位置。比如我现在的配置文件是在src/com下,那么我的添加配置应该如下
conf.configure("com/hibernate.cfg.xml");
二、Configuration例子
/** * Configuration 配置一 */ @Test public void configurationDemo1(){ //Configuration功能: 配置加载类.用于加载主配置,orm元数据加载 //1 创建Configuration,调用空构造方法 Configuration conf = new Configuration(); //2 读取指定主配置文件 => 空参加载方法,加载src下的hibernate.cfg.xml文件 conf.configure(); //或者调用如下的方法,与上面是一样的 //sconf.configure("hibernate.cfg.xml"); //如果我们主配置文件是在com下面,那么应该是 conf.configure("com/hibernate.cfg.xml"); //3 根据配置信息,创建 SessionFactory 对象 SessionFactory factory = conf.buildSessionFactory(); //4 获取session Session session = factory.openSession(); //5 开启事务 Transaction t = session.beginTransaction(); User user = new User("xiaoming",18); //6 数据持久化 session.persist(user); //7 提交事务 t.commit(); //8 关闭session session.close(); }
三、推荐使StandardServiceRegistry
@Testpublic void configurationDemo2(){ // 但在5.1.0版本汇总,hibernate则采用如下新方式获取: // 1. 配置类型安全的准服务注册类,这是当前应用的单例对象,不作修改,所以声明为final // 在configure("hibernate.cfg.xml")方法中,如果不指定资源路径,默认在类路径下寻找名为hibernate.cfg.xml的文件 final StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build(); // 2. 根据服务注册类创建一个元数据资源集,同时构建元数据并生成应用一般唯一的的session工厂 SessionFactory factory = new MetadataSources(registry).buildMetadata().buildSessionFactory(); //3 获取session Session session = factory.openSession(); //4 开启事务 Transaction t = session.beginTransaction(); User user = new User("mingming",20); //5 数据持久化 session.persist(user); //6 提交事务 t.commit(); //7 关闭session session.close();}
四、数据库中的结果
阅读全文
0 0
- SSH与SSM学习之hibernate04——Configuration
- SSH与SSM学习之hibernate05——SessionFactory
- SSH与SSM学习之hibernate06——Session
- SSH与SSM学习之hibernate07——Transaction
- SSH与SSM学习之hibernate13——HQL查询
- SSH与SSM学习之hibernate14——Criteria查询
- SSH与SSM学习之hibernate21——离线查询
- SSH与SSM学习之hibernate25——批量抓取
- SSH与SSM学习之Struts206——参数获取
- SSH与SSM学习之Struts211——拦截器
- SSH与SSM学习之Struts212——标签
- SSH与SSM学习之Spring15——cglib代理
- SSH与SSM学习之SSH整合01——SSH整合原理和导包
- SSH与SSM学习之SSH整合04——Struts2与Spring整合
- SSH与SSM学习之SSH整合06——Hibernate与Spring整合
- SSH与SSM学习之SSH整合02——单独配置Spring容器
- SSH与SSM学习之SSH整合03——单独配置Struts2
- SSH与SSM学习之SSH整合05——单独配置Hibernate
- Codeforces Round #288 (Div. 2)---D. Tanya and Password
- VS2013 +openCV(3.0)+Matlab(2014-64)配置:
- 实现块级元素垂直居中
- 如何判断单链表是否存在环
- Spring JPA @Query学习
- SSH与SSM学习之hibernate04——Configuration
- Constant dripping wears the stone
- C++多态的实现及原理
- Hong Kong Regional Contest 2016 [Kattis
- Vuerouter学习笔记
- numpy+matplotlib学习
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E. Maximum Flow
- 指针专题讲义
- Android Studio "佛祖保佑 永无bug" 注释模板设置详解(仅供娱乐)