java如何读取mysql中的text类型的数据。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何读取mysql中的text类型的数据。相关的知识,希望对你有一定的参考价值。

我在数据库中有一text类型的字段为content.当我存有内容在content中,执行
if(rs.next())rs.getString(1);正常。但是如果我没有存放内容,
if(rs.next())依然可以执行,不过此时执行到rs.getString(1)就会出现异常(我明白因为此时rs应该为null),但我不明白为什么if(rs.netx())仍可执行,我的content内容不是null吗?

java mysql 数据类型对照:

对于bolb,一般用于对图片的数据库存储,原理是把图片打成二进制,然后进行的一种存储方式,在java中对应byte[]数组。
对于boolen类型,在mysql数据库中,用int类型代替较好,对bit操作不是很方便,尤其是在具有web页面开发的项目中,表示0/1,对应java类型的Integer较好。

参考技术A rs.next仅仅是记录集指针移到下一条记录,只要这条记录存在就OK,不会关心你那条记录的某个字段有没有东西,除非到达了所有记录的末尾返回eof了才会为false。
rs.getString(1)的时候发现字段值为空,当然就异常了,所以可以这样写试试:
if(rs.next() && rs.getString(1) )rs.getString(1);

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 连接数据库写错了没 , 测试一下看看 获取了几条数据追问

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

以上是关于java如何读取mysql中的text类型的数据。的主要内容,如果未能解决你的问题,请参考以下文章

mybatis 如何读取 mysql text类型数据?读出来的和数据库里的不一样

数据类型已从 Text10 -> Code10 更改,mysql 中的等效类型是啥?

在JAVA中怎么获取mysql表中的mediumtext类型和datatime类型的字段并显示在控制台上?

java读取照片保存到达梦数据库

mysql text类型 对应 java中的啥类型

mysql中text是啥类型?跟varchar啥区别?为啥这个数据库中text类型后面的长度是0?