import java.sql.*;
public class EnuResultSet {
public static void main(String[] args) throws Exception {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String pass = "123";
//
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, user, pass);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from dept");
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
// 输出列名
for (int i=1; i<=columnCount; i++){
System.out.print(rsmd.getColumnName(i));
System.out.print("(" + rsmd.getColumnTypeName(i) + ")");
System.out.print(" | ");
}
System.out.println();
// 输出数据
while (rs.next()){
for (int i=1; i<=columnCount; i++){
System.out.print(rs.getString(i) + " | ");
}
System.out.println();
}
rs.close();
stmt.close();
conn.close();
}
}
但如果是任意一个返回的结果集,比如数据库元数据DatabaseMedata中的多个方法返回的都是ResultSet对象,如:getAttributes() ,getBestRowIdentifier() ,getTypeInfo()等方法,这时如何遍历这个对象的每一列,上面的方法就处理不了了?
我已解决:
import java.sql.*;
public class TestMetaData {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
ResultSetMetaData rm;
DatabaseMetaData dmd;
int n=1;
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url,"scott","123");
dmd = conn.getMetaData();
if(dmd == null){
System.out.println("no Meta avaliable.");
}else{
System.out.println("Database Name:"+dmd.getDatabaseProductName());
System.out.println("Database Version:"+ dmd.getDatabaseProductVersion());
System.out.println("Database Driver:"+ dmd.getDriverName());
System.out.println("Database DriverVerion:"+ dmd.getDriverVersion());
System.out.println("Database DataBase TypeList:");
rs = dmd.getTypeInfo();
rs.next();
for(int i=1;i <=n;i++){
if(rs.getString(i)!=null){
n+=1;}
}
while(rs.next()){
for (int i1=1;i1<n;i1++){
System.out.print("\t" + rs.getString(i1)+"\t");
}
System.out.println();
}
rs.close();
}
stmt = conn.createStatement();
String sql = "select * from dept";
rs = stmt.executeQuery(sql);
System.out.println("The data table structure info:");
rm = rs.getMetaData();
int columnNum = rm.getColumnCount();
System.out.println("Num \tcolumnName \tDataType");
for (int i=1;i<=columnNum;i++){
System.out.println(i+"\t"+rm.getColumnName(i)+"\t"+rm.getColumnTypeName(i));
}
}catch (Exception e){
e.printStackTrace();
}finally{
CloseConn.closeConnEtc(rs,conn,stmt);
}
}
}
分享到:
相关推荐
主要介绍了java中ResultSet遍历数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Java连接查询数据库代码,可以了解下加载驱动器、获取连接、获取Statement对象、执行查询、遍历ResultSet、获取数据、在控制台输出数据、输出出错信息等方面的小技巧。Class.forName(...
Java连接数据库并修改内容,Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动器 Connection con=DriverManager.get... while (rs.next()){ //遍历ResultSet name=rs.getString("name"); //获取数据
主要介绍了JSP获取ResultSet结果集中数据的方法,文后还介绍一种遍历ResultSet中的数据并转化为表格的方法,需要的朋友可以参考下
ResultSet的用法
ResultSet 转为listmap
Java建立数据库连接并实现数据库查询,初学者通过本Java源代码,了解如何加载驱动器,获取连接,定义SQL查询语句,获取Statement对象,执行查询、遍历ResultSet、获取数据、在控制台输出数据,关闭连接等。
java数据库连接ResultSet
这是一个用来教你如何使用ResultSet 获取数据对象的文档,非常使用
JAVA 版本ResultSet 转换为JAVABEAN的工具类
ResultSet直接在JTable显示
本文档演示如何从 Java 存储过程将 JDBC ResultSet 作为 REF CURSOR 返回。JDBC ResultSet 是一个表示数据库的数据表,通常通过执行查询数据库的语句产生该表。REF CURSOR 是 PL/SQL 中相应的类型。Java 存储过程的...
获得结果集的字段名称,ResultSet的属性要调用ResultSetMetaData的方法
jsp 三种查询分页 resultset,hibernate ,存储过程jsp 三种查询分页 resultset,hibernate ,存储过程jsp 三种查询分页 resultset,hibernate ,存储过程jsp 三种查询分页 resultset,hibernate ,存储过程
poi根据ResultSet到处Excle源码,包含项目所需jar包,可以直接运行
while (rs.next()){ //遍历ResultSet name=rs.getString("name"); //获取数据 age=rs.getInt("age"); sex=rs.getString("sex"); email=rs.getString("email"); System.out.println("Name: " name ...
资源所属:https://blog.csdn.net/qq_16773953/article/details/103461172
ResultSet转化为json,json转化为List,轻松搞定
resultset 变成 XML 格式输出
在java开发中常需要将ResultSet结果集转化为json格式以实现与客服端实现数据交互,但是这需要几个包,而且版本也要对应,因此我收集了全部的包,并测试可以运行,放在这里供大家下载。包括:commons-beanutils-1.7.0...