数据据库连接和查询的常用步骤
1. 连接数据库分为几步?所涉及的class有那些?分别属于什么包下?
数据库的连接分为2步:
第一步:
Class.forName;
[
加载驱动程序]
其中class属于java.lang包下;forName方法返回一个class对象。目的是加载驱动程序。
第二步:
DriverManager.getConnection(conString, user, password);
其中DriverManager属于java.sql.*; 方法getConnection 返回一个连接对象。
为什么要装载驱动?
因为当调用
DriverManager.getConnection(“url”
,
”user”,”password”)
方法时,
DriverManager
查询加载的驱动器,询问它是否理解这个
URL
。如果某个驱动器能够辨认这个
URL
,它返回一个
Connection
对象即
连接对象
。
2. 数据库连接后,如何执行数据库的查询?涉及那些class和方法?
第一步:创建
语句对象(通过连接对象,比如用con表示连接对象)
[
通过连接对象,创建语句对象]:
Statement stmt= con.createStatement();
第二步:通过语句对象(比如用
stmt
表示语句对象,调用
executeQuery(SQLString)
方法,返回结果集
[通过语句对象,执行SQL查询语句]
ResultSet rs = stmt.executeQuery(SQLString);
其中Statement、ResultSet属于java.sql.*包下。
3 .如何获得查询后的结果集?涉及到那些class和方法?
第一步:通过语句对象(比如用
stmt
表示语句对象),调用
executeQuery(SQLString)
方法,获得结果集对象(比如用
rs
变量表示):
[
通过执行SQL
查询,获得结果集对象]
ResultSet rs = stmt.executeQuery(SQLString);
第二步:调用结果集对象的getMetaData()方法,获得结果集的字段结构,即表的数据列,称为
结果集元数据对象:
[
通过结果集对象,获得结果集元数据对象]
ResultSetMetaData rsmd = rs.getMetaData();
4. 如何获得数据库的表结构?
第一步:通过调用
结果集对象的getMetaData()方法获得
结果集元数据对象rsmd来表示):(用
ResultSetMetaData rsmd = rs1.getMetaData();
第二步:调用元数据对象的getColumnCount()方法,获得表的
总列数:
int ColumnNum = rsmd.getColumnCount();
第三步:使用for循环遍历表结构中的每个字段,通过调用元数据对象的getColumnName(i)方法获得每一列。
列标号从
1
开始,而不是从
0
开始。
for (int i = 1 ; i <= ColumnNum ; i++)
System.out.print(rsmd.getColumnName(i)+"/t");
5. 如何遍历数据库表的记录?
第一步:首先获得结果集对象
第二步:通过调用结果集中的next()方法,移动指针(游标),如果
指针所指位置有记录,则方法返回值为真,并进入循环。
while (rs.next()) {
String strData = "";
for (int i = 1 ; i <= ColumnNum ; i++)
strData = strData+rs.getString(i)+"/t";
}
最后,总结如下:
在java.sql.*包下有几个重要的class
1. DriverMangager
2. Connection
3. Statement
4. ResultSet
5. ResultSetMetaData