Hibernate使用方言(dialect)来实现数据库的操作的跨平台性。
1、如何使用
使用者必须在hibernate的配置文件比如hibernate.cfg.xml里对所使用的hibernate方言加以设置。
org.hibernate.dialect.Oracle9Dialect
2、hibernate支持的方言:
RDBMS
方言
DB2 |
org.hibernate.dialect.DB2Dialect |
DB2 AS/400 |
org.hibernate.dialect.DB2400Dialect |
DB2 OS390 |
org.hibernate.dialect.DB2390Dialect |
PostgreSQL |
org.hibernate.dialect.PostgreSQLDialect |
MySQL |
org.hibernate.dialect.MySQLDialect |
MySQL with InnoDB |
org.hibernate.dialect.MySQLInnoDBDialect |
MySQL with MyISAM |
org.hibernate.dialect.MySQLMyISAMDialect |
Oracle (any version) |
org.hibernate.dialect.OracleDialect |
Oracle 9i/10g |
org.hibernate.dialect.Oracle9Dialect |
Sybase |
org.hibernate.dialect.SybaseDialect |
Sybase Anywhere |
org.hibernate.dialect.SybaseAnywhereDialect |
Microsoft SQL Server |
org.hibernate.dialect.SQLServerDialect |
SAP DB |
org.hibernate.dialect.SAPDBDialect |
Informix |
org.hibernate.dialect.InformixDialect |
HypersonicSQL |
org.hibernate.dialect.HSQLDialect |
Ingres |
org.hibernate.dialect.IngresDialect |
Progress |
org.hibernate.dialect.ProgressDialect |
Mckoi SQL |
org.hibernate.dialect.MckoiDialect |
Interbase |
org.hibernate.dialect.InterbaseDialect |
Pointbase |
org.hibernate.dialect.PointbaseDialect |
FrontBase |
org.hibernate.dialect.FrontbaseDialect |
Firebird |
org.hibernate.dialect.FirebirdDialect |
3、自定义方言
实际使用时,hibernate自带的方言会不满足实际应用要求,这时我们就要自定义方言了。
注意了,不要重新造轮子,自定义的方言继承于原生方言,这样可以保证原生方言提供的东西还能继续使用。例如
public class MySQL5Dialect extends org.hibernate.dialect.MySQL5Dialect
来一段代码示例:
public class MySQL5Dialect extends org.hibernate.dialect.MySQL5Dialect {
public MySQL5Dialect(){
super();
//时间秒数比较函数,返回值为秒数,如果?1 > ?2,返回值为正数,反之为负数
registerFunction("timediffsecond",new SQLFunctionTemplate(Hibernate.INTEGER,"time_to_sec(timediff(?1,?2))"));
/**
* 字符串定位函数,即子字符串是否在查询字符串中。
* 返回值为0:子字符串不在查询字符串中;
* 返回值大于0:子字符串在查询字符串中.
* 示例:locate(('bar', 'foobarbar').
*/
registerFunction("locate",new StandardSQLFunction("locate",Hibernate.INTEGER));
}
}
分享到:
相关推荐
### Hibernate经典入门篇知识点梳理 #### 一、Hibernate简介与作用 - **概念**:Hibernate是一种开放源码的对象关系映射(ORM)框架,用于Java应用与关系型数据库之间的交互。它提供了一种机制,使得Java对象能够...
《经典Hibernate教程_从入门到精通》第一篇主要介绍了ORM概述和Hibernate的作用,以及Hibernate应用程序的基本结构和JDBC与Hibernate的对比。以下是详细的知识点解析: 1. **ORM概述** - ORM(Object-Relational ...
这里,`hibernateProperties`设置了Hibernate的运行时配置,如方言(Dialect)和是否显示SQL语句。`mappingDirectoryLocations`则指定了实体类的映射文件位置。 第二种方式是通过加载`hibernate.cfg.xml`文件来配置...
本篇将详细介绍标题为"DmDialect-for-hibernate4.0.zip"的压缩包文件及其包含的两个重要组件:Dm7JdbcDriver17.jar和DmDialect-for-hibernate4.0.jar,以及它们在SpringBoot项目中的作用。 首先,SpringBoot是一个...
本篇文章将深入探讨Hibernate 3.1.1和3.1.2版本的开发文档,为读者揭示其核心特性和使用方法。 一、Hibernate ORM基础 Hibernate的核心功能在于提供一个持久化层,将Java对象与数据库中的记录进行映射。通过XML配置...
本篇将介绍Hibernate的入门知识,包括基本概念、配置和简单操作。 **1. Hibernate简介** Hibernate是由 Gavin King 创建的一个开源项目,它实现了JPA(Java Persistence API)规范,提供了一种在Java应用中持久化...
这篇教程将深入讲解Hibernate的基本配置过程,确保你能顺利搭建并运行一个简单的Hibernate项目。 **一、Hibernate概述** Hibernate是一个开源的ORM框架,它的主要功能是将Java对象与数据库表进行映射,从而避免了...
本篇将详细解析Hibernate的配置文件,帮助你深入理解其工作原理和配置过程。 标题"hibernate--5.Hibernate配置文件详解"暗示我们将探讨的是Hibernate 5版本的配置细节。这个版本引入了一些新特性和改进,同时也保持...
这篇中文开发者文档将深入讲解Hibernate的核心概念、配置、实体映射、查询语言以及高级特性。 **一、Hibernate核心概念** 1. **对象关系映射(ORM)**: Hibernate是ORM工具的代表,通过在Java对象与数据库记录之间...
本篇文章将详细探讨如何使用Hibernate连接到Access数据库,以及相关架构包的重要性和使用方法。 首先,我们来看“hibernate.zip”这个压缩包,它包含了必要的组件来实现Java与Access数据库的交互。其中,...
3. **配置**:Hibernate的配置文件(hibernate.cfg.xml)包含了数据库连接信息、方言设置、缓存策略等,是初始化SessionFactory的关键。 4. **实体管理**: - CRUD操作:Create(创建)、Read(读取)、Update...
**Hibernate扫盲篇** 在Java开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地...希望这个扫盲篇能帮你开启Hibernate之旅,如果你看完还不会配置,那就请“打我脸”吧,我会继续努力提供更详尽的指导!
这篇文档将深入探讨Hibernate的核心概念、功能以及如何在实际项目中使用它。 一、Hibernate简介 Hibernate是Java平台上的一个开源持久化框架,由Gavin King创建。它的主要目标是提供一种优雅的方式,使Java对象...
这篇文档和学习笔记将深入介绍Hibernate的核心概念、API用法以及最佳实践。 1. **Hibernate核心概念** - **对象关系映射(ORM)**: Hibernate是ORM的一种实现,它允许开发者使用面向对象的方式来操作数据库,而...
本篇文章将汇总Hibernate 3配置文件中的关键参数,帮助开发者更好地理解和配置Hibernate。 1. **SQL方言(Dialect)**:`hibernate.dialect` 是一个必不可少的配置项,它定义了Hibernate针对特定关系数据库使用的SQL...
这篇文章的作者显然正在探索并实践Hibernate ORM框架,这是Java开发中用于数据库操作的重要工具。Hibernate是开源的,它提供了对象关系映射(ORM)解决方案,使得开发者可以使用Java对象进行数据库操作,而无需编写...
本篇文章将深入探讨通用的Hibernate查询方法,特别是关于分页查询的应用。 在Hibernate中,查询数据主要通过Criteria、HQL(Hibernate Query Language)和Query API三种方式。首先,让我们来看看Criteria查询。...
本篇文章将详细探讨Hibernate 3.6.5 Final的核心特性,帮助读者理解和掌握这个强大的持久化工具。 1. **Hibernate概述** Hibernate作为Java世界中的ORM框架,它通过提供一种对象-关系映射机制,使得开发者可以使用...