Java如何连接Oracle数据库_java连接oracle数据库的代码-程序员宅基地

技术标签: oracle  Java基础  jdbc  数据库  

        首先导入oracle驱动包。驱动包一般在你安装的oracle里跟network同级的jdbc文件夹下的lib文件夹里面。复制过来就行。

        

1.导包

首先我们导入java.sql.* 

import java.sql.*;

 2.驱动注册

		Class.forName("oracle.jdbc.driver.OracleDriver");

        通过Class.forName(driver_name); 会执行driver_name路径下的类的static静态块一次。

3.驱动管理器根据注册驱动获取对应的连接。Java和oracle连接,获取连接对象


        String url="jdbc:oracle:thin:@localhost:1521:orcl";
		String uname ="scott";
		String pwd = "scott";
		Connection con = DriverManager.getConnection(url,uname,pwd);

其中url 字符串为:    jdbc:oracle:thin:@数据库服务器IP:数据库端口号:数据库实例名

数据库服务器IP本机的话可以写localhost 

数据库实例名就类似于你登录PL/SQL时的Database 。

另外uname,pwd也是对应于PL/SQL登录界面的Username和Password

 这个时候Java和数据库就连接成功了。

以下是完整代码:

import java.sql.*;
public class jdbctest {	
		
	public static void main(String[]args) throws Exception {
		Class.forName("oracle.jdbc.driver.OracleDriver");
		String url="jdbc:oracle:thin:@localhost:1521:orcl";
		String uname ="scott";
		String pwd = "scott";
		Connection con = DriverManager.getConnection(url,uname,pwd);
		System.out.println(con.getClass().getName());
		
	}
}

他会输出:oracle.jdbc.driver.T4CConnection

       

下面示范一个简单的查询操作。

        我们输出select ename,sal from emp 的结果;

4.通过连接对象获取语句对象。此处为了简单,会出现SQL注入问题,后续会通过Statement的子类PreparedStatement解决.

Statement stmt = con.createStatement();

5.通过语句对象获取结果集对象。并将sql语句传入。查询会把查询出来的数据放在ResultSet结果集对象中。

String sql = "select ename,sal from emp";

ResultSet rs = stmt.executeQuery(sql);

6.遍历结果集并输出值。


while(rs.next()) {
			System.out.println("姓名:"+rs.getObject("ename")+","+"薪资:"+rs.getObject("sal"));
		
}

 7.最后我们要关闭连接对象,语句对象,结果集对象。

	    con.close();
		stmt.close();
		rs.close();

查询结果就输出到通知台上了。

以下是完整代码:

import java.sql.*;
public class jdbctest {	
		
	public static void main(String[]args) throws Exception {
		Class.forName("oracle.jdbc.driver.OracleDriver");
		String url="jdbc:oracle:thin:@localhost:1521:orcl";
		String uname ="scott";
		String pwd = "a";
		Connection con = DriverManager.getConnection(url,uname,pwd);
		System.out.println(con.getClass().getName());
		
		Statement stmt = con.createStatement();
		String sql = "select ename,sal from emp";
		ResultSet rs = stmt.executeQuery(sql);
		while(rs.next()) {
			System.out.println("姓名:"+rs.getObject("ename")+","+"薪资:"+rs.getObject("sal"));
		}
        con.close();
		stmt.close();
		rs.close();
		
	}
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wasane/article/details/118497776

智能推荐

java游戏开发杂谈 - java是什么_java游戏是什么时代-程序员宅基地

文章浏览阅读9.9k次,点赞9次,收藏12次。java是一门编程语言, 它有三个开发平台:j2ee、j2se、 j2me。(其实android也算一个了) j2ee, 也就是web开发,比如网站、各类管理系统,主要是围绕数据库、网页等进行的开发。j2ee涵盖的技术比较多,除了java语法,还需要掌握html/css/javascript等浏览器前端开发技术、jsp/servlet等服务器开发技术,mysql/oracle/sqlse..._java游戏是什么时代

[小小项目]背单词的程序---1.0_纯C语言_单文件版本_背单词程序设计代码c语言-程序员宅基地

文章浏览阅读2.1k次,点赞18次,收藏56次。实现命令行背单词功能_背单词程序设计代码c语言

RocketMQ入门教程_onsaddr-程序员宅基地

文章浏览阅读2.3w次,点赞12次,收藏82次。RocketMQ简单介绍是一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式特点。 Producer、Consumer队列都可以分布式。
 Producer向一些队列轮流发送消息,队列集合称为 Topic,Consumer 如果做广播消费,则一个consumer实例消费这个Topic 对应的所有队列,如果做集群消费,则多个Consumer 实例平均消费这个topic对应的队列集..._onsaddr

金蝶web前端一面(已挂)_金蝶前端招聘难吗-程序员宅基地

文章浏览阅读2.7k次。9.13号下午四点半去面了金蝶的前端开发,事后回想起来,其实面试官问的问题一点都不难,我反思自己面试失败的原因可能在以下几点:首先是自己太紧张,导致说话太快,我应该更沉稳一点;其次根本的原因就是我学习前端的时间太短,我实际学习只有三月份到现在半年左右,我和面试官说的是学习时间一年,但显然我自身的知识储备量不够,还有很多的东西没看,我感觉这大概就是面试官反复问我学习方法的原因,估计是她认为我不应该在..._金蝶前端招聘难吗

Linux里用脚本关闭进程的方式_linux 杀掉进程脚本-程序员宅基地

文章浏览阅读1.2k次。最简单的方法是用pgrep 获取进程号,然后kill掉_linux 杀掉进程脚本

《软件测试和质量管理》实验报告3——单元测试_请完成隔一天日期的判定表构建-程序员宅基地

文章浏览阅读1.8k次,点赞3次,收藏24次。实验三 单元测试实验类别:基本实验实验目的:(1)掌握单元测试技术,并要求按照单元测试的要求设计测试用例。(2)掌握在Eclipse里进行Junit4测试的技术。实验内容:日期问题测试以下程序:该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12、1≤day≤31和1900≤ year ≤2050),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为 2004 年11月30日,则该程_请完成隔一天日期的判定表构建

随便推点

部署 Flask 应用到 WSGI 服务器_flask使用wsgi部署-程序员宅基地

文章浏览阅读209次,点赞2次,收藏4次。(可选): 如果你的 Flask 应用需要通过域名来访问,你可能需要配置一个反向代理服务器(如 Nginx 或 Apache)来将客户端的请求转发到 WSGI 服务器。: 首先,你需要选择一个 WSGI 服务器来部署 Flask 应用。: 部署完成后,确保监控服务器的运行状态,并及时处理可能出现的异常情况。: 使用命令行进入到 Flask 应用的根目录,然后执行以下命令启动 WSGI 服务器。的 Python 文件,并编写你的 Flask 应用代码。部署 Flask 应用到 WSGI 服务器需要一些步骤。_flask使用wsgi部署

tensorflow 实现计算混淆矩阵和各类评估指标_tensorflow 混淆矩阵-程序员宅基地

文章浏览阅读6.4k次,点赞3次,收藏15次。一 tf.confusion_matrix(y,pred_y)以二分类为例,混淆矩阵为2*2的矩阵,如果我们真实标签为real=[0,1,1,0,1],预测标签为predict=[0,1,0,1,1]tf.confusion_matrix(real,predict)可以得到一个混淆矩阵如果为one-hot编码则需要使用tf.argmax(y,1) real=tf.argmax..._tensorflow 混淆矩阵

计算机二级选office还是python_计算机二级科目怎么选 哪个最简单-程序员宅基地

文章浏览阅读2k次。计算机二级科目怎么选哪个最简单计算机二级科目怎幺选择呢,哪个比较简单的,下面小编为大家提高计算机二级科目都有什幺怎样选择,仅供大家参考。计算机二级主要分为几类计算机二级考试主要分两类:一类是语言程序设计,(如:C、C++、Python、Java、Visual Basic、WEB);另一类是数据库程序设计(如:Access、MySQL)MS Office难度:★★★价值:★★★★计算机的基础知识,W..._msoffice和python哪个简单

我的AI之路(22)--使用Object_Detection_Tensorflow_API_imageio: 'ffmpeg-win32-v3.2.4.exe' was not found o-程序员宅基地

文章浏览阅读1.2k次。 在安装好Tensorflow models(参见我的AI之路(18)--Tensorflow的模型安装之object_detection)后,下载Object_Detection_Tensorflow_API.ipynb文件,这个文件相对于object_detection里自带的object_detection_tutorial.ipynb来说,除了对静态测试图片中的狗和人等物体的识别,后面增..._imageio: 'ffmpeg-win32-v3.2.4.exe' was not found on your computer; downloadi

实战:上亿数据如何秒查-程序员宅基地

文章浏览阅读328次。作者:Java我人生blog.csdn.net/chenleixing/article/details/44994571没事不用存储过程,既然用了,就看看怎么优化吧最近在忙着优化集团公司..._if @lotname<>

HBM内存介绍_kgsd-程序员宅基地

文章浏览阅读1.6w次,点赞6次,收藏84次。原帖地址:http://www.anandtech.com/show/9969/jedec-publishes-hbm2-specification高带宽存储器(HBM)技术解决了与现代DRAM相关的两个关键问题:它显着增加了计算设备(例如GPU)可用的带宽并降低了功耗。第一代HBM在容量和时钟速率方面有许多限制。但是,第二代HBM有望消除它们。制定DRAM标准的主要半导体工程贸易组织JEDEC最近发布了第二代HBM(HBM2)的最终规范,这意味着该组织的成员已经批准了该标准。新的存储技术建立在原始JE_kgsd