hibernate核心配置文件详解

来源:互联网 发布:搜狐2016出品的网络剧 编辑:程序博客网 时间:2024/05/20 22:29

核心配置文件详解

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><!-- property 元素用于配置Hibernate中的属性键:值       -->  <!-- hibernate.connection.driver_class : 连接数据库的驱动  --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  <!-- hibernate.connection.username : 连接数据库的用户名 --><property name="hibernate.connection.username">root</property>  <!-- hibernate.connection.password : 连接数据库的密码 --><property name="hibernate.connection.password">1234</property>  <!-- hibernate.connection.url : 连接数据库的地址,路径 --> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/EE19Day01</property><!-- show_sql: 操作数据库时,会 向控制台打印sql语句 --><property name="show_sql">true</property><!-- format_sql: 打印sql语句前,会将sql语句先格式化  --><property name="format_sql">true</property><!-- hbm2ddl.auto: 生成表结构的策略配置 update(最常用的取值): 如果当前数据库中不存在表结构,那么自动创建表结构.  如果存在表结构,并且表结构与实体一致,那么不做修改 如果存在表结构,并且表结构与实体不一致,那么会修改表结构.会保留原有列. create(很少):无论是否存在表结构.每次启动Hibernate都会重新创建表结构.(数据会丢失) create-drop(极少): 无论是否存在表结构.每次启动Hibernate都会重新创建表结构.每次Hibernate运行结束时,删除表结构. validate(很少):不会自动创建表结构.也不会自动维护表结构.Hibernate只校验表结构. 如果表结构不一致将会抛出异常.  --><property name="hbm2ddl.auto">update</property><!-- 数据库方言配置  org.hibernate.dialect.MySQLDialect (选择最短的) org.hibernate.dialect.MySQLInnoDBDialect org.hibernate.dialect.MySQLMyISAMDialect --><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- hibernate.connection.autocommit: 事务自动提交  --><property name="hibernate.connection.autocommit">true</property><!-- 将Session与线程绑定=> 只有配置了该配置,才能使用getCurrentSession --><property name="hibernate.current_session_context_class">thread</property><!-- 引入ORM 映射文件 填写src之后的路径 --><mapping resource="com/itheima/a_hello/User.hbm.xml"/></session-factory></hibernate-configuration>






<!-- SessionFactory,相当于之前学习连接池配置 --><session-factory><!-- 1 基本4项 --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///h_day01_db</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">1234</property><!-- 2 与本地线程绑定 --><property name="hibernate.current_session_context_class">thread</property>  <!-- 3 方言:为不同的数据库,不同的版本,生成sql语句(DQL查询语句)提供依据  * mysql 字符串 varchar * orcale 字符串 varchar2 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property><!-- 4 sql语句 --><!-- 显示sql语句 --><property name="hibernate.show_sql">true</property><property name="hibernate.format_sql">true</property><!-- 5 自动创建表(了解) ,学习中使用,开发不使用的。* 开发中DBA 先创建表,之后根据表生产 PO类* 取值:update:【】如果表不存在,将创建表。如果表已经存在,通过hbm映射文件更新表(添加)。(映射文件必须是数据库对应)表中的列可以多,不负责删除。create :如果表存在,先删除,再创建。程序结束时,之前创建的表不删除。【】create-drop:与create几乎一样。如果factory.close()执行,将在JVM关闭同时,将创建的表删除了。(测试)validate:校验 hbm映射文件 和 表的列是否对应,如果对应正常执行,如果不对应抛出异常。(测试)--><property name="hibernate.hbm2ddl.auto">create</property><!-- 6 java web 6.0 存放一个问题* BeanFactory 空指针异常异常提示:org.hibernate.HibernateException: Unable to get the default Bean Validation factory* 解决方案:取消bean校验--><property name="javax.persistence.validation.mode">none</property><!-- 添加映射文件 <mapping >添加映射文件resource 设置 xml配置文件 (addResource(xml))class 配置类 (addClass(User.class)) 配置的是全限定类名--><mapping  resource="com/itheima/a_hello/User.hbm.xml"/></session-factory>



0 0
原创粉丝点击