在hibernate项目中提供jdbc接口时,查询数据库char字段的数据只能得到第一个字符的问题,解决方案代码如下:
在hibernate项目中提供jdbc接口时,,查询数据库char字段的数据只能得到第一个字符的问题,解决方案代码如下:
package com.newer.common;
import java.sql.types;
import org.hibernate.hibernate;
import org.hibernate.dialect.mysqldialect;
/**
* 此类用于解决数据库 char字段问题(mysql)
* 因使用hibernate内置提供的sql语句查询接口会给字符串当char处理,
* 所以编写此类覆盖内置的mmysqldialect
* 给mysql的char字段修饰为string
* @author rsun
* 2012-2-26下午03:53:55
*/
public class mmysqldialect extends mysqldialect{
public mmysqldialect() {
super();
registerhibernatetype(types.decimal, hibernate.big_integer.getname());
registerhibernatetype(types.char, hibernate.string.getname());
registerhibernatetype(types.nvarchar, hibernate.string.getname());
registerhibernatetype(types.longnvarchar, hibernate.string.getname());
}
}
总结:
1. 当前是解决mysql的问题,对应其它数据库只需实现相应的接口即可。
2. 配置${dialect}需引用上面的类。