Java操作数据库: 接口 ResultSet
ResultSet 接口提供用于从当前行获取列值的获取 方法
ResultSet 对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。next 方法将光标移动到下一行;因为该方法在 ResultSet 对象没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集。
/************************************SOURCECODE******************************************/
/**
* @author 东海 陈光剑 chenguangjian 2013-4-9上午10:42:40
* Email: universsky@126.com
* Blog: http://blog.sina.com.cn/universsky11
* http://blog.youkuaiyun.com/universsky
*/
package isword;
/**
* @author 东海 陈光剑 chenguangjian 2013-4-9上午10:42:40
* Email: universsky@126.com
* Blog: http://blog.sina.com.cn/universsky11
* http://blog.youkuaiyun.com/universsky
*/
/**
* @author 东海 陈光剑 chenguangjian 2013-4-9上午10:42:40
* Email: universsky@126.com
* Blog: http://blog.sina.com.cn/universsky11
* http://blog.youkuaiyun.com/universsky
*/
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnection {
/** * 获取数据连接
驱动:oracle.jdbc.driver.OracleDriverURL:jdbc:oracle:thin:@<machine_name><:port>:dbname
jdbc:oracle:thin:@localhost:1521:orcl
注:machine_name:数据库所在的机器的名称ip;
port:端口号,默认是1521
username:默认是scott
password:默认是tiger
* @throws SQLException
* */
public static void main(String[]args) throws SQLException{
DBConnection dc=new DBConnection();
Connection conn=null;
String ip="10.137.5.61";//db ip
String port="1521";//
String sid="ora61";
String userName="ddsysdb";
String passWord="IVcbs33";
conn=dc.getConnection(ip, port, sid, userName, passWord);
System.out.println("dc.getConnection="+conn);
// 从下面开始,和SQL Server一模一样
Statement sm = conn.createStatement();
//ResultSet rs = sm.executeQuery("select * from cbe_policy where ATTACHPRICEPLANID=10");
ResultSet rs = sm.executeQuery("select * from ts_priceplan");
System.out.println("sm.executeQuery="+rs);
/**
* public interface DatabaseMetaData extends Wrapper
* 关于数据库的整体综合信息。
*/
DatabaseMetaData dbmd=conn.getMetaData();
/**
Retrieves a DatabaseMetaData object that contains metadata about the database to which this Connection object represents a connection. The metadata includes information about the database's tables, its supported SQL grammar, its stored procedures, the capabilities of this connection, and so on.
*/
System.out.println("conn.getMetaData()="+dbmd);
System.out.println("dbmd.getConnection()="+dbmd.getConnection());//获取此元数据对象所产生的连接。
System.out.println("getCatalogSeparator()="+dbmd.getCatalogSeparator());
System.out.println("getCatalogTerm()="+dbmd.getCatalogTerm());
System.out.println("getCatalogTerm()="+dbmd.getCatalogTerm());
System.out.println("getDatabaseMajorVersion()="+dbmd.getDatabaseMajorVersion());
System.out.println("getDriverName()="+dbmd.getDriverName());
System.out.println("getDriverVersion()="+dbmd.getDriverVersion());
System.out.println("getMaxColumnsInIndex()="+dbmd.getMaxColumnsInIndex());
//System.out.println(dbmd.);
//ResultSetMetaData smd=(ResultSetMetaData) sm.executeQuery("select * from ts_priceplan");
//System.out.println(smd);
//while(rs.isLast()){System.out.println("rs.getRow()="+rs.getRow());}
//for (int columnIndex=1;rs.next()& columnIndex<rs.getRow() ;columnIndex++)
for (int columnIndex=1;columnIndex<dbmd.getMaxColumnsInIndex()-3;columnIndex++)
{ //用户名
rs.next();
System.out.print(rs.getString(columnIndex)+" ");
/**String getNString(int columnIndex)
* 以 Java 编程语言中 String 的形式获取此 ResultSet 对象的当前行中指定列的值。
*/
}
//默认是从1开始编号的 , 超出列序号范围,会报错:无效的列索引范围
}
public Connection getConnection(String ip,String port,String sid,String userName,String passWord )
{
String driverName="oracle.jdbc.driver.OracleDriver";// 连接oracle驱动包
String dbUrl="jdbc:oracle:thin:@"+ip+":"+port+":"+sid+"";
Connection conn=null;
// 从下面开始,和SQL Server一模一样
try {
Class.forName(driverName);
conn = DriverManager.getConnection(dbUrl, userName, passWord);
} catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
//Connection conn;
return conn;
}
}
/**********************OUTPUT***********************************************/
dc.getConnection=oracle.jdbc.driver.T4CConnection@19db21f
sm.executeQuery=oracle.jdbc.driver.OracleResultSetImpl@12c6f83
conn.getMetaData()=oracle.jdbc.driver.OracleDatabaseMetaData@4d158c
dbmd.getConnection()=oracle.jdbc.driver.T4CConnection@19db21f
getCatalogSeparator()=
getCatalogTerm()=
getCatalogTerm()=
getDatabaseMajorVersion()=11
getDriverName()=Oracle JDBC driver
getDriverVersion()=11.2.0.3.0
getMaxColumnsInIndex()=32
1 2012-08-19 07:58:18 2037-01-01 00:00:00 3 null 2101 P10V0001T0001 0 0 0 短信特殊号码定价计划 Price Plan: MMS Special Number null UCB 一次性扣费定价计划 Price Plan: Voice Price Plan: Voice sysadmin 2012-11-01 19:56:17 null sysadmin 2012-11-01 16:51:48 null 204 1 1 bme.prn.11149.V0001.20130328145032 null 0