Hibernet之hibernate.cfg.xml
hibernet配置文件
头部 与 尾部
固定写法:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!--中间部分-->
</hibernate-configuration>
--------------------------------------
<!-- 一个sessionFactory代表数据库的一个连接-->
<session-factory>
<!-- 链接数据库的用户名 -->
<property name="connection.username">****</property>
<!-- 链接数据库的密码 -->
<property name="connection.password">****</property>
<!-- 链接数据库的驱动 -->
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<!-- 链接数据库的url -->
<property name="connection.url">
jdbc:mysql://localhost:3306/数据库名称
</property>
<!--
方言 告诉hibernate使用什么样的数据库,hibernate就会在底层拼接什么样的sql语句
-->
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="hbm2ddl.auto">update</property>
<!--是否展示生成的SQL语句-->
<property name="show_sql">true</property>
<!-- 持久化类的映射信息-->
<mapping resource="*.hbm.xml" />
</session-factory>
--------------------------------------
hbm2ddl.auto属性
根据持久化类生成表的策略:一共有四种方式“validate\update\create\create-drop”
validate:根据映射文件检查持久化类和表之间是否匹配;
update:每次hibernet启动的时候,检查数据库表是否存在,如果存在则什么也不处理,如果不存在则建立新表;
思考一:如果表在数据库中已经生成,但是持久化类的属性信息改变,使用此属性是否能变更表,一会验证!
经过验证是可以的;
create:每次hibernet启动的时候,都会根据持久化类生成新表;
create-drop:每次hibernet启动的时候,都会根据持久化类生成新表,当hibernet关闭的时候,都会删除生成的新表;
--------------------------------------
hibernate.cfg.xml主要用途
告诉hibernet链接数据库的信息,包括用什么方言拼接sql语句,用什么样的策略根据持久化类来生成数据库中的表;