Hibernate配置



Hibernate配置


1a1f5e5811485a900e085be8cb8a1048af1.png


  1. 核心配置文件


  2. 映射配置文件


  3. 配置本地的DTD约束




0 1

核心配置文件


Hibernate核心配置文件传递的是连接数据库的必备信息,还有一些可选配置,所以在一个使用Hibernate的工程中需要去完成一个这样的配置文件


我们可以去下载下来的Hibernate包中的测试工程去拿一份

4198bbdfe7dc4678e7b02a473b9cc45a9dc.png


默认名为hibernate.cfg.xml,一般不去改这个名字。因为Configuration类里面

加载核心配置文件的方法传入名就是这个


100c447509dc228809a6618dd1994389e60.jpgb7836b76b575d778bdd37345a7295d0a3b8.jpg


hibernate.cfg.xml

6a7a74640a8111e9b11a5c05fba58bb00ff.jpg


这是直接在测试工程中拿的,我们可以去删掉内容

<!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>
               
   </session-factory>
</hibernate-configuration>

连接不同的数据库的它的配置属性名不一样,所以它提供了一个各大数据库的配置模板,在文件包中的测试工程的etc里

e7ee4848795d42cdaff4aa85746615d28f7.png


它里面包含很多数据库,我这里用的mysql所以我就看mysql的


1b60e165418374e5ec1ef731ffdc2fb1f5f.jpg

## MySQL

#hibernate.dialect org.hibernate.dialect.MySQLDialect
#hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect
#hibernate.dialect org.hibernate.dialect.MySQLMyISAMDialect
#hibernate.connection.driver_class com.mysql.jdbc.Driver
#hibernate.connection.url jdbc:mysql:///test#hibernate.connection.username gavin
#hibernate.connection.password

必须配置的其实就是下面四个(驱动包、url路径、用户名、密码)还加一个方言dialect,因为不同的数据库sql语言有点差别,最后按照上面模板的属性名去配置即可

 <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>

<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>

<property name="hibernate.connection.url">jdbc:mysql:///hibernate?serverTimezone=Asia/Shanghai</property>

<property name="hibernate.connection.username">root</property>

<property name="hibernate.connection.password">123456</property>

还有一些可选配置(显示sql、格式sql、自动建表)

<property name="hibernate.show_sql">true</property>

<property name="hibernate.format_sql">true</property>

<property name="hibernate.hbm2ddl.auto">update</property>

show_sql开了后,hibernate给你自动生成执行的语句会在控制台打印给你


format_sql:将控制台显示的sql语句格式化


hbm2ddl.auto:有5种属性值

none不使用hibernate的自动建表
create如果数据库中已经有表,删除原有表,重新创建,如果没有表,新建表
create-drop

启动时删除表,再建表。关闭时再删除表

update

如果数据库中有表,使用原有表,如果没有表,创建新表

validate

如果没有表,不会创建表,报错

除了这些连接配置外,还有最后一个加载映射配置文件。

<mapping resource="com/hao/domain/Student.hbm.xml"/>



02

映射配置文件


映射配置文件关于表和domain类的映射,列字段与属性的映射

class标签:建立类与表的映射关系

id标签:建立类中的属性与表中主键的对应关系

property标签:用于建立类中普通属性与表的对应关系

<?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">

<hibernate-mapping>
   <class name="com.hao.domain.Student" table="student">

       <id name="id" column="id">
           <generator class="native"/>
       </id>
       <property name="name" column="name"/>
       <property name="age"  column="age"/>
    </class>
</hibernate-mapping>
标签
属性
class
name
类全限定名
table
表名
catalog
数据库名(可省)
id
name
类属性名
column
表字段名
length
字段长度
type
字段类型
property
name
类属性名
column
表字段名
length字段长度
type字段类型
not-null
不允许为空
unique
唯一
由于没有对应映射的表时它会自动去创建表,所以这个时候就还需要知道字段长度,类型,是否为空这些。



03

导入本地约束

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!DOCTYPE hibernate-mapping PUBLIC  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
在这些xml的配置文件中都使用了对应的dtd约束,并且是来自网络。
如果没网就不行了,所以来配置本地的
首先在加载jar包中找到hibernate-core-5.4.4.Final.jar

7a9f5584ed2d14728dd7c6a6f6a1ab0c681.png

往下就能找到

33b8458d18973e4ccd30ab98fc85e44e20d.png

然后把它给拿到本地


a29b162790abc720e5af5c63cd787572f41.png

最后给对应的地址设置上本地的匹配

90f157a31d5602bd0ca0759cdca2b41f15d.png






69203954032551bb7652448c6e06c42bad0.png 872516588c338eb7cc72a4c64d34fd838b4.jpg

它,

不仅仅是一个码





本文分享自微信公众号 - IT那个小笔记(qq1839646816)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

posted @ 2019-09-04 10:52  木瓜煲鸡脚  阅读(79)  评论(0)    收藏  举报