用hibernate.properties代替hibernate.cfg.xml配置常用的属性
Posted 技术让世界更精彩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用hibernate.properties代替hibernate.cfg.xml配置常用的属性相关的知识,希望对你有一定的参考价值。
我们使用hibernate时经常在hibernate.cfg.xml文件中配置数据库连接的相关属性,是否显示sql语句,数据库的方言等,这些配置其实也可以在.properties文件中配置。现在我把这把文件的名字起为:hibernate.properties.
思路:写一个domian对象,以及这个domain对象映射到数据库中的.hbm.xml文件。和一个测试类(这个测试类是更新数据库中的一条数据)
以及hibernate.properties文件(这个文件是放在src的下面即在classPath的根目录下)
一:domain Person的代码是:
package com.qls.domain; import java.util.Date; /** * Created by 秦林森 on 2017/5/21. */ public class Person { private Integer id; private String name; private Date enterCampusDate; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getEnterCampusDate() { return enterCampusDate; } public void setEnterCampusDate(Date enterCampusDate) { this.enterCampusDate = enterCampusDate; } }
二:Person.hbm.xml文件的代码如下:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.qls.domain"> <class name="Person" table="person"> <id name="id" column="person_id"> <generator class="native"/> </id> <property name="name"/> <property name="enterCampusDate" type="timestamp"/> </class> </hibernate-mapping>
三:hibernate.properties文件的代码如下:
#the row end do not add semicolon; hibernate.show_sql=true hibernate.connection.driver_class=oracle.jdbc.OracleDriver hibernate.connection.url=jdbc:oracle:thin:@localhost:1521:orcl hibernate.connection.username=scott hibernate.connection.password=a123456 hibernate.dialect=org.hibernate.dialect.Oracle10gDialect hibernate.connection.pool_size=10
四:测试类
package com.qls.test; import com.qls.domain.Person; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl; import org.hibernate.cfg.Configuration; import org.hibernate.cfg.ImprovedNamingStrategy; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * Created by ${秦林森} on 2017/5/22. */ public class Test12 { public static void main(String[] args) { Configuration configuration = new Configuration().addResource("/com/qls/domain/Person.hbm.xml"); InputStream in = Test12.class.getClassLoader().getResourceAsStream("hibernate.properties"); Properties properties = new Properties(); try { properties.load(in); } catch (IOException e) { e.printStackTrace(); } configuration.setProperties(properties); SessionFactory sessionFactory = configuration.buildSessionFactory(); Session session = sessionFactory.openSession();//一次会话 Transaction tx = session.beginTransaction();//开启事务 Person person=session.get(Person.class,24); person.setName("人民万岁"); session.update(person); tx.commit();//提交事务。 } }
以上是关于用hibernate.properties代替hibernate.cfg.xml配置常用的属性的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 hibernate.properties 文件而不是 hibernate.cfg.xml
使用 hibernate.cfg.xml 时更改 hibernate.properties 文件的位置