参考了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: 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
JDBC驱动主要有四种类型:Type 1、Type 2、Type 3和Type 4。人大金仓Kingbase JDBC驱动通常属于Type 4,即纯Java实现的网络驱动,它提供了一个完全基于Java的数据库连接,无需依赖于特定的本地库,具有良好的跨平台...
**DM达梦数据库jdbc-jar包与方言方言jar包详解** DM达梦数据库是一款由中国达梦公司自主研发的高性能、高安全性的关系型数据库管理系统,广泛应用于政府、金融、电信等行业。在Java应用程序中,与DM达梦数据库进行...
- 加载驱动:`Class.forName("com.gbase.jdbc.Driver")` 对于GBase,`Class.forName("com.infomix.jdbc.IfxDriver")` 对于Infomix。 - 建立连接:`Connection conn = DriverManager.getConnection(url, username, ...
国产数据库DM8,jdbc驱动相关资源。达梦8JDBC驱动分为DmJdbcDriver15、DmJdbcDriver16、...达梦8提供不同hibernate和jdk版本的方言包,用户可根据开发环境选择对应的方言包版本,相关方言包驱动在dialect目录下
Hibernate提供了多种SQL方言,例如org.hibernate.dialect.OracleDialect、org.hibernate.dialect.MySQLDialect、org.hibernate.dialect.SQLServerDialect等。我们可以在配置文件中使用元素来设置SQL方言,例如: ...
### 数据库JDBC连接知识点详解 #### 一、概述 JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。它由一组用Java语言...
SQLServer2008Dialect 优化了原来的分页查询数据方法以及在生成SQL时表后增加了with(nolock)
另外,还有一些以`dialect`结尾的jar文件,如`hibernate-5.0.12.Finaldialect.jar`,这些通常是针对特定数据库的方言(Dialect)实现,用于告诉Hibernate如何正确地与特定类型的数据库进行交互。KingbaseV8的方言...
Vertx JDBC 执行器 JDBC Executor 为通过 Vertx 3.0 事件总线访问任何符合 JDBC 的数据源提供了一种快速有效的方法。... dialect: "", pool: { jdbcUrl: "jdbc:hsqldb:mem:testdb", username: "sa", p
本篇将详细介绍标题为"DmDialect-for-hibernate4.0.zip"的压缩包文件及其包含的两个重要组件:Dm7JdbcDriver17.jar和DmDialect-for-hibernate4.0.jar,以及它们在SpringBoot项目中的作用。 首先,SpringBoot是一个...
国产数据库DM8,jdbc驱动相关资源。达梦8JDBC驱动分为DmJdbcDriver15、DmJdbcDriver16、...达梦8提供不同hibernate和jdk版本的方言包,用户可根据开发环境选择对应的方言包版本,相关方言包驱动在dialect目录下
神通数据库的jdbc驱动jar包,从自己安装的神通数据库中复制出来,亲测可以使用,分享给需要的人 jdbc.driverClassName=com.oscar.Driver jdbc.url=jdbc:oscar://ip:端口/数据库名称 hibernate.dialect=...
"dialect方言jar包"则针对特定数据库的SQL语法特性,因为不同数据库系统的SQL语法略有差异。在使用ORM(Object-Relational Mapping)框架如Hibernate时,方言的作用尤为重要。Hibernate方言是Hibernate框架内一个...
#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:...
`Hibernate Dialect&JDBC.txt`文件可能包含了关于如何在Hibernate ORM框架中配置达梦的方言和JDBC设置的信息,这对于使用ORM来操作达梦数据库的开发者来说非常重要。 `version.txt`文件通常包含了软件的版本信息,...
3. **kingbasejdbc4-老驱动.jar**:这个文件可能是人大金仓早期版本的JDBC驱动,标记为“老驱动”意味着它可能不包含最新功能或者已知存在一些问题。尽管如此,对于那些无法升级到最新驱动或者需要向后兼容的老项目...
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中的连接方法 #### 一、引言 Java Database Connectivity (JDBC) 是一种用于执行 SQL 语句的 Java API,它可以为多种关系型数据库提供统一访问,它由一组用 Java 编程语言编写的类和接口组成。...