Hibernate核心配置文件总结

  • 引入约束

  • 连接数据库(重点)

  • Hibernate中其他配置

  • 引入映射文件(必须)

按照hibernate核心文件配置的顺序是以上的排序。我现在以步骤的重要的先后顺序来按点讲解,顺便也当自己复习和回顾。

连接数据库

现在主要使用三种数据库:MySQLOracleSQL Server

MySQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<hibernate-configuration>
<session-factory>
<!--
加载驱动
连接数据库
数据库用户名
数据库密码
-->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/DataBaseName</property>
<property name="hibernate.connection.username">mysqlusername</property>
<property name="hibernate.connection.password">mysqlpassword</property>

</session-factory>
</hibernate-configuration>

Oracle

1
2
3
4
5
6
7
8
9
10
11
<hibernate-configuration>
<session-factory>

<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">
jdbc:oracle:thin:@localhost:1521:dataBaseName</property>
<property name="hibernate.connection.username">username</property>
<property name="hibernate.connection.password">password</property>

</session-factory>
</hibernate-configuration>

SQL Server

1
2
3
4
5
6
7
8
9
10
11
12
13
<hibernate-configuration>
<session-factory>

<property name="hibernate.connection.driver_class">
com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;databaseName="xx"
</property>
<property name="hibernate.connection.username">username</property>
<property name="hibernate.connection.password">password</property>

</session-factory>
</hibernate-configuration>

官方给出配置信息可查看hibernate-release\project\etc内的hibernate.properties文件

引入映射文件

1
<mapping resource="org/itcast/entity/User.hbm.xml"/>

org.itcast.entity:包名。User.hbm.xml:映射文件名。

引入约束

在配置文件头引入dtd约束

1
2
3
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

Hibernate中其他配置

  • 输出底层sql语句并格式化
1
2
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
  • hibernate创建表
1
2
//update:如果已经有表则更新,如果没有则创建
<property name="hibernate.hbm2ddl.auto">update</property>
  • 配置数据库方言
1
2
3
4
5
6
// SQL Server 
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
//MySQL三种:MySQLDialect、MySQLInnoDBDialect、MySQLMyISAMDialect
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
//Oracle三种:Oracle8iDialect、Oracle9iDialect、Oracle10gDialect
<property name="hibernate.dialect">org.hibernate.dialect.Oracle8iDialect</property>

数据库方言:在数据库里面相同的功可能是需要不同的关键字才能实现。比如:实现分页,mysql关键字是limit,oracle是rownum。为了区别并执行你写的底层sql语句,需要配置数据库相应的方言


简单的介绍一下这三种数据库:

MySQL,最初的核心思想主要是开源、简便、易用。经过几次改版之后蜕变成一个成熟的关系型数据库系统,由于MySQL的早期定位,其主要应用场景就是互联网开发。基本上,互联网的爆发成就了MySQL,LAMP架构风靡天下。

Oracle,基于运算架构了一种新型的数据存储模型,基于这种模型Oracle成为了一个非常典型的关系数据库,其主要特点是结构严谨、高性能、高可用。由于诞生的早,使其在传统数据库应用中大杀四方,金融、通信、能源、运输、零售、制造等各个行业的大型公司基本都是用了Oracle。

SQL Server,一般是指MS SQL Server,其最大的优势在于集成了MS公司各类产品及资源,提供了强大了可视化界面、高度集成的管理工具。MS SQL Server是MS公司在软件集成方案中的重要一环,也为WIN系统在企业级应用中的普及做出了很大贡献。