5 -- Hibernate的基本用法 --4 1 创建Configuration对象
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对象的更多相关文章
- Mybatis 创建Configuration对象
Mybatis 创建Configuration对象是在项目启动时就创建了. 具体创建流程为: https://blog.csdn.net/wolfcode_cn/article/details/80 ...
- hibernate(四)__由表逆向创建Domain对象和对象关系映射文件
之前我们是手写Domain对象和对象关系映射文件->然后生成数据库中的Table. 现在我们反过来先在数据库中建好Table->然后用工具生成Domain对象和对象关系映射文件. 步骤: ...
- 5 -- Hibernate的基本用法 --5 3 改变持久对象状态的方法
1. 持久化实体 Serializable save(Object obj) : 将obj对象变为持久化状态,该对象的属性将被保存到数据库. void persist(Object obj) : 将o ...
- 5 -- Hibernate的基本用法 --4 深入Hibernate配置文件
Hibernate的持久化操作离不开SessionFactory对象,这个对象是整个数据库映射关系经过编译后的内存镜像,该对象的openSession()方法可打开Session对象.该对象通常由Co ...
- 5 -- Hibernate的基本用法 --2 2 Hibernate的数据库操作
在所有的ORM框架中有一个非常重要的媒介 : PO(持久化对象:Persistent Object).持久化对象的作用是完成持久化操作,简单地说,通过该对象可对数据执行增.删.改的操作 ------ ...
- Hibernate连接mysql数据库并自动创建表
天才第一步,雀氏纸尿裤,Hibernate第一步,连接数据库. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个 ...
- 5 -- Hibernate的基本用法 --5 1 持久化类的要求
1. 提供一个无参数的构造器:所有的持久化类都应该提供一个无参数的构造器,这个构造器可以不采用public访问控制符.只要提供了无参数的构造器,Hibernate就可以使用Constructor.n ...
- 5 -- Hibernate的基本用法 --4 9 其他常用的配置属性
Hibernate其他常用的配置属性: ⊙ hibernate.show_sql : 是否在控制台输出Hibernate持久化操作底层所使用的SQL语句.只能为true和false两个值. ⊙ hib ...
- 5 -- Hibernate的基本用法 -- 要点
Hibernate的基本用法 ⊙ ORM的基本知识 ⊙ ORM和Hibernate的关系 ⊙ Hibernate的基本映射思想 ⊙ Hibernate入门知识 ⊙ 使用Eclipse开发Hiberna ...
随机推荐
- Hbase 学习(六) 配置文件调优
这部分的内容,网上多了去了,都大同小异的,仅作为备忘录,省得需要的时候又要到处查. 1.zookeeper.session.timeout 默认3分钟,zookeeper和hbase通信的超时时间,设 ...
- 根据map键值对,生成update与select语句,单条执行语句
方法 constructUpdateSQL private static String constructUpdateSQL(String tableName, List<Map<Stri ...
- IDEA初始化配置
1.配置git 2.配置JDK[Configure-->Oroject Defaults-->Project Structure] 3.配置maven
- 动态规划--最长上升子序列(Longest increasing subsequence)
前面写了最长公共子序列的问题.然后再加上自身对动态规划的理解,真到简单的DP问题很快就解决了.其实只要理解了动态规划的本质,那么再有针对性的去做这方的题目,思路很快就会有了.不错不错~加油 题目描述: ...
- CSS遮罩层的实现
偶然发现自己原来写了一个CSS遮罩层,虽然这个东西没什么技术含量,但如果本人离开公司后又遇见此类问题,那么可能又得花些时间来找资料了.所以决定还是把它记下来吧. 直接上代码吧. 第一步,html代码: ...
- Linux gcc/g++链接编译顺序详解
gcc/g++链接时对库的顺序要求 -Ldir Add directory dir to the list of directories to be searched for -l. -llibrar ...
- 自然语言交流系统 phxnet团队 创新实训 个人博客 (十三)
关于java socket的一些总结: Java Socket通信有很多的时候需要我们不断的学习.方面效率虽然不及C与C++但它以灵活语言优势,为大家广为使用. 本文就对在使用java做通信方面程序时 ...
- 关于Unity中Time.deltaTime的使用
例子 void Update () { this.transform.Rotate(Vector3.up, Time.deltaTime * 50, Space.World); //绕世界的y轴旋转, ...
- String和inputstream互转【转文】
URLConnection urlConn = url.openConnection(); // 打开网站链接s BufferedReader reader = new BufferedReader( ...
- Spring JDBC调用存储函数
以下示例将演示spring jdbc如何调用存储函数.在这个示例中将通过调用存储函数来读取Student表中的一个可用记录信息.传递一个ID并获取学生的姓名. 语法: SimpleJdbcCall j ...