MySQL数据库中有张表的字段是text,查询出来后对应的java类型是String,Dialect设置为org.hibernate.dialect.MySQLDialect
运行的时候报错:No Dialect mapping for JDBC type:-1
错误的原因是MySQL和java类型转换错误,解决方法如下:
1.首先自己写一个class,继承org.hibernate.dialect.MySQLDialect

package com.util;

import java.sql.Types;

import org.hibernate.Hibernate;
import org.hibernate.dialect.MySQLDialect;
/**
 *  
 *  解决No Dialect mapping for JDBC type: -1
 * @author 邵海雄
 *
 */
public class BlobMySQLDialect extends MySQLDialect {
 public BlobMySQLDialect() {
  super();
  registerHibernateType(Types.LONGNVARCHAR,
Hibernate.TEXT.getName());

registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName());
   /////////mysql text字段

registerHibernateType(Types.DECIMAL,
Hibernate.BIG_DECIMAL.getName());
 }
}

2.Dialect设置为:包名.BlobMySQLDialect

注:其他的数据类型请参考下表

类型名称

显示长度

数据库类型

JAVA类型

JDBC类型(int)

Types属性

VARCHAR

L+N

VARCHAR

java.lang.String

12

Types.VARCHAR

CHAR

N

CHAR

java.lang.String

1

Types.CHAR

BLOB

L+N

BLOB

java.lang.byte[]

-4

Types.LONGVARBINARY

TEXT

65535

VARCHAR

java.lang.String

-1

Types.LONGVARCHAR

INTEGER

4

INTEGER UNSIGNED

java.lang.Long

4

Types.INTEGER

TINYINT

3

TINYINT UNSIGNED

java.lang.Integer

-6

Types.TINYINT

SMALLINT

5

SMALLINT UNSIGNED

java.lang.Integer

5

Types.SMALLINT

MEDIUMINT

8

MEDIUMINT UNSIGNED

java.lang.Integer

4

Types.INTEGER

BIT

1

BIT

java.lang.Boolean

-7

Types.BIT

BIGINT

20

BIGINT UNSIGNED

java.math.BigInteger

-5

Types.BIGINT

FLOAT

4+8

FLOAT

java.lang.Float

7

Types.REAL

DOUBLE

22

DOUBLE

java.lang.Double

8

Types.DOUBLE

DECIMAL

11

DECIMAL

java.math.BigDecimal

3

Types.DECIMAL

BOOLEAN

1

同TINYINT

java.lang.Integer

-6

Types.TINYINT

DATE

10

DATE

java.sql.Date

91

Types.DATE

TIME

8

TIME

java.sql.Time

92

Types.TIME

DATETIME

19

DATETIME

java.sql.Timestamp

93

Types.TIMESTAMP

TIMESTAMP

19

TIMESTAMP

java.sql.Timestamp

93

Types.TIMESTAMP

YEAR

4

YEAR

java.sql.Date

91

Types.DATE

//原文地址:http://blog.csdn.net/dr_lf/article/details/8225024

//相关问题:http://blog.csdn.net/xd195666916/article/details/5419316

No Dialect mapping for JDBC type: -1的更多相关文章

  1. 1.org.hibernate.MappingException: No Dialect mapping for JDBC type: -9

    org.hibernate.MappingException: No Dialect mapping for JDBC type: -9 原因:Hibernate框架的方言(Dialect )没有数据 ...

  2. hibernate:MySQL No Dialect mapping for JDBC type: -1

    出处:(hibernate中使用原生的sql语句,报如下错误:) MySQL No Dialect mapping for JDBC type: -1 代码: List list = session. ...

  3. 关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题

    转自博客http://blog.csdn.net/xd195666916/article/details/5419316,同时感谢博主 今天做了个用hibernate直接执行原生sql的查询,报错No ...

  4. ORACLE11g:No Dialect mapping for JDBC type: -9解决方案

    问题来源: 某个zhizhang同事不干活 好不容易干了个活 改了个字段长度,从varchar2(50) 改成了nvarchar(100) 结果因为方言问题,程序起不来了 字段类型也改不回来了 nnd ...

  5. (动态改变数据源遇到的问题)ORACLE11g:No Dialect mapping for JDBC type: -9解决方案

    在动态改变数据源时 hibernate配置不能使用Oracle官方的方言(org.hibernate.dialect.Oracle10gDialect) 做法写一个方言扩展类,缺什么类型,添加什么类型 ...

  6. Hibernate 数据库方言配置;no dialect mapping for jdbc type:-9;生僻字

    最近因为生僻字在界面上显示为?: 主要原因是该字段在数据库中就是varchar类型,显示的就是?:如䶮(yan):现把varchar类型改为nvarchar类型:数据中能够正常显示: 但是Spring ...

  7. No Dialect mapping for JDBC type: -9

    由于项目中使用的是hibernate 4.35版本和sqlserver 2008数据库.所以,自定义方言时,需要和老版本做区别: public class MySQLServerDialect ext ...

  8. hibernate报错:org.hibernate.MappingException: No Dialect mapping for JDBC type: -1

    解决方法:自定义一个Hibernate Dialect. package com.yourcompany.util ; import java.sql.Types; import org.hibern ...

  9. Hibernate映射数据库中longtext类型属性时报错No Dialect mapping for JDBC type: -1的解决方案

    出现错误的原因是:hibernate中对于数据库的longtext数据类型不支持. 解决方案: 1.写个类集成方言,然后自己实现对longtext的支持 import java.sql.Types; ...

随机推荐

  1. C#枚举数值与名称的转换

    在应用枚举的时候,时常需要将枚举和数值相互转换的情况.有时候还需要转换成相应的中文.下面介绍一种方法. 首先建立一个枚举: /// <summary> /// 颜色 /// </su ...

  2. 神经网络环境搭建,windows上安装theano和keras的流程

    今天碰到有朋友问道怎么在windows下安装keras,正好我刚完成搭建,总结下过程,也算是一个教程吧,给有需要的朋友. 步骤一:安装python. 这一步没啥好说的,下载相应的python安装即可, ...

  3. python的random模块

    As an example of subclassing, the random module provides the WichmannHill class that implements an a ...

  4. Oracle数据库的版本变迁功能对比

    Oracle数据库自发布至今,也经历了一个从不稳定到稳定,从功能简单至强大的过程.从第二版开始,Oracle的每一次版本变迁,都具有里程碑意义. 1979年的夏季,RSI(Oracle公司的前身,Re ...

  5. TC SRM 663 div2 B AABB 逆推

    AABB Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 TC Description One day, Jamie noticed that many En ...

  6. c# windowsForm打印

    在windows应用程序中文档的打印是一项非常重要的功能,在以前一直是一个非常复杂的工作,Microsoft .net Framework的打 印功能都以组件的方式提供,为程序员提供了很大的方便,但是 ...

  7. CODEFORCE 246 Div.2 B题

    题目例如以下: B. Football Kit time limit per test 1 second memory limit per test 256 megabytes input stand ...

  8. XCode中调整字体大小

    转自:http://www.cnblogs.com/mengshu-lbq/archive/2012/12/24/2830859.html 1)调出Xcode的preference应该是 Comman ...

  9. day05 Java基础

    1.数组初始化:为数组开辟内存空间,并为每个数组元素赋予值.数组初始化方式: 方式一:动态初始化:初始化时只指定数组长度,由系统为数组分配初始值. 格式:数组类型[] 数组名称=new 数组类型[数组 ...

  10. Monolog - Logging for PHP 5.3+

    Monolog 是PHP的一个日志类库.相比于其他的日志类库,它有以下的特点: 功能强大.可以把日志发送到文件.socket.邮箱.数据库和各种web services. 遵循 PSR3 的接口规范. ...