Hibernate_01_配置文件
Hibernate 配置文件(此内容用于新手上路)
Hibernate配置文件支持两种形式,一种是XML格式的配置文件,另一种是Java属性文件格式的配置文件,采用“键值”的形式。建议采用XML格式的配置文件。XML配置文件可以直接巴对映射文件进行配置,并由Hibernate自动加载,而properties文件则必须在程序中通过编码加载映射文件。Hibernate给人的感受是灵活的,要达到同一个目的,可以任选其一使用。
方法1、在hibernate.cfg.xml中加入元素<property>,<mapping>,放置在类路径(classpath)的根目录下。
注意:(创建hibernate.cfg.xml时,名字一定要相同不然的话,会报错)
方法2、创建Java属性文件格式的配置文件,将hibernate.properties放置放 在类路径的根目录下。
1.创建XML格式的配置文件(oracle)
1,配置hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 首先设定jdbc链接相关的信息(驱动,url,用户名,密码) --> <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<!-- --> <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property> <property name="connection.username">scott</property> <property name="connection.password">111222</property> <!-- 设定方言 --> <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property> <!-- 设定让hibernate帮我们自动创建表--> <!-- create: 每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据 库表数据丢失的一个重要原因。 create-drop : 每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。 update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类 自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等应用第 一次运行起来后才会。 validate : 每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。 --> <property name="hbm2ddl.auto">create</property> <!--注意了 show_sql 和 format_sql 一齐 ,不然的话sql语句不会输出-->
<!-- 显示sql语句--> <property name="show_sql">true</property> <!-- 优化查看sql语句 --> <property name="format_sql">true</property> <!-- 写映射文件XXX.xml的路径 --> <mapping resource="entity/StudentMapper.xml" /> </session-factory> </hibernate-configuration>
2,创建实体类
package entity; public class Student { private String sno; private String sname; public String getSno() { return sno; } public void setSno(String sno) { this.sno = sno; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } }
3.创建映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- package="实体类的路径"-->
<hibernate-mapping package="entity">
<!-- name="实体名" table="创建的表名"-->
<class name="Student" table="students">
<!--
identity:递增
sequence:序列
<param name="sequence">序列名</param>
native:由底层方言产生
assigned:用户自定义id
foreign:用于一对一关系共享主键时,两个id值一样
。。。。。
-->
<!-- name="属性" column="列名" 注:不写column,会列名会默认是属性名-->
<id name="sno" >
<generator class="assigned"></generator>
</id>
<property name="sname" column="name"></property>
</class>
</hibernate-mapping>
(未完)
浙公网安备 33010602011771号