java开发中如何得到sqloracle 返回数据集的数据集

完整java开发中JDBC连接数据库代码和步骤
投稿:mdxy-dxy
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了完整java开发中JDBC连接数据库代码和步骤,需要的朋友可以参考下
JDBC连接数据库
•创建一个以JDBC连接数据库的程序,包含7个步骤:
1、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
这通过java.lang.Class类的静态方法forName(String className)实现。
//加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驱动程序类 ,加载驱动失败!");
e.printStackTrace() ;
成功加载后,会将Driver类的实例注册到DriverManager类中。
2、提供JDBC连接的URL
•连接URL定义了连接数据库时的协议、子协议、数据源标识。
•书写形式:协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
例如:(MySql的连接URL)
jdbc:mysql:
//localhost:3306/test?useUnicode=true&characterEncoding=
useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为
gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。
3、创建数据库的连接
•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,
该对象就代表一个数据库的连接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和
密码来获得。
//连接MySql数据库,用户名和密码都是root
String url = "jdbc:mysql://localhost:3306/test" ;
String username = "root" ;
String password = "root" ;
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println("数据库连接失败!");
se.printStackTrace() ;
4、创建一个Statement
•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;
5、执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate
1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句
,返回一个结果集(ResultSet)对象。
2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的
具体实现的代码:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
6、处理结果
两种情况:
1、执行更新返回的是本次操作影响到的记录数。
2、执行查询返回的结果是一个ResultSet对象。
• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些
行中数据的访问。
• 使用结果集(ResultSet)对象的访问方法获取数据:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比较高效
(列是从左到右编号的,并且从列1开始)
7、关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声
明顺序相反:
1、关闭记录集
2、关闭声明
3、关闭连接对象
if(rs != null){ // 关闭记录集
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
if(stmt != null){ // 关闭声明
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
if(conn != null){ // 关闭连接对象
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
实例代码:
package com.b510;
import java.sql.C
import java.sql.DriverM
import java.sql.PreparedS
import java.sql.ResultS
import java.sql.SQLE
* @author Hongten&/br&
public class JDBCTest {
public static void main(String[] args) {
String driver = "com.mysql.jdbc.Driver";
String dbName = "spring";
String passwrod = "root";
String userName = "root";
String url = "jdbc:mysql://localhost:3308/" + dbN
String sql = "select * from users";
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, userName,
passwrod);
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
System.out.println("id : " + rs.getInt(1) + " name : "
+ rs.getString(2) + " password : " + rs.getString(3));
// 关闭记录集
if (rs != null) {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
// 关闭声明
if (ps != null) {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
// 关闭链接对象
if (conn != null) {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
运行效果:
id : 3 name : hongten password : 123
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&追求卓越,成功就会在不经意间追上你!
JDBC连接数据库 &&
&创建一个以JDBC连接数据库的程序,包含7个步骤: &&
&1、加载JDBC驱动程序: &&
&&&&在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), &&
&&&&这通过java.lang.Class类的静态方法forName(String&&className)实现。 &&
&&&&例如: &&
&&&&try{ &&
&&&&//加载MySql的驱动类&&&
&&&&Class.forName("com.mysql.jdbc.Driver")&; &&
&&&&}catch(ClassNotFoundException&e){ &&
&&&&System.out.println("找不到驱动程序类&,加载驱动失败!"); &&
&&&&e.printStackTrace()&; &&
&&&成功加载后,会将Driver类的实例注册到DriverManager类中。 &&
&2、提供JDBC连接的URL &&
&&&&连接URL定义了连接数据库时的协议、子协议、数据源标识。 &&
&&&&&书写形式:协议:子协议:数据源标识 &&
&&&&协议:在JDBC中总是以jdbc开始 &&
&&&&子协议:是桥连接的驱动程序或是数据库管理系统名称。 &&
&&&&数据源标识:标记找到数据库来源的地址与连接端口。 &&
&&&&例如:(MySql的连接URL) &&
&&&&jdbc:mysql: &&
&&&&&&&&//localhost:3306/test?useUnicode=true&characterEncoding=gbk&;&&&
&&&useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为 &&
&&&gb2312或GBK,本参数必须设置为true&。characterEncoding=gbk:字符编码方式。 &&
&3、创建数据库的连接 &&
&&&&&要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象, &&
&&&&&该对象就代表一个数据库的连接。 &&
&&&&&使用DriverManager的getConnectin(String&url&,&String&username&,& &&
&&&&String&password&)方法传入指定的欲连接的数据库的路径、数据库的用户名和 &&
&&&&&密码来获得。 &&
&&&&&例如: &&
&&&&&//连接MySql数据库,用户名和密码都是root&&&
&&&&&String&url&=&"jdbc:mysql://localhost:3306/test"&;& &&
&&&&&String&username&=&"root"&; &&
&&&&&String&password&=&"root"&; &&
&&&&&try{ &&
&&&&Connection&con&=& &&
&&&&&&&&&&&&&DriverManager.getConnection(url&,&username&,&password&)&; &&
&&&&&}catch(SQLException&se){ &&
&&&&System.out.println("数据库连接失败!"); &&
&&&&se.printStackTrace()&; &&
&4、创建一个Statement &&
&&&&&要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3&&
&&&&&种类型: &&
&&&&&&1、执行静态SQL语句。通常通过Statement实例实现。 &&
&&&&&&2、执行动态SQL语句。通常通过PreparedStatement实例实现。 &&
&&&&&&3、执行数据库存储过程。通常通过CallableStatement实例实现。 &&
&&&&具体的实现方式: &&
&&&&&&&&Statement&stmt&=&con.createStatement()&; &&
&&&&&&&PreparedStatement&pstmt&=&con.prepareStatement(sql)&; &&
&&&&&&&CallableStatement&cstmt&=& &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&con.prepareCall("{CALL&demoSp(?&,&?)}")&; &&
&5、执行SQL语句 &&
&&&&Statement接口提供了三种执行SQL语句的方法:executeQuery&、executeUpdate &&
&&&和execute &&
&&&&1、ResultSet&executeQuery(String&sqlString):执行查询数据库的SQL语句 &&
&&&&&&&&,返回一个结果集(ResultSet)对象。 &&
&&&&&2、int&executeUpdate(String&sqlString):用于执行INSERT、UPDATE或 &&
&&&&&&&&DELETE语句以及SQL&DDL语句,如:CREATE&TABLE和DROP&TABLE等 &&
&&&&&3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的 &&
&&&&&&&&语句。 &&
&&&具体实现的代码: &&
&&&&&&&&&&ResultSet&rs&=&stmt.executeQuery("SELECT&*&FROM&...")&; &&
&&&&int&rows&=&stmt.executeUpdate("INSERT&INTO&...")&; &&
&&&&boolean&flag&=&stmt.execute(String&sql)&; &&
&6、处理结果 &&
&&&&两种情况: &&
&&&&&1、执行更新返回的是本次操作影响到的记录数。 &&
&&&&&2、执行查询返回的结果是一个ResultSet对象。 &&
&&&&&&ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些 &&
&&&&&&行中数据的访问。 &&
&&&&&&使用结果集(ResultSet)对象的访问方法获取数据: &&
&&&&&while(rs.next()){ &&
&&&&&&&&&String&name&=&rs.getString("name")&; &&
&&&&String&pass&=&rs.getString(1)&;&//&此方法比较高效&&&
&&&&(列是从左到右编号的,并且从列1开始) &&
&7、关闭JDBC对象& &&
&&&&&操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 &&
&&&&&明顺序相反: &&
&&&&&1、关闭记录集 &&
&&&&&2、关闭声明 &&
&&&&&3、关闭连接对象 &&
&&&&&&&&&&if(rs&!=&null){&&&//&关闭记录集&&&
&&&&&&&&try{ &&
&&&&&&&&&&&&rs.close()&; &&
&&&&&&&&}catch(SQLException&e){ &&
&&&&&&&&&&&&e.printStackTrace()&; &&
&&&&&&&&} &&
&&&&&&&&&&} &&
&&&&&&&&&&if(stmt&!=&null){&&&//&关闭声明&&&
&&&&&&&&try{ &&
&&&&&&&&&&&&stmt.close()&; &&
&&&&&&&&}catch(SQLException&e){ &&
&&&&&&&&&&&&e.printStackTrace()&; &&
&&&&&&&&} &&
&&&&&&&&&&} &&
&&&&&&&&&&if(conn&!=&null){&&//&关闭连接对象&&&
&&&&&&&&&try{ &&
&&&&&&&&&&&&conn.close()&; &&
&&&&&&&&&}catch(SQLException&e){ &&
&&&&&&&&&&&&e.printStackTrace()&; &&
&&&&&&&&&} &&
&&&&&&&&&&}&
阅读(...) 评论()如何在java中获得sql查询结果数量_百度知道
如何在java中获得sql查询结果数量
String sqlQuery = &&#47,返回结果;执行sql语句;SELECT *
FROM table&在sql中.executeQuery(sqlQuery);ResultSet sqlResult = null,怎么实现;
&#47,怎么得到返回内容的数量呢:SELECT count(*)
FROM table 可以得到查询结果的总数我想在jsp中调用这个数;
&#47;创建结果集sqlResult = sqlStatement,这个是返回的内容;&#47
提问者采纳
果使用String sqlQuery = &quot.0中才定义的;SELECT *
FROM table&的话,返回记录集最后一行的行索引,也就是记录集的行数,将数据库游标定位到记录集的最后一行。----------------------SELECT count(*)
FROM table 的话.getInt(1),在JDBC API 1,可以使用ResultSet的getRow(1)首先使用last()方法,直接从resultset中获取rs。该索引就等于记录集所包含记录的个数。(2)使用getRow()方法.0中没有这个方法。getRow()方法是在JDBC API 2;
提问者评价
非常感谢!另外几位的回答也挺好,一并感谢!只能采纳一个答案,实在抱歉!
其他类似问题
为您推荐:
其他5条回答
这样就可以像数据库表里的字段那样调用了,在页面实例化后第一个小题,然后调用它的size()方法就可以得到记录的条数了:SELECT count(*) as num
FROM table
然后在JavaBean中写出 num 属性的setXXX和getXXX方法,你试一试吧:把结果集中的数据通过JavaBean放到一个集合中,调用getXXX方法就可以得到了!第二题,这是我自己想的,我已经试过了,可以的:SQL语句这样写
如果你只是想知道结果集中的数据行数,那么推荐用COUNT()函数,但如果你又想要数据,也想知道行数,用个累加变量就算出来了
sqlResult.last();int rowCount = sqlResult.getRow();
保存到list结果中去,list.size()就能得到返回的数据的大小
select count(*) from table
您可能关注的推广
sql查询的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 oracle 返回数据集 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信