jdbc ResultSet 结果集 怎么处理
假设有一个表:student(namevarchar2(10),sexchar(2),agenumber(3)).写程序的时候不知道Student表中的每列是什么类型,如...
假设有一个表:student(name varchar2(10),sex char(2),age number(3)).
写程序的时候不知道Student表中的每列是什么类型,如何用ResultSet 中的getXXX()方法,获取数据。
ResultSet中的getMetaDate()方法怎么使用
请尽可能详细讲解,若有实例更好
用getString(index)能搞定所有的吗 展开
写程序的时候不知道Student表中的每列是什么类型,如何用ResultSet 中的getXXX()方法,获取数据。
ResultSet中的getMetaDate()方法怎么使用
请尽可能详细讲解,若有实例更好
用getString(index)能搞定所有的吗 展开
8个回答
展开全部
ResultSet结果集的getXXX()方法可以直接用getXXX(index)获取里面的数据,不过要按照顺序和类型分开,例如如果数据库表属性是int行那么用getInt(index)直接获取,如果是varchar或char或varchar2(oracle中)可以用getString(index)来获取对应列的值。
还有一种方式是getXXX(属性名),例如你的name属性可以直接用getString("name")来获取值;
在提示一下,在ResultSet结果集使用的时候,应该先调用一下first();或next()方法。来确保指针指向第一行。
不知道对你有帮助没有,至于getMetaDate();我没用过,请楼下解释。
还有一种方式是getXXX(属性名),例如你的name属性可以直接用getString("name")来获取值;
在提示一下,在ResultSet结果集使用的时候,应该先调用一下first();或next()方法。来确保指针指向第一行。
不知道对你有帮助没有,至于getMetaDate();我没用过,请楼下解释。
参考资料: http://wenku.baidu.com/view/ef2d7e126edb6f1aff001f1a.html
展开全部
使用getString()是可以搞定你上面的所有类型的,不过读出来的是String类型的,你要转换成其他类型。如果你是想读取age,最好使用getInt();这样。
建议你多看jdk文档,搞程序的人要学会看文档啊,很多类的使用通过看文档就行了,文档讲得最清楚。
希望我的回答对你有所帮助。
建议你多看jdk文档,搞程序的人要学会看文档啊,很多类的使用通过看文档就行了,文档讲得最清楚。
希望我的回答对你有所帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在JDK1.1中,ResultSet类中只定义了next()方法支持数据指针的下移.但在Java 2中,ResultSet类增加了如下方法支持数据指针的移动,包括:
ResultSet.first():将数据指针移到结果集的第一行
ResultSet.last(): 将数据指针移到结果集的最后一行
ResultSet.previous(): 将数据指针上移一行
以上的方法定义在JDBC2.0的规范中,所有支持JDBC 2.0的JDBC驱动程序都可以支持上述方法.目前Intersolv和OpenLink等JDBC驱动程序厂商均有产品支持JDBC 2.0
请参考
ResultSet.first():将数据指针移到结果集的第一行
ResultSet.last(): 将数据指针移到结果集的最后一行
ResultSet.previous(): 将数据指针上移一行
以上的方法定义在JDBC2.0的规范中,所有支持JDBC 2.0的JDBC驱动程序都可以支持上述方法.目前Intersolv和OpenLink等JDBC驱动程序厂商均有产品支持JDBC 2.0
请参考
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/**
*
* @param conn 数据库连接对象
* @param t 任意类型的bean
* @return List<bean>
* @throws SQLException SQL异常
*/
public static <T> List<T> getList(Connection conn,T t) throws SQLException{
QueryRunner qr=new QueryRunner();
String sql="select * from "+t.getClass().getSimpleName().toLowerCase();
List<T> list=qr.query(conn, sql, new BeanListHandler<T>((Class<T>) t.getClass()));
return list;
}
只要传入一个对象的实例,就可以获得这个对象的list,例如,程序中有Person类,数据库中有person表,person类和person表字段相对应,查询后就可以获得所有person
*
* @param conn 数据库连接对象
* @param t 任意类型的bean
* @return List<bean>
* @throws SQLException SQL异常
*/
public static <T> List<T> getList(Connection conn,T t) throws SQLException{
QueryRunner qr=new QueryRunner();
String sql="select * from "+t.getClass().getSimpleName().toLowerCase();
List<T> list=qr.query(conn, sql, new BeanListHandler<T>((Class<T>) t.getClass()));
return list;
}
只要传入一个对象的实例,就可以获得这个对象的list,例如,程序中有Person类,数据库中有person表,person类和person表字段相对应,查询后就可以获得所有person
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题搞定了吗?
你数据库里的表都有一张两对应的实体类:你在定义实体类的时候肯定区分了它的类型,所以你在使用ResultSet.get的时候就可以区分了。
你数据库里的表都有一张两对应的实体类:你在定义实体类的时候肯定区分了它的类型,所以你在使用ResultSet.get的时候就可以区分了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询