读取数据库char类型字段,只要char(>1),java取出数据只是第一个字符。如果是char(1)没问题
我用的ssh框架+mysql 废话不多说直接代码
问题:
字段类型char(2)
例如字段值:01
读取出来为:0
hibernate配置文件
#hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.dialect=com.yourpackage.util.FixedMySQL5InnoDBDialect
spring配置文件
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:conf/hibernate.properties</value>
</list>
</property>
</bean>
java文件
package com.yourpackage.util;
import java.sql.Types;
import org.hibernate.Hibernate;
import org.hibernate.dialect.MySQL5InnoDBDialect;
public class FixedMySQL5InnoDBDialect extends MySQL5InnoDBDialect{
protected void registerVarcharTypes() {
super.registerVarcharTypes();
registerColumnType(Types.CHAR, 255, "char($l)");
registerHibernateType(Types.CHAR, Hibernate.STRING.getName());
}
public FixedMySQL5InnoDBDialect() {
super();
registerHibernateType(Types.LONGVARCHAR, 16777215, "mediumtext");
}
}