在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>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)