JDBC初学的问题

刚开始学习JDBC,能够成功的连接数据库。但是遇到了问题,请高手帮忙。如以下代码所示,我的数据库中有学生表,分别有学号,姓名,年龄,性别,所在系,五个属性。执行“sele... 刚开始学习JDBC,能够成功的连接数据库。但是遇到了问题,请高手帮忙。
如以下代码所示,我的数据库中有学生表,分别有学号,姓名,年龄,性别,所在系,五个属性。执行“select *”语句时可以写出如下的便利语句,但是我想写出一个模块,让用户自己输入查询语言。例如:"select 姓名,年龄 from 学生",这样的话运行就会出错,getxxxx(unknown sourse)。有没有什么方法能够根据select语句而改变while语句,或者同等效果。谢谢各位了
while(rs.next())
{
System.out.print(rs.getInt("学号") + " ");
System.out.print(rs.getString("姓名") + " ");
System.out.print(rs.getInt("年龄") + " ");
System.out.print(rs.getString("性别") + " ");
System.out.println(rs.getString("所在系"));
}
展开
 我来答
ak461230
2009-05-11 · TA获得超过115个赞
知道小有建树答主
回答量:184
采纳率:60%
帮助的人:71.4万
展开全部
我帮你解决,这是个小玩意儿,给你思路,第一步,获取结果集中的字段的数量,即就是结果集中包含的字段个数,第二步循环获取每个字段的数据类型,第三步,按照字段类型获取结果集的数据。如果需要代码的话,给我信息。给你代码:
package tests;

import java.sql.Array;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Types;

public final class JdbcTest {
/*
* 这里只写出关键代码,默认构造方法需要传入参数ResultSet
*/
int [] types;//定一个数组,用于存放获得的字段类型。
public JdbcTest(ResultSet rs){
ResultSetMetaData rsm;//元数据
try{
rsm=rs.getMetaData();//获取元数据会抛出SQL异常,需要扑获
int zdzs=rsm.getColumnCount();//第二步获取结果集中字段总数
types=new int[zdzs];//初始化数组长度为结果集的字段数量
for(int i=0;i<zdzs;i++){//循环取出字段类型,并填充到数组中,然后根据字段类型使用GETxxx方法得到数据。
/*
* 因为ResultSetMetaData.getColumnType(int index)中的index索引是从1开始,所以需要加上1。
*/
types [i]=rsm.getColumnType(i+1);
System.out.println(types [i]);
switch(types[i]){
case Types.ARRAY:
Array ar=rs.getArray(i+1);
break;
case Types.BIGINT:
Number f=rs.getBigDecimal(i+1);
break;
case Types.BIT:
boolean b=rs.getBoolean(i+1);
break;
//....后面省略了,你自己写吧。
}
}
}catch(SQLException se){
se.printStackTrace();
}
}
}
240728057
2009-05-10 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:104万
展开全部
如果要用户输入查询语言,不如写多一些功能,让用户选择,然后在执行语句得出结果,这可能会好点,不竟有些用户不懂得sql语法.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b7d2b2f
2009-05-10 · TA获得超过901个赞
知道小有建树答主
回答量:994
采纳率:50%
帮助的人:581万
展开全部
你为什么不直接让用户写要查询的东西呢,而你把他要查询的东西接受不行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ajax_2003
2009-05-10 · TA获得超过4995个赞
知道大有可为答主
回答量:2628
采纳率:0%
帮助的人:2476万
展开全部
用preparedStatemt 用法你可以查API
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孟侬B5
2009-05-10 · TA获得超过152个赞
知道答主
回答量:89
采纳率:0%
帮助的人:0
展开全部
你帮他们的意思串起来 ,好好想想,就可以拉!主要靠你自己拉!
加油哦!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
h111z
2009-05-10 · 超过10用户采纳过TA的回答
知道答主
回答量:143
采纳率:0%
帮助的人:0
展开全部
你应该再进行需求分析,,,,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式