jdbc和oracle数据库的问题
对于oracle数据库被设置为主键或者外键的字段,在java中利用jdbc或是连接池查询的时候,该字段只能赋予int类型的值而不能是字符串吗?比如,在student表中有...
对于oracle数据库被设置为主键或者外键的字段,在java中利用jdbc或是连接池查询的时候,该字段只能赋予int类型的值而不能是字符串吗?比
如,在student表中有一个主键字段为id,我在数据库中这样子写sql语句
“select * from student where id = ?”,在java中传入一个字符串类型的id,那我用连接池来编译给sql语句
时,我是写成“qr.query(sql,new BeanListHandler<Student>
(Student.class),id)”,这样子是编译不过的,只能把字符串类型的id转换成int类型,才能编译通过,请问我这样的理解正确吗?
cid在oracle数据库的存储类型时char(32),但是如果我直接写return qr.query(sql, new BeanListHandler<Book>(Book.class), cid);的时候是查不到数据的,只有把cid装换成int类型,才能查询到数据
query是dbutil里面的方法,是给数据库的字段传参的,是object类型 展开
如,在student表中有一个主键字段为id,我在数据库中这样子写sql语句
“select * from student where id = ?”,在java中传入一个字符串类型的id,那我用连接池来编译给sql语句
时,我是写成“qr.query(sql,new BeanListHandler<Student>
(Student.class),id)”,这样子是编译不过的,只能把字符串类型的id转换成int类型,才能编译通过,请问我这样的理解正确吗?
cid在oracle数据库的存储类型时char(32),但是如果我直接写return qr.query(sql, new BeanListHandler<Book>(Book.class), cid);的时候是查不到数据的,只有把cid装换成int类型,才能查询到数据
query是dbutil里面的方法,是给数据库的字段传参的,是object类型 展开
1个回答
展开全部
首先主键/外键是可以为字符串类型的。对于你的问题,可以从以下几点去检查:
第一,你oracle数据库中id字段设置的是什么类型的?Java中传入的参数类型需与数据库该字段设 计的类型一致。
第二,你的query方法是自己写的类么?他的参数设置是什么样的,需要检查下,因为没有看到具 体代码,这个不能具体了解。
希望你补充问题后,可以帮助到你。
第一,你oracle数据库中id字段设置的是什么类型的?Java中传入的参数类型需与数据库该字段设 计的类型一致。
第二,你的query方法是自己写的类么?他的参数设置是什么样的,需要检查下,因为没有看到具 体代码,这个不能具体了解。
希望你补充问题后,可以帮助到你。
追问
public List findByCid(String cid){
String sql = "select * from book where cid = ?";
int a = Integer.parseInt(cid);
return qr.query(sql, new BeanListHandler(Book.class), a);
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询