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. python challenge第1关--NoteBook上的“乱码”

    在 python challenge第0关中已经得到第1关的地址了: http://www.pythonchallenge.com/pc/def/map.html 一.观察地址栏和标签: What a ...

  2. CSS构造超链接

    超链接边框 派生超链接 属性选择器超链接 动态超链接 图像翻转超链接 CSS工具提示 1.给链接加上边框     A:link {         Color: #f00;         Text- ...

  3. [GUI]界面开发类库

    如果我们不十分清楚需要什么样的界面风格及如何实现,请按以下两个步骤操作: (1)       搞清楚这种风格叫什么名字 (2)       查现有的比较著名的GUI库是否已有相应的实现方案. (3)  ...

  4. OpenNebula config配置详情

    AUTH_MAD=AUTHN=ssh,x509,ldap,server_cipher,server_x509,EXECUTABLE=one_auth_mad DATASTORE_BASE_PATH=/ ...

  5. 连接查询中on and和on where的区别

    一.区别 1. and条件是在生成临时表时使用的条件,它不管and中的条件是否为真,都会返回左(或者右)边表中的记录. 2.where条件是在临时表生成好后,再对临时表进行过滤的条件.这时已经没有le ...

  6. php 处理高并发的思路

    1.nginx 服务器,提高网站服务器并发性能 2.控制大文件的下载,减少CPU的消耗. 3.对于sql查询做缓存. 4.静态页面文件缓存. 5.CND缓存静态文件, 6.反向代理到多个服务器,用来分 ...

  7. VIM复制粘贴大全!

    原文地址:http://lsong17.spaces.live.com/blog/cns!556C21919D77FB59!603.entry 内容: 用vim这么久 了,始终也不知道怎么在vim中使 ...

  8. 添加MIME类型

    #查看站点test01下所有的MIME类型: Get-WebConfiguration -PSPath MACHINE/WEBROOT/APPHOST/test01 -Filter system.we ...

  9. Codeforces Round #333 (Div. 1) C. Kleofáš and the n-thlon 树状数组优化dp

    C. Kleofáš and the n-thlon Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contes ...

  10. Codeforces Bubble Cup 8 - Finals [Online Mirror]H. Bots 数学

    H. Bots Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/575/problem/H Desc ...