No Dialect mapping for JDBC type 错误分析,Hibernate和数据库类型对应
转载 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,注册类型映射
package com.xuedou.skyedu.util;
import java.sql.Types;
import org.hibernate.Hibernate;
import org.hibernate.dialect.SQLServerDialect;
/**
* 注册nvarchar类型映射
*/
publicclass SkySQLServerDialect extends SQLServerDialect{
public SkySQLServerDialect() {
super(); //调用父类的构造方法(super()一定要放在方法的首个语句)
registerHibernateType(Types.NVARCHAR, Hibernate.STRING.getName());
}
}
(2)配置hibernate文件,修改为
hibernate.dialect=com.xuedou.skyedu.util.SkySQLServerDialect
转载于:https://blog.51cto.com/1161384/1349350
No Dialect mapping for JDBC type 错误分析,Hibernate和数据库类型对应相关推荐
- 毕设问题小记——No Dialect mapping for JDBC type:-1错误
为了实现在用户误操作后能够对数据进行修正,打算添加一个数据库管理功能,主要实现对数据表的查询和执行sql语句.费了半天功夫完成以后查询有的表数据正常显示,但是个别表出现如下错误: No Dialect ...
- oracle 方言报错,ORACLE11g:No Dialect mapping for JDBC type: -9解决方案详解
解决方案 由于hibernate4.2.0和Oracle10g数据库结合使用自定义方言时,需要和老版本做区别,原来的Oracle10gDialect中没有注册NVARCHAR和NCLOB数据类型, 此 ...
- Hibernate type 与java 和 数据库类型对应
Hibernate type 属性 内置的 basic mapping types 可以大致地分类为: integer, long, short, float, double, character, ...
- hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size
这点我也疑惑过,最初应用hibernate的项目,我也感觉速度很慢,知道后来才知道问题的所在. 其实hibernate的速度性能并不差,比起jdbc来说,又是性能能高2倍. ...
- Could not parse mapping document from input stream hibernate配置异常
Could not parse mapping document from input stream hibernate配置异常 参考文章: (1)Could not parse mapping do ...
- 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 ...
- JDBC,JdbcTemplate,JPA,Hibernate之间的关系概述
什么是JDBC? Java语言访问数据库的一种规范,是一套API.JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口 ...
- atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型执行期获得Dialect
atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型执行期获得Dialect #-----原理 Hibernate 执行期获得Dialect 2010-07-28 12:59:58| ...
- jdbc mysql select_java连接mysql数据库并使用jdbc进行查询详解
public Connection getCon() { //数据库连接名称 String username="root"; //数据库连接密码 String password=& ...
- JAVA通过JDBC连接并操作MySQL数据库
JAVA通过JDBC连接并操作MySQL数据库 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提 ...
最新文章
- 如果有大型 Web 应用程序,可考虑执行预批编译
- linux rsync同步 --delete参数 删除目标目录比源目录多余文件
- vue 3.0和2.0区别_一文看懂 Vue.js 3.0 的优化
- centos java发送邮件发不出去_传真机发不出传真怎么办 传真机发不出传真解决方法【详解】...
- 深度学习环境搭建之Anaconda安装keras
- disruptor RingBuffer初始化与生产者事件产生
- 生成随机验证码,上传图片文件,解析HTML
- c++ const 修饰变量位置含义
- 《机器学习基石》笔记:第一讲
- 【06月25日】指数估值排名
- 微信 php收藏功能,怎样使用微信小程序做出添加收藏
- Linux禁用搜狗输入法的简繁切换快捷键
- 弯管机编程软件电脑版_花了一年时间开发的弯管机YBC编程软件
- [Python]自学笔记36:论一只爬虫的自我修养3:隐藏
- 《控制系统设计指南》_George Ellis著_部分章节读书笔记
- 【震惊】没有java环境也能运行jar,在不安装jdk下如何运行jar包
- 2022年人工智能在行业发展的趋势及普及
- 【Cityengine】Cityengine2019安装使用及城市模型构建
- ANSYS学习笔记——汽车绕流实验
- 数据仓库实践杂谈(七)——数据标准化
热门文章
- mathematica 如何在数组中等间隔插入元素
- 基于dpdk的用户态协议栈f-stack实现分析
- Linux线程管理必备:互斥量与条件变量
- E - 确定比赛名次(拓补排序)
- 数据结构经典案例_《数据结构》书评与 MOOC 推荐
- 1.1.3 Friday the Thirteenth 黑色星期五
- 用梯度下降求解最小二乘线性回归python实现
- Dijkstra算法(单源最短路)
- python批量下载静态页面_Python selenium如何打包静态网页并下载
- rbf神经网络_黄小龙,陈阳舟:高阶非线性不确定多智能体系统自适应RBF神经网络协同控制...