org.hibernate.cfg.Configuration实例代表了应用程序到SQL数据库的配置信息,Configuration对象提供了一个buildSessionFactory()方法,该方法可以产生一个不可变的SessionFactory对象。

  另外,先实例化Configuration实例,然后在添加Hiberante持久化类。Configuration对象可调用addAnnotatedClass()方法逐个地添加持久化类,也可调用addPackage()方法添加指定包下的所有持久化类。

  创建Configuration对象的方式根据Hibernate配置文件不同而不同:

    ⊙ 使用hibernate.properties文件作为配置文件

    ⊙ 使用hibernate.cfg.xml文件作为配置文件

    ⊙ 不使用任何配置文件,以编码方式创建Configuration对象

  Configuration实例的唯一作用是创建SessionFactory实例,所以它被设计成启动期间对象,一旦SessionFactory创建完成,它就被丢弃了。

  1. 使用hibernate.properties作为配置文件

    在Hibernate发布包的project\etc路径下,提供了一个hibernate.properties文件,该文件爱你详细列出了Hibernate配置文件的所有属性。

    由于hibernate.properties作为配置文件时,没有提供添加Hibernate持久化类的方式,因此必须调用Configuration对象的addAnnotatedClass()或addPackage()方法,使用这些方法添加持久化类。

Configuration configuration = new Configuration().addAnnotatedClass(Person.class).addAnnotatedClass(Student.class);

  2. 使用hibernate.cfg.xml作为配置文件

    使用hibernate.cfg.xml配置文件可以通过<mapping.../>子元素添加Hibernate持久化类,因此无须通过编程方式添加持久化类。

        // configure()方法将会负责加载hibernate.cfg.xml文件
Configuration config = new Configuration().configure();

  3. 不使用配置文件创建Configuration实例

    Configuration对象提供如下方法,通过编程方式创建Configuration实例:

      ⊙ Configuration addAnnotatedClass(Class annotatedClass) : 用于为Configuration对象添加一个持久化类。

      ⊙ Configuration addPackage(String packageName) : 用于为Configuration对象添加指定包下的所有持久化类。

      ⊙ Configuration setProperties(Properties properties) : 用于为Configuration对象设置一系列属性,这一系列属性通过Properties实例传入。

      ⊙ Configuration setProperty(String propertyName,String value) : 用于为Configuration对象设置一个单独的属性。

    Class : NewsManager

package hibernate.book._5_4_1._3;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration; public class NewsManager {
public static void main(String[] args) {
Configuration conf = new Configuration().addAnnotatedClass(News.class)
.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver")
.setProperty("hibernate.connection.url", "jdbc:mysql:///hibernate")
.setProperty("hibernate.connection.username", "root")
.setProperty("hibernate.connection.password", "System").setProperty("hibernate.c3p0.max_size", "20")
.setProperty("hibernate.c3p0.min_size", "1").setProperty("hibernate.c3p0.timeout", "5000")
.setProperty("hibernate.c3p0.max_statements", "100")
.setProperty("hibernate.c3p0.idle_test_period", "3000")
.setProperty("hibernate.c3p0.acquire_increment", "2").setProperty("hibernate.c3p0.validate", "true")
.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5InnoDBDialect")
.setProperty("hibernate.hbm2ddl.auto", "update"); SessionFactory sessionFactory = conf.buildSessionFactory(); Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); News news = new News();
news.setTitle("Angel");
news.setContent("Spend all your time waiting for that second chance"); session.save(news); tx.commit(); session.close(); sessionFactory.close();
}
}

    适合将部分关键的配置属性放在代码中添加。

啦啦啦

5 -- Hibernate的基本用法 --4 1 创建Configuration对象的更多相关文章

  1. Mybatis 创建Configuration对象

    Mybatis  创建Configuration对象是在项目启动时就创建了. 具体创建流程为: https://blog.csdn.net/wolfcode_cn/article/details/80 ...

  2. hibernate(四)__由表逆向创建Domain对象和对象关系映射文件

    之前我们是手写Domain对象和对象关系映射文件->然后生成数据库中的Table. 现在我们反过来先在数据库中建好Table->然后用工具生成Domain对象和对象关系映射文件. 步骤: ...

  3. 5 -- Hibernate的基本用法 --5 3 改变持久对象状态的方法

    1. 持久化实体 Serializable save(Object obj) : 将obj对象变为持久化状态,该对象的属性将被保存到数据库. void persist(Object obj) : 将o ...

  4. 5 -- Hibernate的基本用法 --4 深入Hibernate配置文件

    Hibernate的持久化操作离不开SessionFactory对象,这个对象是整个数据库映射关系经过编译后的内存镜像,该对象的openSession()方法可打开Session对象.该对象通常由Co ...

  5. 5 -- Hibernate的基本用法 --2 2 Hibernate的数据库操作

    在所有的ORM框架中有一个非常重要的媒介 : PO(持久化对象:Persistent Object).持久化对象的作用是完成持久化操作,简单地说,通过该对象可对数据执行增.删.改的操作 ------ ...

  6. Hibernate连接mysql数据库并自动创建表

    天才第一步,雀氏纸尿裤,Hibernate第一步,连接数据库. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个 ...

  7. 5 -- Hibernate的基本用法 --5 1 持久化类的要求

    1.  提供一个无参数的构造器:所有的持久化类都应该提供一个无参数的构造器,这个构造器可以不采用public访问控制符.只要提供了无参数的构造器,Hibernate就可以使用Constructor.n ...

  8. 5 -- Hibernate的基本用法 --4 9 其他常用的配置属性

    Hibernate其他常用的配置属性: ⊙ hibernate.show_sql : 是否在控制台输出Hibernate持久化操作底层所使用的SQL语句.只能为true和false两个值. ⊙ hib ...

  9. 5 -- Hibernate的基本用法 -- 要点

    Hibernate的基本用法 ⊙ ORM的基本知识 ⊙ ORM和Hibernate的关系 ⊙ Hibernate的基本映射思想 ⊙ Hibernate入门知识 ⊙ 使用Eclipse开发Hiberna ...

随机推荐

  1. Hbase 学习(六) 配置文件调优

    这部分的内容,网上多了去了,都大同小异的,仅作为备忘录,省得需要的时候又要到处查. 1.zookeeper.session.timeout 默认3分钟,zookeeper和hbase通信的超时时间,设 ...

  2. 根据map键值对,生成update与select语句,单条执行语句

    方法 constructUpdateSQL private static String constructUpdateSQL(String tableName, List<Map<Stri ...

  3. IDEA初始化配置

    1.配置git 2.配置JDK[Configure-->Oroject Defaults-->Project Structure] 3.配置maven

  4. 动态规划--最长上升子序列(Longest increasing subsequence)

    前面写了最长公共子序列的问题.然后再加上自身对动态规划的理解,真到简单的DP问题很快就解决了.其实只要理解了动态规划的本质,那么再有针对性的去做这方的题目,思路很快就会有了.不错不错~加油 题目描述: ...

  5. CSS遮罩层的实现

    偶然发现自己原来写了一个CSS遮罩层,虽然这个东西没什么技术含量,但如果本人离开公司后又遇见此类问题,那么可能又得花些时间来找资料了.所以决定还是把它记下来吧. 直接上代码吧. 第一步,html代码: ...

  6. Linux gcc/g++链接编译顺序详解

    gcc/g++链接时对库的顺序要求 -Ldir Add directory dir to the list of directories to be searched for -l. -llibrar ...

  7. 自然语言交流系统 phxnet团队 创新实训 个人博客 (十三)

    关于java socket的一些总结: Java Socket通信有很多的时候需要我们不断的学习.方面效率虽然不及C与C++但它以灵活语言优势,为大家广为使用. 本文就对在使用java做通信方面程序时 ...

  8. 关于Unity中Time.deltaTime的使用

    例子 void Update () { this.transform.Rotate(Vector3.up, Time.deltaTime * 50, Space.World); //绕世界的y轴旋转, ...

  9. String和inputstream互转【转文】

    URLConnection urlConn = url.openConnection(); // 打开网站链接s BufferedReader reader = new BufferedReader( ...

  10. Spring JDBC调用存储函数

    以下示例将演示spring jdbc如何调用存储函数.在这个示例中将通过调用存储函数来读取Student表中的一个可用记录信息.传递一个ID并获取学生的姓名. 语法: SimpleJdbcCall j ...