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 ...
随机推荐
- 解决mysql开启GTID主从同步出现1236错误问题
解决mysql开启GTID主从同步出现1236错误问题 最近遇到mysql开启gtid做复制时,从库出现1236错误,导致同步无法进行,本文就这问题记录下处理步骤,有关gtid知识在这里不做介 ...
- 客户端通过HTTP协议与服务端交换数据
客户端(包括浏览器)通过HTTP协议与服务端交换数据的描述 发起请求 header 键值对中的key大小写不敏感 Accept: application/json Content-Type: ...
- Axiom3D写游戏:用Overlay实现Mesh浏览.
从网上找了些资源,大多搜Ogre,Mesh资源,然后为了方便查看各个Mesh,以及对应骨骼动画.为了实用性,考虑放在原游戏窗口里实现.最开始打算窗口新建viewport来实现,后发现这种方式的局限性, ...
- [转]jQuery选择器 (详解)
1).基本 #id 根据给定的ID匹配一个元素.例如:$("#id")element 根据给定的元素名匹配所有元素.例如:$("div").class 根据给定 ...
- C# webbrowser判断页面是否加载完毕
private void Form1_Load(object sender, EventArgs e) { webalipay.Url = new Uri("https://authzth. ...
- 格林威治时间(GTM)转北京时间
需要模块:pytz(三方)和datetime import pytz import datetime time = "Tue, 12 Jun 2012 14:03:10 GMT" ...
- python pip 更换国内安装源(windows)
1.点击此电脑,在最上面的的文件夹窗口输入 : %APPDATA% 2.按回车跳转到以下目录,新建pip文件夹 3.创建pip.ini文件 4.打开文件夹,输入以下内容,关闭即可(注意:源镜像可替换) ...
- 机器学习——利用SVD简化数据
奇异值分解(Singular Value Decompositon,SVD),可以实现用小得多的数据集来表示原始数据集. 优点:简化数据,取出噪声,提高算法的结果 缺点:数据的转换可能难以理解 适用数 ...
- Linux学习笔记<五>——<Shell部分>
管道命令(pipe) 1.把一个命令的输出作为另一个命令的输入 ls -al /etc | less 2.选取命令:cut和grep cut命令可以将一段消息的某段切出来. -d接分隔符,-f是取出第 ...
- 如何通过SSH及其Client 批量分发文件和执行管理命令
一.前提:已经配置好root和hadoop用户的无密码的SSH访问 二.直接上代码 ##复制单个文件[hadoop@nn1 hadoop]$ for ip in 102 103 104 111 112 ...