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. Unity3D之飞机游戏追踪导弹制作

    最近开发完成一款打飞机的游戏,记录一下制作追踪导弹的方法,最开始在网上找到的资料制作出来的追踪导弹都不够真实,主要的问题是没有对导弹进行一个阀值处理,导弹每帧都始终会面向目标,而不是按照一定的角度进行 ...

  2. -webkit-appearance: none;去处select默认小箭头样式

    Html <select class="sel_house_type"> <option value="0">请选择</optio ...

  3. 自己学会汉化DevExpress控件[转]

    1. 文档导读 本文档以颜色区分内容的重要性和不同性,阅读本文档时请注意以下事项: 1. 红色部分表示需要注意的重点内容:(加粗的尤甚) 2. 蓝色部分表示相应于前版本新增的内容: 3. 紫色部分表示 ...

  4. Nexus搭建Manven

    Nexus相当于中转服务器,减轻网络的负载,加速项目搭建的进程 1.下载地址:http://www.sonatype.org/nexus/go 2.下载的是zip包,解压后进入D:\nexus-2.8 ...

  5. BZOJ 1024: [SCOI2009]生日快乐 dfs

    1024: [SCOI2009]生日快乐 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

  6. MyBatis之六:缓存

    MyBatis 3中的缓存实现的很多改进都已经实现了,使得它更加强大而且易于配置.默认情况下是没有开启缓存的,除了局部的session缓存,可以增强变现而且处理循环依赖也是必须的.要开启二级缓存,你需 ...

  7. C#三种模拟自动登录和提交POST信息的实现方法

    网页自动登录(提交Post内容)的用途很多,如验证身份.程序升级.网络投票等,以下是用C#实现的方法.       网页自动登录和提交POST信息的核心就是分析网页的源代码(HTML),在C#中,可以 ...

  8. delphi 选中的展开0级 子级不展开

    TreeView1.Selected.Expand(False); //选中的展开0级 子级不展开 TreeView1.Selected.Expand(True); //全部展开 来自为知笔记(Wiz ...

  9. 通过tracing技术来教授操作系统

    https://www.cl.cam.ac.uk/teaching/1516/L41/materials.html https://github.com/myaut/dtrace-stap-book

  10. phonegap platform add ios 出错的问题

    在Mac上新安装的Phonegap,版本3.3-0.18.0. 本来创建项目后按教程: http://docs.phonegap.com/en/edge/guide_platforms_ios_ind ...