在hibernate中org.hibernate.dialect.MySQL5Dialect和MysqlDialect应该用哪个呢

在hibernate中org.hibernate.dialect.MySQL5Dialect和MysqlDialect应该用哪个呢,第1张

MysqlDialect这个是比较老的,如果你是用的mysql5,最好是用MySQL5Dialect,后面的方言是针对mysql5的一些新特性做了一些优化的,更快了效率在hibernate中org.hibernate.dialect.MySQL5Dialect和MysqlDialect应该用哪个呢

在s2sh架构中使用mysql数据库,

在javaBean中使用属性:BigDecimal类型,

数据库中此字段为Decimal类型

会报No Dialect mapping for JDBC type:-1

原因是hibernate无法映射此类型的对象。

具体做法:

必须把java类的BigDecimal类型与mysql中的Decimal类型关联起来。

import java.sql.Types

import org.hibernate.Hibernate

import org.hibernate.dialect.MySQLDialect

public class ZJCMySQLDialect extends MySQLDialect{

public ZJCMySQLDialect () {

super()

registerHibernateType(Types.DECIMAL,

Hibernate.BIG_DECIMAL.getName())

registerHibernateType(-1, Hibernate.STRING.getName())

}

}

4

修改hibernate的方言:

<prop key="hibernate.dialect">

com.quduan.ZJCMySQLDialect

</prop>

这样就可以支持BigDecimal类型了。

jar放在web工程的lib目录下,applicationContext.xml里面设置数据库连接信息,最好把它放到webroot/web-inf目录下,数据库连接配置如下,同时连接池还需要导入commons-dbcp-1.4.jar、commons-pool.jar。

<property name="driverClassName">

<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>

</property>

<property name="url">

<!-- 注意:此处有一个BUG,value中,前后不能有空格或回车键 -->

<value>jdbc:sqlserver://localhost:1433databaseName=Android</value>

</property>

<property name="username">

<value>sa</value>

</property>

<property name="password">

<value>sql2008</value>

</property>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7339194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存