No Dialect mapping for JDBC type: -1
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.org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
org.hibernate.MappingException: No Dialect mapping for JDBC type: -9 原因:Hibernate框架的方言(Dialect )没有数据 ...
- hibernate:MySQL No Dialect mapping for JDBC type: -1
出处:(hibernate中使用原生的sql语句,报如下错误:) MySQL No Dialect mapping for JDBC type: -1 代码: List list = session. ...
- 关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题
转自博客http://blog.csdn.net/xd195666916/article/details/5419316,同时感谢博主 今天做了个用hibernate直接执行原生sql的查询,报错No ...
- ORACLE11g:No Dialect mapping for JDBC type: -9解决方案
问题来源: 某个zhizhang同事不干活 好不容易干了个活 改了个字段长度,从varchar2(50) 改成了nvarchar(100) 结果因为方言问题,程序起不来了 字段类型也改不回来了 nnd ...
- (动态改变数据源遇到的问题)ORACLE11g:No Dialect mapping for JDBC type: -9解决方案
在动态改变数据源时 hibernate配置不能使用Oracle官方的方言(org.hibernate.dialect.Oracle10gDialect) 做法写一个方言扩展类,缺什么类型,添加什么类型 ...
- Hibernate 数据库方言配置;no dialect mapping for jdbc type:-9;生僻字
最近因为生僻字在界面上显示为?: 主要原因是该字段在数据库中就是varchar类型,显示的就是?:如䶮(yan):现把varchar类型改为nvarchar类型:数据中能够正常显示: 但是Spring ...
- No Dialect mapping for JDBC type: -9
由于项目中使用的是hibernate 4.35版本和sqlserver 2008数据库.所以,自定义方言时,需要和老版本做区别: public class MySQLServerDialect ext ...
- hibernate报错:org.hibernate.MappingException: No Dialect mapping for JDBC type: -1
解决方法:自定义一个Hibernate Dialect. package com.yourcompany.util ; import java.sql.Types; import org.hibern ...
- Hibernate映射数据库中longtext类型属性时报错No Dialect mapping for JDBC type: -1的解决方案
出现错误的原因是:hibernate中对于数据库的longtext数据类型不支持. 解决方案: 1.写个类集成方言,然后自己实现对longtext的支持 import java.sql.Types; ...
随机推荐
- TQ210裸机编程(4)——按键(中断法)
S5PV210有4个向量中断控制器(VIC),每个向量中断控制器包含32个中断源. 当某个中断源产生中断时,CPU会自动的将VICxVECTADDRy(x=0,1,2,3,y=0-31)寄存器的值赋给 ...
- 【BJG吐槽汇】第一期 - 警惕亚马逊莫名自动扣款!千万不要进了它的坑!
BJG吐槽汇:一直以来我都觉得其实生活中工作中会有各种各样奇葩的事或者奇葩的人可以去吐槽,那么BeJavaGod本身聊得就是关于JavaWeb技术,互联网技术,互联网产品等,那么今天起咱们开了这么一档 ...
- Lua学习笔记(四):表和数组
表 在Lua中,表(table)是十分重要的一种数据结构,实际上Lua对于复杂数据类型也仅提供了表给我们,我们通过表可以实现我们需要的大部分重要的数据结构,比如数组. table类型实现了关联数组,关 ...
- DX相机变换矩阵推导
网上很多的推导过程都是错的,所以写一个. 先平移,再旋转就可以,先平移的原因是,如果先旋转的话,坐标系已经改了,所以先平移. 平移的变换和相机的变换是相反的,所以是: 平移完成后,相机的位置就和原点的 ...
- wikioi 3116 高精度练习之加法
题目描述 Description 给出两个正整数A和B,计算A+B的值.保证A和B的位数不超过500位. 输入描述 Input Description 读入两个用空格隔开的正整数 输出描述 Outpu ...
- 深入了解 Dojo 的服务器推送技术
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- Chrome插件开发 尝试2
在文章1中 尝试了开发chrome一个蛋疼的插件,而且必须要写 一坨令人费解的代码才能只能,今天来次清爽的开发:如图: 这是 "清爽模式" →_→ 我把popup.html与pop ...
- Java基础-新建项目、包和类
1,新建项目
- 不会内存溢出的Android Handler写法
private static class ThisHandler extends Handler { private final WeakReference<MainActivity&g ...
- 元数据标签Embed
关于Embed外部资源的使用方法总结 Flex软件中经常需要使用一些外部的资源,如图片.声音.SWF或字体,虽然你也可以在软件运行的时候引入和载入,但是也可能经常需要直接将这些资源编译(Compile ...