jfinal连接数据库后,设置数据库中字段类型为tinyint,不能通过getInt获取到值

wangma 发布于 2012/11/11 21:13
阅读 1K+
收藏 1

@JFinal 你好,想跟你请教个问题:就是用jfinal框架连接数据库做查询数据,不能从数据库中得到字段类型为tinyint的值?当改为其他的比如smalint或int却可以,bigint也不能。

加载中
0
JFinal
JFinal

    tinyint 值的获取与其长度有关,有两种情况:

1:tinyint(n) n > 1 ,当长度大于1时需要使用getInt 获取,jdbc会自动将值转成int

2:tinyint(1), 当长度等于1时需要使用getBoolean获取,jdbc会自动将值转成boolean

    JFinal 从数据库读取数据,都仅仅是转调jdbc获取,并未转换类型(blob、clob除外)


a
alvinte
补充一下,提醒注意:1、此处括号里面的1 不代表数据长度为1;2、当数据库类型为tinyint(1)而且数据实际长度也是1的时候,jdbc才认为是boolean类型。
0
wangma
wangma

我那个数据库值是1,用getBoolean获取到了值,非常感谢你的回答,再请教一个问题就是,通过setSessionAttr()来将一个用户信息传到session中,但是在freeMarker不能获取到,查看了一些别人的意见但也没有得到解决。

wangma
wangma
回复 @JFinal : 谢谢了!
JFinal
JFinal
另外补充一下,无论是什么类型,你可以先用Object value = yourModel.get(attrName) 先得到,这个方法用的泛型
JFinal
JFinal
JFinal 提倡 Restful,所以不会主动处理session,开发者要使用session只需主动去使用即可。在需要使用session的actoin上配置一个SessionInViewInterceptor即可
返回顶部
顶部