`

问题积累—关于 No Dialect mapping for JDBC type: 错误

    博客分类:
  • SSH
阅读更多

参考了http://www.iteye.com/topic/580476的文章,解决问题。

 

在此记录一下:

 

我的SQLServer数据库中表的字段是nvarchar(1),升级到2008上也是nvarchar(1)出现了
 
运行的时候报错:No Dialect mapping for JDBC type:-9
 
解决方法如下:
1.首先自己写一个class,继承org.hibernate.dialect.SQLServerDialect
 
 
import java.sql.Types;   
  
import org.hibernate.Hibernate;   
import org.hibernate.dialect.SQLServerDialect;   
  
public class SqlServer2008Dialect extends SQLServerDialect {   
  
    public SqlServer2008Dialect() {   
        super();   
        registerHibernateType(Types.CHAR, Hibernate.STRING.getName());   
        registerHibernateType(Types.NVARCHAR, Hibernate.STRING.getName());   
        registerHibernateType(Types.LONGNVARCHAR, Hibernate.STRING.getName());   
        registerHibernateType(Types.DECIMAL, Hibernate.DOUBLE.getName());   
    }   
}  
  
 
2:修改配置文件application.xml:
 
<property name="hibernateProperties">
      <props>
              <prop key="hibernate.dialect">
               com.***.***.***.util.SqlServer2008Dialect
              </prop>
      </props>
</property>
 
注:其他的数据类型请参考下表
类型名称 显示长度 数据库类型 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
分享到:
评论

相关推荐

    Java连接达梦数据库驱动dm_jdbc

    Java连接达梦数据库驱动dm_jdbc: dm_jdbc\com.dameng.floader.jar dm_jdbc\com.dameng.impexp.jar dm_jdbc\Dm7Dictionary.jar dm_jdbc\Dm7JdbcDriver14....dm_jdbc\Hibernate Dialect&JDBC;.txt dm_jdbc\version.txt

    人大金仓kingbase 驱动jdbc

    JDBC驱动主要有四种类型:Type 1、Type 2、Type 3和Type 4。人大金仓Kingbase JDBC驱动通常属于Type 4,即纯Java实现的网络驱动,它提供了一个完全基于Java的数据库连接,无需依赖于特定的本地库,具有良好的跨平台...

    DM达梦数据库jdbc-jar包dialect方言jar包

    **DM达梦数据库jdbc-jar包与方言方言jar包详解** DM达梦数据库是一款由中国达梦公司自主研发的高性能、高安全性的关系型数据库管理系统,广泛应用于政府、金融、电信等行业。在Java应用程序中,与DM达梦数据库进行...

    gbase-jdbc驱动gbase-connector-8.3.81.51和infomix驱动ifxjdbc.jar

    - 加载驱动:`Class.forName("com.gbase.jdbc.Driver")` 对于GBase,`Class.forName("com.infomix.jdbc.IfxDriver")` 对于Infomix。 - 建立连接:`Connection conn = DriverManager.getConnection(url, username, ...

    达梦数据库DM8 JDBC驱动

    国产数据库DM8,jdbc驱动相关资源。达梦8JDBC驱动分为DmJdbcDriver15、DmJdbcDriver16、...达梦8提供不同hibernate和jdk版本的方言包,用户可根据开发环境选择对应的方言包版本,相关方言包驱动在dialect目录下

    Hibernate不同数据库的连接及SQL方言

    Hibernate提供了多种SQL方言,例如org.hibernate.dialect.OracleDialect、org.hibernate.dialect.MySQLDialect、org.hibernate.dialect.SQLServerDialect等。我们可以在配置文件中使用元素来设置SQL方言,例如: ...

    数据库JDBC连接.txt

    ### 数据库JDBC连接知识点详解 #### 一、概述 JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。它由一组用Java语言...

    hibernate SQLServer2008Dialect

    SQLServer2008Dialect 优化了原来的分页查询数据方法以及在生成SQL时表后增加了with(nolock)

    kingbaseV8 hibernate jdbc 驱动

    另外,还有一些以`dialect`结尾的jar文件,如`hibernate-5.0.12.Finaldialect.jar`,这些通常是针对特定数据库的方言(Dialect)实现,用于告诉Hibernate如何正确地与特定类型的数据库进行交互。KingbaseV8的方言...

    vertx-jdbc:顶点 3.0 JDBC

    Vertx JDBC 执行器 JDBC Executor 为通过 Vertx 3.0 事件总线访问任何符合 JDBC 的数据源提供了一种快速有效的方法。... dialect: "", pool: { jdbcUrl: "jdbc:hsqldb:mem:testdb", username: "sa", p

    DmDialect-for-hibernate4.0.zip

    本篇将详细介绍标题为"DmDialect-for-hibernate4.0.zip"的压缩包文件及其包含的两个重要组件:Dm7JdbcDriver17.jar和DmDialect-for-hibernate4.0.jar,以及它们在SpringBoot项目中的作用。 首先,SpringBoot是一个...

    国产达梦数据库DM8 JDBC驱动

    国产数据库DM8,jdbc驱动相关资源。达梦8JDBC驱动分为DmJdbcDriver15、DmJdbcDriver16、...达梦8提供不同hibernate和jdk版本的方言包,用户可根据开发环境选择对应的方言包版本,相关方言包驱动在dialect目录下

    神通jdbc驱动.rar

    神通数据库的jdbc驱动jar包,从自己安装的神通数据库中复制出来,亲测可以使用,分享给需要的人 jdbc.driverClassName=com.oscar.Driver jdbc.url=jdbc:oscar://ip:端口/数据库名称 hibernate.dialect=...

    达梦数7据库j驱动包及方言包,maven依赖jar包,DM达梦数据库jdbc-jar包dialect方言jar包

    "dialect方言jar包"则针对特定数据库的SQL语法特性,因为不同数据库系统的SQL语法略有差异。在使用ORM(Object-Relational Mapping)框架如Hibernate时,方言的作用尤为重要。Hibernate方言是Hibernate框架内一个...

    hibernate.properties

    #hibernate.dialect org.hibernate.dialect.H2Dialect #hibernate.connection.driver_class org.h2.Driver #hibernate.connection.username sa #hibernate.connection.password #hibernate.connection.url jdbc:h2:...

    jdbc_Java8_达梦8jdbc_

    `Hibernate Dialect&JDBC.txt`文件可能包含了关于如何在Hibernate ORM框架中配置达梦的方言和JDBC设置的信息,这对于使用ORM来操作达梦数据库的开发者来说非常重要。 `version.txt`文件通常包含了软件的版本信息,...

    kingbase-jdbc-v8.zip

    3. **kingbasejdbc4-老驱动.jar**:这个文件可能是人大金仓早期版本的JDBC驱动,标记为“老驱动”意味着它可能不包含最新功能或者已知存在一些问题。尽管如此,对于那些无法升级到最新驱动或者需要向后兼容的老项目...

    SAP HANA JDCB

    Sap HaNa 数据库链接 jar包。可自定义Maven坐标 添加到私有库 想不要积分,CSDN 最低要求1积分 #mvn install:install-file -Dfile=C:\work\hanajdbclib\ngdbc...#hibernate.dialect=org.hibernate.dialect.SAPDBDialect

    数据库连接字符串

    class:oracle.jdbc.driver.OracleDriver url:"jdbc:oracle:thin:@localhost:1521:jbitdb","epet","epet" sqlserver: class:com.microsoft.sqlserver.jdbc.SQLServerDriver url:"jdbc:sqlserver://localhost:1433;...

    各种数据库在JDBC中的连接方法

    ### 各种数据库在JDBC中的连接方法 #### 一、引言 Java Database Connectivity (JDBC) 是一种用于执行 SQL 语句的 Java API,它可以为多种关系型数据库提供统一访问,它由一组用 Java 编程语言编写的类和接口组成。...

Global site tag (gtag.js) - Google Analytics