上一篇:Java数据库编程学习总结(1)
上次有一些忘了总结,再看书时想起来了,先把上次的继续补充下。
在上一篇末有这一段代码:
ResultSet result = stat.getResultSet();
while(result.next())
{
look at a row of the result set;
}
这里的ResultSet和Iterator类有些类似,不过稍有不同,对于ResultSet类,迭代器初始化时被设定在第一行之前的位置,必须调用next方法将它移动到第一行。
Result得到的结果可以循环读取每一行,对于每一行,可以通过getXXX()访问器方法得到每一列的信息。
比如第三列是String型,可以:
String wtq = result.getString(3);
每个Connection对象都可以创建一个或一个以上的Statement对象。同一个Statement对象可以用于多个不相干的命令和查询。但是,一个Statement对象最多只能打开一个结果集。如果需要执行多个查询操作,且需要同时分析查询结果,那么必须创建多个Statement对象。
当使用完ResultSet, Statement,Connection对象时,应该调用close方法。
关于JDBC使用的一般步骤,官方文档有说明:
Connect to a data source, like a database
Send queries and update statements to the database
Retrieve and process the results received from the database in answer to your query
即:建立连接,查询语句,到使用结果集。
接下来插播几个官方讲解jdbc不错的链接:
http://docs.oracle.com/javase/tutorial/jdbc/overview/index.html (感谢网友xiaolong推荐)
http://docs.oracle.com/javase/1.4.2/docs/guide/jdbc/getstart/GettingStartedTOC.fm.html
http://en.wikipedia.org/wiki/JavaDatabaseConnectivity
以下是官方对Connection和Statement的定义:
Connection:http://docs.oracle.com/javase/1.4.2/docs/guide/jdbc/getstart/connection.html#996856
> > A `Connection` object represents a connection with a database. A connection session includes the SQL statements that are executed and the results that are returned over that connection. A single application can have one or more connections with a single database, or it can have connections with many different databases. > >
Statement:http://docs.oracle.com/javase/1.4.2/docs/guide/jdbc/getstart/statement.html#996854
> > A `Statement` object is used to send SQL statements to a database. > >
接下来总结一下元数据:
元数据:在SQL中,描述数据库或其组成部分的数据称为元数据。
我们可以获得三类元数据:
- 关于数据库的元数据:
可以了解数据库的更多信息,可以从数据库中获得一个DatebaseMetaData对象。
DatebaseMetaData meta = conn.getMetaData();
ResultSet mrs = meta.getTables(nul, nul, nul, new String[] {"TABLE"});
while(mrs.next())
tableNames.addItem(mrs.getString(3));
- 关于结果集的元数据:
ResultSetMetaData则是用于提供结果集的相关信息。每当通过查询得到一个结果集,我们都可以获取该结果集的列数,每一列名称等相关信息。
ResultSetMetaData metaData = result.getMetaData();
int columnCount = metaData.getColumnCount(); // 获取TABLE的列数
// 获取TABLE的行数
// getRow是返回当前行数
result.last();
int rowCount = result.getRow();
result.beforeFirst(); //返回起始行
- 关于预备语句参数的元数据
暂时总结完了,以后遇到更多再补充吧.
DATE:2011.12.22
By: Tanky Woo