前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hibernate配置

Hibernate配置

作者头像
木瓜煲鸡脚
修改2019-09-18 10:00:38
1.1K0
修改2019-09-18 10:00:38
举报
文章被收录于专栏:Jasper小笔记Jasper小笔记

Hibernate配置

  1. 核心配置文件
  2. 映射配置文件
  3. 配置本地的DTD约束

01

核心配置文

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

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

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

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

hibernate.cfg.xml

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

代码语言:javascript
复制
<!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里

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

代码语言:javascript
复制
## 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语言有点差别,最后按照上面模板的属性名去配置即可

代码语言:javascript
复制
 <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、自动建表)

代码语言:javascript
复制
<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

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

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

代码语言:javascript
复制
<mapping resource="com/hao/domain/Student.hbm.xml"/>

02

映射配置文件

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

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

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

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

代码语言:javascript
复制
<?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

导入本地约束

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

然后把它给拿到本地

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

它,

不仅仅是一个码

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT那个小笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档