首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
生成sqlite的model时blob类型映射成了string
libofei
2019-03-08 16:49
生成sqlite的model时字段blob类型映射成了string,这不对吧,怎样生成正确的映射类型呢?
项目:
JFinal
1
评论区
JFinal
2019-03-08 17:02
sqlite 在 PC 或 Server 端用得比较少,它的 JDBC 驱动对于 meta 获取的 API 可能不完善
解决办法是继承一下 MetaBuilder,覆盖里面生成 java 类型的方法,自己定制就可以了
回复
libofei
2019-03-08 17:10
@JFinal
好的
回复
libofei
2019-03-10 15:37
@JFinal
自己定制还是会遇到问题,拿不到sqlite的数据类型,metadata的columntype始终是0
回复
JFinal
2019-03-10 16:42
@libofei
之所以没能支持 sqlite,就是因为它的这些 meta data 信息返回不正确,这个时候就需要你针对性的添加逻辑判断强行给定正确的 columntype
回复
libofei
2019-03-10 19:49
@JFinal
判断依据是什么呢?
回复
JFinal
2019-03-10 22:38
@libofei
这个只能根据你碰到的需求来做
回复
libofei
2019-03-11 08:48
@JFinal
那可能只能根据顺序或字段名识别了,这样程序就只能处理固定的表结构了
回复
libofei
2019-03-11 16:09
@JFinal
用findbyid查询时,报异常not implemented by sqlite jdbc driver,是不是不支持这个语句?后来换用query,返回的是object,这个应该怎么处理呢?
回复
JFinal
2019-03-11 16:25
@libofei
先配置 arp.setShowSql(true) ,将 sql 输出, 看看是什么 sql 不支持
按理说 findById 的 sql 是支持的,因为就是最基本的:select * from t where id = ?
回复
libofei
2019-03-11 17:17
@JFinal
感觉不是sql不支持,而是jdbc里的函数不支持
回复
两行泪
2019-03-11 17:20
@JFinal
jfinal-version-all.zip在哪里下载我找不到
回复
JFinal
2019-03-11 17:48
@两行泪
首页右侧 jfinal 3.6 all
回复
JFinal
2019-03-11 17:49
@libofei
sqlite 的 JDBC 驱动没有很好实现 JDBC 的规范,所以就有问题,升级一下驱动到最新版本试试
回复
libofei
2019-03-11 17:49
@JFinal
哪怕输入最简单的select * from tiles 也报这个错,而直接在sqlite工具里运行sql是可以返回结果的
回复
libofei
2019-03-12 11:29
@JFinal
试了sqlitejdbc3.25版,还是不行,不过报错变成了java.sql.sqlfeaturenotsupportedexception
回复
两行泪
2019-03-12 15:52
@JFinal
旧版的去哪里下载?
回复
JFinal
2019-03-12 16:29
@两行泪
maven 库中全都有,永久存在:
https://mvnrepository.com/search?q=jfinal
https://search.maven.org/search?q=jfinal
回复
两行泪
2019-03-12 16:43
@JFinal
为什么用非maven的方式搭建Jfinal,运行成功,页面没有出现Hello World
回复
libofei
2019-03-14 14:14
@JFinal
如果想使用数据库jdbc自带的一些接口怎么获得数据源对象?比如想得到sqlitedatasource
回复
JFinal
2019-03-14 14:17
@libofei
搜索一下:java DataSource
会出来很多例子代码
回复
libofei
2019-03-14 15:26
@JFinal
呃,我是说在用jfinal自带的数据连接机制的情况下怎么获取这些对象
回复
JFinal
2019-03-14 15:57
@libofei
DbKit.getConfig().getDataSource()
回复
libofei
2019-03-14 16:33
@JFinal
这个获取的还是jfinal的数据源,如druidplugin这种,如果我想获得jdbc库的数据源如sqlitedatasource,应该怎样获得?
回复
JFinal
2019-03-14 16:38
@libofei
单步调试,看看 DbKit.getConfig().getDataSource() 获取到的对象是什么类型,或许就是你要的类型,那么强制类型转换即可
如果不是你要的类型,单步调试在断点停下时看对象里头包含的属性有没有你要的东西
DbKit.getConfig().getDataSource() 得到的很可能是一个包装类,里头会有你要的东东,通过其提供的 getter 方法获取得到,如果没有 getter 方法,可以通过反射获取
回复
libofei
2019-03-14 17:44
@JFinal
我尝试过强转,但报了异常,返回结果就是druiddatasource,那就得看这个里面是否包含原始的数据源了
回复
发送
我要反馈
热门反馈
扫码入社
解决办法是继承一下 MetaBuilder,覆盖里面生成 java 类型的方法,自己定制就可以了