转自:
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 |
分享到:
相关推荐
数据库方言(Dialect)是指在遵循标准SQL语法的基础上,各个数据库管理系统(如MySQL、Oracle、MSSQL等)根据自身的特性和需求所扩展的一套特有的语法和功能。这些方言使得不同的数据库系统在处理特定任务时可能需要...
<property name="connection.url">jdbc:mysql://localhost:3306/test <property name="connection.username">root <property name="connection.password">password <!-- 显示SQL语句 --> ...
例如`jdbc:mysql://localhost:3306/hibernate_first`,其中`hibernate_first`是数据库名。 - **`hibernate.connection.username`**:指定连接数据库的用户名。 - **`hibernate.connection.password`**:指定连接...
【Hibernate Dialect&JDBC.txt】文件可能记录了关于Hibernate框架与达梦数据库交互的方言(Dialect)设置和JDBC配置信息。Hibernate是一个流行的ORM(Object-Relational Mapping)框架,它允许开发者用面向对象的...
解决方案:检查hibernate.cfg.xml文件中的dialect属性,确保其与使用的数据库类型相匹配,例如MySQL应设置为`<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>`。同时,确认项目...
hibernate.connection.url=jdbc:mysql://localhost:3306/testdb ``` #### 总结 - 通过上述步骤,用户可以完成 Hibernate 2.1.7c 版本的基本安装配置,并且能够在 MySQL 数据库环境下进行测试和开发。 - **扩展...
- `connection.url`:Oracle的JDBC URL,格式为`jdbc:oracle:thin:@hostname:port:service_name`,其中`service_name`通常对应Oracle实例的SID。 - 其他属性与MySQL和SQL Server类似。 要连接Oracle,需要在项目...
<property name="connection.url">jdbc:mysql://localhost/dbname?characterEncoding=gb2312 <!-- 数据库用户名 --> <property name="connection.username">root <!-- 数据库密码 --> ...
String url = "jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"; Connection conn = DriverManager.getConnection(url); ``` #### PostgreSQL数据库 ```java...
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC <property name="hibernate.connection.username">your_username ...
hibernate.connection.url=jdbc:mysql://localhost:3306/your_database_name ``` #### 四、启动与验证 完成上述步骤后,重启Tomcat服务器,通过访问quickstart项目或运行相关的测试代码,检查Hibernate是否正确...
<property name="url" value="jdbc:mysql://localhost:3306/hibdb"/> ``` 这里的配置指定了MySQL数据库的驱动类名、URL、用户名和密码。 #### 2. **使用DBCP(Apache Commons DBCP)** DBCP是Apache ...
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/elec_db <property name="hibernate.connection.username">root <property name="hibernate.connection.password">password <!-- 显示...
<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...
<property name="connection.url">jdbc:mysql://localhost:3306/yourdb <property name="connection.username">root <property name="connection.password">password <!-- Dialect --> <property name="...
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/testdb <property name="hibernate.connection.username">root <property name="hibernate.connection.password">password ``` 2. **...
在描述中提到了MySQL,所以这里应该是针对MySQL数据库的配置,例如,驱动类可能是`com.mysql.jdbc.Driver`,URL可能类似`jdbc:mysql://localhost:3306/testdb`。 2. **JDBC连接池**:为了提高性能,Hibernate可以...
Hibernate.cfg.xml配置文件是Hibernate框架中的一部分,该文件用于配置Hibernate的各种设置,例如数据库连接、dialect、mapping文件等。在这个文件中,我们可以看到hibernate-configuration的配置,包括session-...