mysql cast报错_mysql数据库cast

关于JFinal在处理MySQL数据时遇到的问题,主要涉及数据类型转换。记录了在使用Record对象获取Long类型数据时出现的casting错误,以及讨论了在不同数据库中int类型与Java类型匹配的问题。解决方案包括理解JDBC返回的数据类型和使用适当的get方法来避免转换错误。
摘要由CSDN通过智能技术生成

关于

mysql数据库cast的搜索结果

问题

请教一下,Record中的getLong如何兼容Mysql、Oracle?报错

@JFinal 你好,想跟你请教个问题:

Record中的getLong如何兼容Mysql、Oracle,因为数值字段在Mysql中使用getLong正确,但在Oralc...

爱吃鱼的程序员

2020-06-22 22:37:06

0 浏览量

回答数 1

问题

map<String,String>中存有tinyint数据,在ma?报错

用mybatis连接mysql查询数据,返回的数据我放在了Map中,没有问题, 但是当我想取出数据库中tinyint类型的数据的时候,报错java.lang.Boolean canno...

爱吃鱼的程序员

2020-06-24 14:09:56

0 浏览量

回答数 1

问题

jfinal获取时间的问题?报错

我用的是mysql数据库,有个表字段是datetime

我现在用 fb_time=hydLoan.getDate("publish_time");

直接报错是java.lang.ClassC...

爱吃鱼的程序员

2020-06-14 20:14:17

0 浏览量

回答数 1

ff0c35e3aa0877a25f7873cca08f3438.png

Quick BI 数据可视化分析平台

2020年入选全球Gartner ABI魔力象限,为中国首个且唯一入选BI产品

回答

Record 应该有一个 getInt() 方法就好,不知道有没有######record.getInt("id")会报转换错误######有啊######int id = record.getInt('id');######java.lang.Long cannot be cast to java.lang.Integer at com.jfinal.plugin.activerecord.Record.getInt(Record.java:170)######idint(20) NOT NULL AUTO_INCREMENT 这句被你改成 idint(5) NOT NULL AUTO_INCREMENT, 错误还在吗? 一般是 int(11)######错误还在######jfinal诸如getInt(),getDouble()和jdbc中ResultSet的getInt()不同,后者你这样用可以,他直接以int返回。但是前者实际上是(Integer)getObject()的封装,而getObject()是返回默认的类型,所以mysql int默认是返回Long类型的,你这样就错了。所以解决方法是getLong("columnname")。 ######回复 @nginx困惑 : 我好像说错了,不同数据库sql类型到java类型应该是一样的,mysql 的int应该是对应java的int.bigint才是long。而且jfinal的源码上也标明了说getInt()获取mysql的int ,smallint等。######回复 @nginx困惑 : 这个不同数据库默认类型不一样的,你只能试试了。而且现在orm只是为了面向对象操作数据库,一般很少跨数据库的。你的数据库又不会变来变去。######回复 @Burning_BL :我数据库定义的是int,返回的是long,这个我取列是知道数据库类型,但像我现在遇到的问题,我只知道数据库定义是int型,但我不知道数据库返回的会不会是Long型的。######回复 @nginx困惑 : 没办法的,jfinal是这样封装的。id一般都用Long的,而且你取列的时候肯定知道是什么sql类型,然后用对应的java类型接收就行。比如如果sql是double,float,你就用Double,如果是decimal,就用BigDecimal,具体对应方式请百度。######因为我mysql数据库定义的是int类型,mysql返回long超出了我预知的范围######

mysql 数据库字段设置为 int(5),单纯取数据应该是 Integer 型,但 sql 语句可以导致这个字段值会变成 Long,例如: select sum(id).....,又如 select count(id),对 int 型字段进行运算返回了Long型值是为了防止数值溢出。

JFinal仅仅是从JDBC的ResultSet中取值,并没有对数据进行转换(Blob、Clob灰型除外),所以弄清楚JDBC返回了什么类型就可以。

贴出你的 sql 语句 ######如果能够灵活转换就好。######SQL语句 : Record accountByEmail = Db.findFirst("select * from account where email=?",email);######我也遇到了,这个

record.getInt("id") 返回的数据,听你们说的,不是我们能确定的。。######解决方法是将接收值设置为Long吗?######

引用来自“hanzhankang”的答案

解决方法是将接收值设置为Long吗?

请看这里:

http://www.oschina.net/question/924197_128359

爱吃鱼的程序员

2020-06-02 14:14:32

0 浏览量

回答数 0

回答

Record 应该有一个 getInt() 方法就好,不知道有没有######record.getInt("id")会报转换错误######有啊######int id = record.getInt('id');######java.lang.Long cannot be cast to java.lang.Integer at com.jfinal.plugin.activerecord.Record.getInt(Record.java:170)######idint(20) NOT NULL AUTO_INCREMENT 这句被你改成 idint(5) NOT NULL AUTO_INCREMENT, 错误还在吗? 一般是 int(11)######错误还在######jfinal诸如getInt(),getDouble()和jdbc中ResultSet的getInt()不同,后者你这样用可以,他直接以int返回。但是前者实际上是(Integer)getObject()的封装,而getObject()是返回默认的类型,所以mysql int默认是返回Long类型的,你这样就错了。所以解决方法是getLong("columnname")。 ######回复 @nginx困惑 : 我好像说错了,不同数据库sql类型到java类型应该是一样的,mysql 的int应该是对应java的int.bigint才是long。而且jfinal的源码上也标明了说getInt()获取mysql的int ,smallint等。######回复 @nginx困惑 : 这个不同数据库默认类型不一样的,你只能试试了。而且现在orm只是为了面向对象操作数据库,一般很少跨数据库的。你的数据库又不会变来变去。######回复 @Burning_BL :我数据库定义的是int,返回的是long,这个我取列是知道数据库类型,但像我现在遇到的问题,我只知道数据库定义是int型,但我不知道数据库返回的会不会是Long型的。######回复 @nginx困惑 : 没办法的,jfinal是这样封装的。id一般都用Long的,而且你取列的时候肯定知道是什么sql类型,然后用对应的java类型接收就行。比如如果sql是double,float,你就用Double,如果是decimal,就用BigDecimal,具体对应方式请百度。######因为我mysql数据库定义的是int类型,mysql返回long超出了我预知的范围######

mysql 数据库字段设置为 int(5),单纯取数据应该是 Integer 型,但 sql 语句可以导致这个字段值会变成 Long,例如: select sum(id).....,又如 select count(id),对 int 型字段进行运算返回了Long型值是为了防止数值溢出。

JFinal仅仅是从JDBC的ResultSet中取值,并没有对数据进行转换(Blob、Clob灰型除外),所以弄清楚JDBC返回了什么类型就可以。

贴出你的 sql 语句 ######如果能够灵活转换就好。######SQL语句 : Record accountByEmail = Db.findFirst("select * from account where email=?",email);######我也遇到了,这个

record.getInt("id") 返回的数据,听你们说的,不是我们能确定的。。######解决方法是将接收值设置为Long吗?######

引用来自“hanzhankang”的答案

解决方法是将接收值设置为Long吗?

请看这里:

http://www.oschina.net/question/924197_128359

黄二刀

2020-05-27 10:09:17

0 浏览量

回答数 0

问题

jfinal getModel报错:java.lang.Integer cann?报错

@JFinal 你好,想跟你请教个问题:

在mysql数据库中有一个表disposelog,其中字段disposeflag 类型是 int(1),

我前台表单代码为...

爱吃鱼的程序员

2020-06-09 13:19:57

0 浏览量

回答数 1

问题

SQL 兼容性怎么样?

[font=PingFangSC, "]DRDS 高度兼容 MySQL 协议和语法,但由于分布式数据库和单机数据库存在较大的架构差异,存在 SQL 使用限制。相关兼容性和 SQL 限制描述如下。

...

猫饭先生

2019-12-01 21:19:24

905 浏览量

回答数 0

问题

MySQL 数据类型,数据库报错

"

1.数值类型

MYSQL支持所有标准SQL,这其中包括:

精确数值数据类型:INTERGER/INT,SMALLINT,DECIMAL/DEC,NUMERIC近似数值数据类型:FLOAT,REAL,DOCULE PR...

python小菜菜

2020-06-01 16:05:21

1 浏览量

回答数 1

问题

hql语句查询到一个Object强制转换为一个pojo不能成功,求助! ! !

用Spring整合Hibernate去实现对mysql数据表信息查询时,由hql语句查询到的一个Object强制转换为一个pojo不能成功。

TeacherDaoImpl.java代码

public Teacher findByNo(St...

爵霸

2019-12-01 20:03:48

1189 浏览量

回答数 1

问题

HybridDB for MySQL中支持的MySQL函数有什么

HybridDB for MySQL目前支持在SELECT查询语句中使用如下的SQL函数:

注:1.若无特殊说明,以下函数均为

MySQL v5.6中的函数定义)

注:2...

云栖大讲堂

2019-12-01 21:27:41

1433 浏览量

回答数 0

问题

SaaS模式云数据仓库MaxCompute 百问百答合集(持续更新20201202)

产品简介

什么是MaxCompute呢? https://developer.aliyun.com/ask/289579 使用MaxCompute需要什么专业技能? https://developer.aliyun.co...

亢海鹏

2020-05-29 15:10:00

27621 浏览量

回答数 35

问题

hql语句查询到的一个Object强制转换为一个pojo不能成功,求助,很急!?报错

用Spring整合Hibernate去实现对mysql数据表信息查询时,由hql语句查询到的一个Object强制转换为一个pojo不能成功。

TeacherDaoImpl.java代码

public Teacher...

爱吃鱼的程序员

2020-06-09 15:38:11

0 浏览量

回答数 1

问题

使用jfinal源码在jetty上运行出错? 报错

使用jfinal源码在jetty上运行出错? 400 报错

@JFinal 你好,想跟你请教个问题:

在jetty上跑之后出现了以下问题

Exception in thread "...

优选2

2020-06-04 21:21:30

1 浏览量

回答数 1

问题

使用jfinal源码在jetty上运行出错? 400 报错

使用jfinal源码在jetty上运行出错? 400 报错

@JFinal 你好,想跟你请教个问题:

在jetty上跑之后出现了以下问题

Exception in thread "...

爱吃鱼的程序员

2020-05-29 18:21:52

2 浏览量

回答数 0

问题

【Java学习全家桶】1460道Java热门问题,阿里百位技术专家答疑解惑

阿里极客公益活动:

或许你挑灯夜战只为一道难题

或许你百思不解只求一个答案

或许你绞尽脑汁只因一种未知

那么他们来了,阿里系技术专家来云栖问答为你解答技术难题了

他们用户自己手中的技术来帮助用户成长

本次活动特邀百位阿里技术专家对Java常...

管理贝贝

2019-12-01 20:07:15

27612 浏览量

回答数 19

问题

Hive UDF函数报错UDFArgumentException: The UD?400报错

这两天遇到了一个比较诡异的问题,就是编辑Hive的UDF函数,并提交需要执行MapReduce的SQL后,提示报错 org.apache.hadoop.hive.ql.exec.UDFArgumen...

爱吃鱼的程序员

2020-06-08 12:35:39

0 浏览量

回答数 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值