转载  http://blog.csdn.net/goddessming/article/details/8853891

当在hibernate中运用原始的sql语句进行操作的的时候,常常会报错,错误很多都是关于
No Dialect mapping for JDBC type类型的错误,经过分析和查找,问题常常发生在几个地方
1、错误的配置了hibernate的方言

2、就是你的数据库中的字段和java里面的类型不匹配的问题

查找原因:通过查询hibernate的源码,找到问题的根本所在,就是hibernate中不支持对应的数据类型,具体数据类型的值,请查看下表

查看 java.sql.Types 类,可以找到对应类型,调整相应的数据库里的类型,或者其他支持这个类型的方言。

java,hibernate和数据库对应的数据类型

Java数据类型 Hibernate数据类型 标准SQL数据类型
(PS:对于不同的DB可能有所差异)
byte、java.lang.Byte byte TINYINT
short、java.lang.Short short SMALLINT
int、java.lang.Integer integer INGEGER
long、java.lang.Long long BIGINT
float、java.lang.Float float FLOAT
double、java.lang.Double double DOUBLE
java.math.BigDecimal big_decimal NUMERIC
char、java.lang.Character character CHAR(1)
boolean、java.lang.Boolean boolean BIT
java.lang.String string VARCHAR
boolean、java.lang.Boolean yes_no CHAR(1)('Y'或'N')
boolean、java.lang.Boolean true_false CHAR(1)('Y'或'N')
java.util.Date、java.sql.Date date DATE
java.util.Date、java.sql.Time time TIME
java.util.Date、java.sql.Timestamp timestamp TIMESTAMP
java.util.Calendar calendar TIMESTAMP
java.util.Calendar calendar_date DATE
byte[] binary VARBINARY、BLOB
java.lang.String text CLOB
java.io.Serializable serializable VARBINARY、BLOB
java.sql.Clob clob CLOB
java.sql.Blob blob BLOB
java.lang.Class class VARCHAR
java.util.Locale locale VARCHAR
java.util.TimeZone timezone VARCHAR
java.util.Currency currency VARCHAR

解决办法:

(1)写个类继承SQLServerDialect,注册类型映射

[java]view plaincopy
  1. package com.xuedou.skyedu.util;

  2. import java.sql.Types;

  3. import org.hibernate.Hibernate;

  4. import org.hibernate.dialect.SQLServerDialect;

  5. /**

  6. * 注册nvarchar类型映射

  7. */

  8. publicclass SkySQLServerDialect extends SQLServerDialect{

  9. public SkySQLServerDialect() {

  10. super(); //调用父类的构造方法(super()一定要放在方法的首个语句)

  11. registerHibernateType(Types.NVARCHAR, Hibernate.STRING.getName());

  12. }

  13. }

(2)配置hibernate文件,修改为

[html]view plaincopy
  1. hibernate.dialect=com.xuedou.skyedu.util.SkySQLServerDialect

转载于:https://blog.51cto.com/1161384/1349350

No Dialect mapping for JDBC type 错误分析,Hibernate和数据库类型对应相关推荐

  1. 毕设问题小记——No Dialect mapping for JDBC type:-1错误

    为了实现在用户误操作后能够对数据进行修正,打算添加一个数据库管理功能,主要实现对数据表的查询和执行sql语句.费了半天功夫完成以后查询有的表数据正常显示,但是个别表出现如下错误: No Dialect ...

  2. oracle 方言报错,ORACLE11g:No Dialect mapping for JDBC type: -9解决方案详解

    解决方案 由于hibernate4.2.0和Oracle10g数据库结合使用自定义方言时,需要和老版本做区别,原来的Oracle10gDialect中没有注册NVARCHAR和NCLOB数据类型, 此 ...

  3. Hibernate type 与java 和 数据库类型对应

    Hibernate type 属性 内置的 basic mapping types 可以大致地分类为: integer, long, short, float, double, character, ...

  4. hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size

    这点我也疑惑过,最初应用hibernate的项目,我也感觉速度很慢,知道后来才知道问题的所在.        其实hibernate的速度性能并不差,比起jdbc来说,又是性能能高2倍.        ...

  5. Could not parse mapping document from input stream hibernate配置异常

    Could not parse mapping document from input stream hibernate配置异常 参考文章: (1)Could not parse mapping do ...

  6. Can‘t get JDBC type for struct<date:int,day:int,hours:int,minutes:int,month:int,seconds:int,time:big

    使用Spark将DataFrame类型数据保存到Oracle的过程中报错: Exception in thread "main" java.lang.IllegalArgument ...

  7. JDBC,JdbcTemplate,JPA,Hibernate之间的关系概述

    什么是JDBC? Java语言访问数据库的一种规范,是一套API.JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口 ...

  8. atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型执行期获得Dialect

    atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型执行期获得Dialect #-----原理 Hibernate 执行期获得Dialect 2010-07-28 12:59:58| ...

  9. jdbc mysql select_java连接mysql数据库并使用jdbc进行查询详解

    public Connection getCon() { //数据库连接名称 String username="root"; //数据库连接密码 String password=& ...

  10. JAVA通过JDBC连接并操作MySQL数据库

    JAVA通过JDBC连接并操作MySQL数据库 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提 ...

最新文章

  1. 如果有大型 Web 应用程序,可考虑执行预批编译
  2. linux rsync同步 --delete参数 删除目标目录比源目录多余文件
  3. vue 3.0和2.0区别_一文看懂 Vue.js 3.0 的优化
  4. centos java发送邮件发不出去_传真机发不出传真怎么办 传真机发不出传真解决方法【详解】...
  5. 深度学习环境搭建之Anaconda安装keras
  6. disruptor RingBuffer初始化与生产者事件产生
  7. 生成随机验证码,上传图片文件,解析HTML
  8. c++ const 修饰变量位置含义
  9. 《机器学习基石》笔记:第一讲
  10. 【06月25日】指数估值排名
  11. 微信 php收藏功能,怎样使用微信小程序做出添加收藏
  12. Linux禁用搜狗输入法的简繁切换快捷键
  13. 弯管机编程软件电脑版_花了一年时间开发的弯管机YBC编程软件
  14. [Python]自学笔记36:论一只爬虫的自我修养3:隐藏
  15. 《控制系统设计指南》_George Ellis著_部分章节读书笔记
  16. 【震惊】没有java环境也能运行jar,在不安装jdk下如何运行jar包
  17. 2022年人工智能在行业发展的趋势及普及
  18. 【Cityengine】Cityengine2019安装使用及城市模型构建
  19. ANSYS学习笔记——汽车绕流实验
  20. 数据仓库实践杂谈(七)——数据标准化

热门文章

  1. mathematica 如何在数组中等间隔插入元素
  2. 基于dpdk的用户态协议栈f-stack实现分析
  3. Linux线程管理必备:互斥量与条件变量
  4. E - 确定比赛名次(拓补排序)
  5. 数据结构经典案例_《数据结构》书评与 MOOC 推荐
  6. 1.1.3 Friday the Thirteenth 黑色星期五
  7. 用梯度下降求解最小二乘线性回归python实现
  8. Dijkstra算法(单源最短路)
  9. python批量下载静态页面_Python selenium如何打包静态网页并下载
  10. rbf神经网络_黄小龙,陈阳舟:高阶非线性不确定多智能体系统自适应RBF神经网络协同控制...