指点成金-最美分享吧

登录

数据库的中text类型,对应Java中的啥类型

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了数据库的中text类型,对应Java中的啥类型相关的知识,希望对你有一定的参考价值。

一般用String就可以了,
如果文本过大的话,
可以使用 java.sql 包下的Clob类。
参考技术A 一般用String就可以了,如果文本过大的话,可以使用 java.sql 包下的
Clob类。
参考技术B 对应 String 类型 参考技术C String,,,,

java中一个对象的属性为String 在mysql中对应text列 表有该列数据,可是读取该列的时候为null,求解决方法

sql语句在数据库跑一下,是否得到数据。然后确定属性与表中的字段对应,且已经将表中数据转化成对象实例,将字段的数据对应的放入对象实例的属性追问

这个应该没错 其他的列能正常获取

追答

确定能在数据库中运行sql并得到字段数据后,判断数据库中的字段类型,和java中的属性类型,是否匹配,如果不匹配,可能会出现少数据或者属性得不到字段数据

网上查一下你使用的数据库(sqlserver or oracle or。。。)中的text类型与java中所匹配的数据类型,或者在java中的取出方法

追问

我是用phpAdmin 来控制数据库的 能执行sql语句 并且能返回text的值 就是在java程序中无法取出该列的值

追答

好像不能直接用java中的String接数据库text值,应该用getClob(“字段名”).toString()之类的转化一下

如果是用框架(hibernate,ibatis,jpa,。。。),应该就没问题,框架内部会自动调节

参考技术A (case when 列名 is null then "" else 列名 end) 列名
最后一个列名可是是别名随便起的,这样原来没有值的列查出来就是""
参考技术B 可能是你在用对象调用数据库的列的位置方面显示错误。
例如:String text = rs.getString(2); 这其中的2代表就是该text列在第二列。 数据库是从第1列开始的。
还有一种情况可能是你数据库连接出问题了 导致不能获取到text列中的值!追问

这个应该没错 其他的列能正常获取

追答

看看你获取text列的属性是否与你的java类型匹配,如果不匹配那么返回的可能就是NULL。如果还是不行 你把你的java对象的属性设置为Object试试。

参考技术C 你说的他模糊了。。。。。能不能说的详细一下,你是用什么方法去连接数据库的,取值的时候别的字段的只能不能取到?追问

别的能取到 只要 是数据库是text类型的就不能取出

参考技术D 连接数据库写错了没 , 测试一下看看 获取了几条数据追问

这个一定没错 其他的列正常获取

以上是关于数据库的中text类型,对应Java中的啥类型的主要内容,如果未能解决你的问题,请参考以下文章