`
nplw668
  • 浏览: 7716 次
社区版块
存档分类
最新评论

Hibernate之方言篇

阅读更多

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简介与作用 - **概念**:Hibernate是一种开放源码的对象关系映射(ORM)框架,用于Java应用与关系型数据库之间的交互。它提供了一种机制,使得Java对象能够...

    经典hibernate教程_从入门到精通(第一篇,共四篇).ppt

    《经典Hibernate教程_从入门到精通》第一篇主要介绍了ORM概述和Hibernate的作用,以及Hibernate应用程序的基本结构和JDBC与Hibernate的对比。以下是详细的知识点解析: 1. **ORM概述** - ORM(Object-Relational ...

    spring整合hibernate—xml篇和注释篇[文].pdf

    这里,`hibernateProperties`设置了Hibernate的运行时配置,如方言(Dialect)和是否显示SQL语句。`mappingDirectoryLocations`则指定了实体类的映射文件位置。 第二种方式是通过加载`hibernate.cfg.xml`文件来配置...

    DmDialect-for-hibernate4.0.zip

    本篇将详细介绍标题为"DmDialect-for-hibernate4.0.zip"的压缩包文件及其包含的两个重要组件:Dm7JdbcDriver17.jar和DmDialect-for-hibernate4.0.jar,以及它们在SpringBoot项目中的作用。 首先,SpringBoot是一个...

    hibernate 开发文档发布

    本篇文章将深入探讨Hibernate 3.1.1和3.1.2版本的开发文档,为读者揭示其核心特性和使用方法。 一、Hibernate ORM基础 Hibernate的核心功能在于提供一个持久化层,将Java对象与数据库中的记录进行映射。通过XML配置...

    hibernate系列(一)hibernate入门

    本篇将介绍Hibernate的入门知识,包括基本概念、配置和简单操作。 **1. Hibernate简介** Hibernate是由 Gavin King 创建的一个开源项目,它实现了JPA(Java Persistence API)规范,提供了一种在Java应用中持久化...

    Hibernate基本配置演示

    这篇教程将深入讲解Hibernate的基本配置过程,确保你能顺利搭建并运行一个简单的Hibernate项目。 **一、Hibernate概述** Hibernate是一个开源的ORM框架,它的主要功能是将Java对象与数据库表进行映射,从而避免了...

    hibernate--5.Hibernate配置文件详解

    本篇将详细解析Hibernate的配置文件,帮助你深入理解其工作原理和配置过程。 标题"hibernate--5.Hibernate配置文件详解"暗示我们将探讨的是Hibernate 5版本的配置细节。这个版本引入了一些新特性和改进,同时也保持...

    Hibernate 中文开发者文档

    这篇中文开发者文档将深入讲解Hibernate的核心概念、配置、实体映射、查询语言以及高级特性。 **一、Hibernate核心概念** 1. **对象关系映射(ORM)**: Hibernate是ORM工具的代表,通过在Java对象与数据库记录之间...

    hibernate.zip

    本篇文章将详细探讨如何使用Hibernate连接到Access数据库,以及相关架构包的重要性和使用方法。 首先,我们来看“hibernate.zip”这个压缩包,它包含了必要的组件来实现Java与Access数据库的交互。其中,...

    hibernate3.0的文档

    3. **配置**:Hibernate的配置文件(hibernate.cfg.xml)包含了数据库连接信息、方言设置、缓存策略等,是初始化SessionFactory的关键。 4. **实体管理**: - CRUD操作:Create(创建)、Read(读取)、Update...

    hIbernate扫盲篇

    **Hibernate扫盲篇** 在Java开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地...希望这个扫盲篇能帮你开启Hibernate之旅,如果你看完还不会配置,那就请“打我脸”吧,我会继续努力提供更详尽的指导!

    hibernate帮助文档下载

    这篇文档将深入探讨Hibernate的核心概念、功能以及如何在实际项目中使用它。 一、Hibernate简介 Hibernate是Java平台上的一个开源持久化框架,由Gavin King创建。它的主要目标是提供一种优雅的方式,使Java对象...

    hibernate API帮助文档 及hibernate学习笔记

    这篇文档和学习笔记将深入介绍Hibernate的核心概念、API用法以及最佳实践。 1. **Hibernate核心概念** - **对象关系映射(ORM)**: Hibernate是ORM的一种实现,它允许开发者使用面向对象的方式来操作数据库,而...

    hibernate_3配置文件参数汇总

    本篇文章将汇总Hibernate 3配置文件中的关键参数,帮助开发者更好地理解和配置Hibernate。 1. **SQL方言(Dialect)**:`hibernate.dialect` 是一个必不可少的配置项,它定义了Hibernate针对特定关系数据库使用的SQL...

    Hibernate Reference官方文档实践日记一

    这篇文章的作者显然正在探索并实践Hibernate ORM框架,这是Java开发中用于数据库操作的重要工具。Hibernate是开源的,它提供了对象关系映射(ORM)解决方案,使得开发者可以使用Java对象进行数据库操作,而无需编写...

    通用的hibernate查询

    本篇文章将深入探讨通用的Hibernate查询方法,特别是关于分页查询的应用。 在Hibernate中,查询数据主要通过Criteria、HQL(Hibernate Query Language)和Query API三种方式。首先,让我们来看看Criteria查询。...

    Hibernate3.6.5 Final Core

    本篇文章将详细探讨Hibernate 3.6.5 Final的核心特性,帮助读者理解和掌握这个强大的持久化工具。 1. **Hibernate概述** Hibernate作为Java世界中的ORM框架,它通过提供一种对象-关系映射机制,使得开发者可以使用...

Global site tag (gtag.js) - Google Analytics