本文由广州疯狂软件java培训分享:

第一种应该是比较古老的方法了。

Windows下采用JDBC-ODBC Bridge连接oracle数据库

1、 安装oracle客户端程序,在tnsnames.ora中配置好相应的数据库连接串文件,此处设连接串名为“dbora”。

2、 在windows的控制面板->“数据库源ODBC”中,建立相应的用户或者系统DSN,具体方法:在安装的数据源的驱动程序选择“Microsoft ODBC for Oracle”。

点击“完成”,在弹出的对话框中,填入如下信息:

数据源名称:dbjdbc

描述:jdbc数据源

用户名称:manager -此为数据库用户名

服务器:dbora -此即为连接串名

其中“dbjdbc”是在java程序中要引用的名字,至此数据源dbjdbc已建立。

3、 建立如下的java程序

// 使用本地的jdbc连接串,查询oracle数据库表

import java.sql.*;

public class lookup {

public static void main(String[] args)

throws SQLException, ClassNotFoundException {

//定义了数据库连接串

String dbUrl = "jdbc:odbc:dbjdbc";

//数据库的用户名

String user = "manager";

//数据库的用户口令

String password = "ora912";

// 加载jdbc-odbc bridge驱动程序

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

// 与url指定的数据源建立连接

Connection c = DriverManager.getConnection(dbUrl, user, password);

//采用Statement进行查询

Statement s = c.createStatement();

ResultSet r = s.executeQuery("SELECT empno,name from emp");

while(r.next()) {

// 打印字段信息

System.out.println(r.getString("empno") + ",

" + r.getString("name ") );

}

// 关闭Statement,其上的ResultSet也将关闭

s.close();

}

}

在jdbc中查询的语句有3类:Statement、PreparedStatement、CallableStatement。第二种jdbc的thin方式(比较常用)

此种方法不需要安装Oracle的客户端,也不需要配置odbc,故此种方法用得比较普遍。

此方法在使用时需要将oracle的jar包加到classpath变量中,此包可以在oralce客户端程序的$ORACLE_HOME/jdbc/lib/ojdbc6.jar找到(本人用的是11g)。

import java.sql.*;

public class jdbcthin {

//dbUrl数据库连接串信息,其中“1521”为端口,本机用localhost,“orcl”为sid

String dbUrl = "jdbc:oracle:thin:@10.10.20.15:1521:orcl";

//theUser为数据库用户名

String theUser = "sman";

//thePw为数据库密码

String thePw = "sman";

//几个数据库变量

Connection c = null;

Statement conn;

ResultSet rs = null;

//初始化连接

public jdbcthin() {

try {

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

//与url指定的数据源建立连接

c = DriverManager.getConnection(dbUrl, theUser, thePw);

//采用Statement进行查询

conn = c.createStatement();

} catch (Exception e) {

e.printStackTrace();

}

}

//执行查询

public ResultSet executeQuery(String sql) {

rs = null;

try {

rs = conn.executeQuery(sql);

} catch (SQLException e) {

e.printStackTrace();

}

return rs;

}

public void close() {

try {

conn.close();

c.close();

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

ResultSet newrs;

jdbcthin newjdbc = new jdbcthin();

newrs = newjdbc.executeQuery("select * from EMP");

try {

while (newrs.next()) {

System.out.print(newrs.getInt(1)+"\t"+newrs.getString(2)); //打印EMP表的第一列和第二列数据

}

} catch (Exception e) {

e.printStackTrace();

}

newjdbc.close();

}

}

疯狂软件教育中心依托开发团队的强大技术实力,把企业最新技术融入实训课程,打造金牌的品质,才能给予学员黄金的未来,疯狂软件凭借过硬的技术实力与丰富的项目开发经验,赢得了社会的肯定。疯狂软件Java培训师资力量强大,课程内容深入,为学员高薪就业做了很好的铺垫,拥有丰富就业指导经验的就业团队也成为了学员高薪就业的先天优势。地址:广州天河区车陂沣宏大厦3楼。

java操作oracle数据_Java jdbc操作oracle数据库的两种方式相关推荐

  1. java中map类型_Java中Map类型遍历的两种方式对比

    Java中Map类型是存储键值对数据的类型,在编程过程经常使用,进行遍历操作对于每个Java程序员都不会模式,下面总结两种常用的遍历方式(一种keySet,一种entrySet),通过对比让你明白使用 ...

  2. Python操作Neo4j图数据库的两种方式

    Python操作Neo4j图数据库的两种方式 前言 1. 用neo4j模块执行CQL ( cypher ) 语句 2. 用py2neo模块通过操作python变量,达到操作neo4j的目的 3. 用p ...

  3. html5链接access数据库,JDBC连接Access数据库的几种方式详解

    前几天老师让作几个JSP连接数据库的例子,而且连接的数据库是Access数据库,对于这个数据库自己也不是太了解,后来了解到学习JDBC的时候,连接access是很方便的,很容易的,但是在连接的时候也出 ...

  4. Java版数据结构之单向链表 新增,有序新增的两种方式,修改和删除(CRUD)

    Java版数据结构之单向链表 CRUD Java版数据结构之单向链表 新增,有序新增的两种方式,修改和删除; 留了一个疑问; 我的代码仓库:https://github.com/zhuangbinan ...

  5. Java常见面试题:对象的访问定位的两种方式

    对象的访问定位的两种方式 java对象在访问的时候,我们需要通过java虚拟机栈的reference类型的数据去操作具体的对象. 由于reference类型在java虚拟机规范中只规定了一个对象的引用 ...

  6. java get和post请求参数设置,Get和Post两种方式向指定地址提交表单

    做Java做了很多年,却总是把一些东西遗忘,过后再着急的找寻.最近,需要通过Java代码模拟一个表单提交,却怎么也想不起来如何封装数据了. 本篇主要描述Java网络参数传递,主要分为get和post两 ...

  7. java中byte数组与int类型的转换(两种方式)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

  8. java hive建表_java jdbc 操作 hive 建表 load 数据

    // 需要引入 hadoop & hive jar import java.sql.Connection; import java.sql.DriverManager; import java ...

  9. java中遍历集合_java中遍历ArrayList集合的四种方式

    ArrayList遍历:取出ArrayList集合中的数据 方式一:for循环 方式二:增强for循环:foreach 方式三:Iterator:迭代器 方式四:ListIterator:双向迭代器 ...

最新文章

  1. C语言重复加一个数的所有位数字的算法(附完整源码)
  2. C++位操作确定一个数是否为2的幂的算法实现(附完整源码)
  3. 《HTTP权威指南》 – 11.验证码和新鲜度
  4. java虚拟机的内存模型_JVM(Java虚拟机)内存模型(转载/整理)
  5. 如何写dblink?
  6. 20组免费的用户界面图标,开发者必备
  7. Serverless 实战 —— 基于 Serverless 的 VuePress 极简静态网站
  8. c++ builder firemonkey 实现填充椭圆
  9. python重定向反爬虫_高效实用http爬虫代理ip之盘点一些网站的反爬虫机制
  10. php 变量类型 typeof,typeof和instanceof的区别是什么
  11. python开发_xml.etree.ElementTree_XML文件操作
  12. 使用TryUpdateModel进行数据更新
  13. 支付宝 应用网关和授权回调地址怎么配置?
  14. MATLAB视频转图片保存
  15. 逍遥模拟器获取服务器信息出错,逍遥模拟器不能连上网怎么办?两招解决问题...
  16. 计算机学院优秀老师颁奖词,给老师的颁奖词
  17. uploadify java 下载_java uploadify 实现文件上传
  18. 人脸检测和人脸识别原理
  19. c#语言-正方形,圆形,利用接口实现周长及面积的计算
  20. java 上传文件-生成文件首页缩略图 生成pdf 抓取图片

热门文章

  1. excel不显示0_【周一实用技巧】绝密,保护公式不被修改。Excel单元格保护可以输入但不能修改公式,隐藏不显示公式内容...
  2. k-means算法学习1
  3. 关于Java中static关键字的用法以及从内存角度解析
  4. 关于 vmware虚拟机的一些问题及解决办法备忘
  5. 20145307《信息安全系统设计基础》第十一周学习总结
  6. echart模块化单文件引入
  7. boost signal2 trackable
  8. 抛体运动的小框架的源代码(rar)
  9. Flutter底部导航栏BottomNavigationBar页面状态保持解决方案
  10. 面对imbalance data的时候