oracle数据库表中有一列类型为varchar2(20) 使用hibernate映射回来以后手动改成了java.lang.String 为什么

使用hq语句查询时这一列会是乱码呢?(数据库中的值不是乱码)... 使用hq语句查询时这一列会是乱码呢?(数据库中的值不是乱码) 展开
 我来答
八门
推荐于2018-04-13 · TA获得超过313个赞
知道小有建树答主
回答量:323
采纳率:0%
帮助的人:220万
展开全部
varchar2是oracle的字符串类型。String是java的字符串类型。字符串对应字符串,当然要转换了。没有错。
说问题怎么解决吧。
首先要确定你写入数据库的数据不是乱码。然后再统一编码,一般统一为UTF-8。
shenbeiaia521
2012-07-16 · TA获得超过178个赞
知道答主
回答量:329
采纳率:100%
帮助的人:209万
展开全部
Hibernate基本类型名(比如:integer, string, character,date, timestamp, float, binary, serializable, object, blob)。
一个Java类的名字,这个类属于一种默认基础类型 (比如: int, float,char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob)。
一个可以序列化的Java类的名字。
一个自定义类型的类的名字。(比如: com.illflow.type.MyCustomType)。

基本值类型(Hibernate内建立自己的类型,从java转化成数据库类型)
string
从java.lang.String 到 VARCHAR (或者 Oracle的 VARCHAR2)的映射。
date, time, timestamp
从java.util.Date和其子类到SQL类型DATE, TIME 和TIMESTAMP (或等价类型)的映射。
calendar, calendar_date
从java.util.Calendar 到SQL 类型TIMESTAMP和 DATE(或等价类型)的映射。
big_decimal, big_integer
从java.math.BigDecimal和java.math.BigInteger到NUMERIC (或者 Oracle 的NUMBER类型)的映射。
locale, timezone, currency
从java.util.Locale, java.util.TimeZone 和java.util.Currency 到VARCHAR (或者 Oracle 的VARCHAR2类型)的映射. Locale和 Currency 的实例被映射为它们的ISO代码。TimeZone的实例被影射为它的ID。
class
从java.lang.Class 到 VARCHAR (或者 Oracle 的VARCHAR2类型)的映射。Class被映射为它的全限定名。
binary
把字节数组(byte arrays)映射为对应的 SQL二进制类型。
text
把长Java字符串映射为SQL的CLOB或者TEXT类型。
serializable
把可序列化的Java类型映射到对应的SQL二进制类型。你也可以为一个并非默认为基本类型的可序列化Java类或者接口指定Hibernate类型serializable。
clob, blob
JDBC 类 java.sql.Clob 和 java.sql.Blob的映射。某些程序可能不适合使用这个类型,因为blob和clob对象可能在一个事务之外是无法重用的。(而且, 驱动程序对这种类型的支持充满着补丁和前后矛盾。)
更多追问追答
追问
我的那为什么是乱码呀?
追答
统一编码UTF-8
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
c7ge
2012-07-16 · TA获得超过317个赞
知道小有建树答主
回答量:241
采纳率:0%
帮助的人:141万
展开全部
varchar类型就是对于java的string类型啊 至于乱码 就是你的数据库编码同程序编码不一致造成的
追问
该怎么处理呀?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式