jdbc的基本使用

前言

要用java写个测试程序,得到执行sql之后的结果集列名,列类型,遍历结果集的行集.

运行效果

结果集总列数:5
第1列  : 名称 = 'PARAMETER_NAME', 类型 = ‘VARCHAR2’
第2列  : 名称 = 'PARAMETER_TYPE', 类型 = ‘NUMBER’
第3列  : 名称 = 'STRING_VALUE', 类型 = ‘VARCHAR2’
第4列  : 名称 = 'DATE_VALUE', 类型 = ‘DATE’
第5列  : 名称 = 'NUMERICAL_VALUE', 类型 = ‘NUMBER’
--------------------------------------------------------------------------------
遍历结果集开始...
--------------------------------------------------------------------------------
第1行, 第1列 = 'QSMSS_EXACT_DELETE'
第1行, 第2列 = '0'
第1行, 第3列 = 'null'
第1行, 第4列 = 'null'
第1行, 第5列 = '0.02'
--------------------------------------------------------------------------------
...
--------------------------------------------------------------------------------
第40行, 第1列 = 'qsma.report.include_unused'
第40行, 第2列 = '1'
第40行, 第3列 = 'False'
第40行, 第4列 = 'null'
第40行, 第5列 = '0'
--------------------------------------------------------------------------------
遍历结果集结束...
task end

工程下载点

src_OracleJDBC_test.7z

实验

// @file class_A.java
// @brief test jdbc, show result set col and row 

package test_jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;

// 如果 System.out.printf 出现奇怪的编译错误
// 在eclipse中右击工程节点, 选择最后一项"属性"
// 选择 "Java Compiler"
// 在右面面板中去掉勾选"Use compliance from execution envronment on the 'Java Build Path'"
// 在‘Compiler compliance level’ 下拉框中,选择jdk1.7

// 将jdbc.jar加入工程
// 在eclipse中右击工程节点, 选择最后一项"属性"
// 选择 "Java Build Path",
// 在右面面板中, 选择第3个选项卡‘Libraries’
// 在选项卡对应的对话框中选择‘Add External JARs...’
// 给定路径, 选中从网上下载的jdbc jar包, 逐级选择确定,回到工程主UI.

public class class_A {

	public class_A() {
		// TODO Auto-generated constructor stub
	}

	public static void main(String[] args) {
		fn_test_show_jdbc_result_set();
	}

	private static void fn_test_show_jdbc_result_set() {
		try {
			int i = 0;
			int i_col_cnt = 0;
			int i_row_sn = 0;
			String url = null;
			String uid = null;
			String pwd = null;
			boolean b_use_ora_db_on_company = true;
			String str_col_name;
			String str_col_type;
			String str_col_content;
			
			if (b_use_ora_db_on_company) {
				// company env
				url = "jdbc:oracle:thin:@192.168.16.41:1521:orcl";
				uid = "system";
				pwd = "oracle";
			} else {
				// home env
				url = "jdbc:oracle:thin:@192.168.11.132:1521:orcl";
				uid = "system";
				pwd = "system";
			}

			Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
			Connection conn = DriverManager.getConnection(url, uid, pwd);
			PreparedStatement pstmt = null;
			
			// pstmt = conn.prepareStatement("select * from help"); // 正确的sql
			pstmt = conn.prepareStatement("select * from MVIEW$_ADV_PARAMETERS");
			
			ResultSet rs = null;
			rs = pstmt.executeQuery(); // 开始查询, 发出查询语句, 从服务器得到第一个行集
			
			ResultSetMetaData rsmd = rs.getMetaData();  
			
			// select column_name,data_type from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='t_alarm_act'

			i_col_cnt = rsmd.getColumnCount();  
			System.out.printf("结果集总列数:%d\n", i_col_cnt);
			
			for (i = 0; i < i_col_cnt; i++) {
				// ojdbc的参数都是基于1的, c++的参数都是基于0的
				str_col_name = rsmd.getColumnName(i + 1);
				str_col_type = rsmd.getColumnTypeName(i + 1);
				System.out.printf("第%d列  : 名称 = '%s', 类型 = ‘%s’\n", (i + 1), str_col_name, str_col_type);
			}

			System.out.printf("--------------------------------------------------------------------------------\n");
			System.out.printf("遍历结果集开始...\n");
			while(rs.next()){
				i_row_sn++;
				
				System.out.printf("--------------------------------------------------------------------------------\n");
				for (i = 0; i < i_col_cnt; i++) {
					str_col_content = rs.getString(i + 1);
					System.out.printf("第%d行, 第%d列 = '%s'\n", i_row_sn, (i + 1), str_col_content);
				}
			}
			System.out.printf("--------------------------------------------------------------------------------\n");
			System.out.printf("遍历结果集结束...\n");
			
			conn.close();
			System.out.println("task end");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值