`
fengsky491
  • 浏览: 30810 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

关于MySQL的No Dialect mapping for JDBC type: 错误

    博客分类:
  • java
阅读更多

转自:

http://fengera.spaces.live.com/blog/cns!E974119D0472D6F8!219.entry


我的MySQL数据库中有张表的字段是text,查询出来后对应的java类型是String,Dialect设置为org.hibernate.dialect.MySQLDialect
运行的时候报错:No Dialect mapping for JDBC type:-1
错误的原因是MySQL和java类型转换错误,解决方法如下:
1.首先自己写一个class,继承org.hibernate.dialect.MySQLDialect
public class BlobMySQLDialect extends MySQLDialect {
  public BlobMySQLDialect(){
    super();
    registerHibernateType(Types.LONGNVARCHAR, Hibernate.TEXT.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

 

分享到:
评论

相关推荐

    简单了解mysql方言dialect

    数据库方言(Dialect)是指在遵循标准SQL语法的基础上,各个数据库管理系统(如MySQL、Oracle、MSSQL等)根据自身的特性和需求所扩展的一套特有的语法和功能。这些方言使得不同的数据库系统在处理特定任务时可能需要...

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

    <property name="connection.url">jdbc:mysql://localhost:3306/test <property name="connection.username">root <property name="connection.password">password <!-- 显示SQL语句 --> ...

    sqlserver以及mysql hibernate xml映射语句

    例如`jdbc:mysql://localhost:3306/hibernate_first`,其中`hibernate_first`是数据库名。 - **`hibernate.connection.username`**:指定连接数据库的用户名。 - **`hibernate.connection.password`**:指定连接...

    达梦数据库v8.1jdbc驱动.zip

    【Hibernate Dialect&JDBC.txt】文件可能记录了关于Hibernate框架与达梦数据库交互的方言(Dialect)设置和JDBC配置信息。Hibernate是一个流行的ORM(Object-Relational Mapping)框架,它允许开发者用面向对象的...

    Hibernate配置常见错误

    解决方案:检查hibernate.cfg.xml文件中的dialect属性,确保其与使用的数据库类型相匹配,例如MySQL应设置为`<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>`。同时,确认项目...

    hibernete2 安装手记

    hibernate.connection.url=jdbc:mysql://localhost:3306/testdb ``` #### 总结 - 通过上述步骤,用户可以完成 Hibernate 2.1.7c 版本的基本安装配置,并且能够在 MySQL 数据库环境下进行测试和开发。 - **扩展...

    hibernate与各类数据库间的配置信息

    - `connection.url`:Oracle的JDBC URL,格式为`jdbc:oracle:thin:@hostname:port:service_name`,其中`service_name`通常对应Oracle实例的SID。 - 其他属性与MySQL和SQL Server类似。 要连接Oracle,需要在项目...

    hibernate与各种数据库的连接配置

    <property name="connection.url">jdbc:mysql://localhost/dbname?characterEncoding=gb2312 <!-- 数据库用户名 --> <property name="connection.username">root <!-- 数据库密码 --> ...

    hibernate方言汇总.docx和SSH的jar包名称

    String url = "jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"; Connection conn = DriverManager.getConnection(url); ``` #### PostgreSQL数据库 ```java...

    hibernate连接数据[Mysql]的代码实例

    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC <property name="hibernate.connection.username">your_username ...

    Hibernate2安装

    hibernate.connection.url=jdbc:mysql://localhost:3306/your_database_name ``` #### 四、启动与验证 完成上述步骤后,重启Tomcat服务器,通过访问quickstart项目或运行相关的测试代码,检查Hibernate是否正确...

    spring学习笔记3

    <property name="url" value="jdbc:mysql://localhost:3306/hibdb"/> ``` 这里的配置指定了MySQL数据库的驱动类名、URL、用户名和密码。 #### 2. **使用DBCP(Apache Commons DBCP)** DBCP是Apache ...

    ssh+mysql搭框架

    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/elec_db <property name="hibernate.connection.username">root <property name="hibernate.connection.password">password <!-- 显示...

    Hibernate笔记

    <property name="connection.url">jdbc:mysql://localhost/dbname?characterEncoding=gb2312 <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property> ``` - **驱动**: MySQL数据库的驱动类是`...

    连接数据库

    <property name="connection.url">jdbc:mysql://localhost/dbname?characterEncoding=gb2312 <!-- 用户名 --> <property name="connection.username">root <!-- 密码 --> <property name="connection.password">root...

    hibernate学习笔记01

    <property name="connection.url">jdbc:mysql://localhost:3306/yourdb <property name="connection.username">root <property name="connection.password">password <!-- Dialect --> <property name="...

    Hibernate的配置文件

    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/testdb <property name="hibernate.connection.username">root <property name="hibernate.connection.password">password ``` 2. **...

    Hibernate程序的配置文件

    在描述中提到了MySQL,所以这里应该是针对MySQL数据库的配置,例如,驱动类可能是`com.mysql.jdbc.Driver`,URL可能类似`jdbc:mysql://localhost:3306/testdb`。 2. **JDBC连接池**:为了提高性能,Hibernate可以...

    hibernate映射文件--主键生成策略[参考].pdf

    Hibernate.cfg.xml配置文件是Hibernate框架中的一部分,该文件用于配置Hibernate的各种设置,例如数据库连接、dialect、mapping文件等。在这个文件中,我们可以看到hibernate-configuration的配置,包括session-...

Global site tag (gtag.js) - Google Analytics