importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.ResultSetMetaData;importjava.sql.SQLException;public classOperateOracle {//定义连接所需的字符串//192.168.0.X是本机地址(要改成自己的IP地址),1521端口号,XE是精简版Oracle的默认数据库名

private static String USERNAMR = "orcl";private static String PASSWORD = "orcl";private static String DRVIER = "oracle.jdbc.OracleDriver";private static String URL = "jdbc:oracle:thin:@192.168.0.X:1521:xe";//创建一个数据库连接

Connection connection = null;//创建预编译语句对象,一般都是用这个而不用Statement

PreparedStatement pstm = null;//创建一个结果集对象

ResultSet rs = null;/*** 向数据库中增加数据

* 首先获取表内数据总数,总数+1为新增数据的id值

*@paramstuName:学生姓名

*@paramgender:学生性别,1表示男性,2表示女性

*@paramage:学生年龄

*@paramaddress:学生住址*/

public void AddData(String stuName, int gender, intage, String address) {

connection=getConnection();//String sql =//"insert into student values('1','王小军','1','17','北京市和平里七区30号楼7门102')";

String sql = "select count(*) from student where 1 = 1";

String sqlStr= "insert into student values(?,?,?,?,?)";int count = 0;try{//计算数据库student表中数据总数

pstm =connection.prepareStatement(sql);

rs=pstm.executeQuery();while(rs.next()) {

count= rs.getInt(1) + 1;

System.out.println(rs.getInt(1));

}//执行插入数据操作

pstm =connection.prepareStatement(sqlStr);

pstm.setInt(1, count);

pstm.setString(2, stuName);

pstm.setInt(3, gender);

pstm.setInt(4, age);

pstm.setString(5, address);

pstm.executeUpdate();

}catch(SQLException e) {

e.printStackTrace();

}finally{

ReleaseResource();

}

}/*** 向数据库中删除数据

*@paramstuName:根据姓名删除数据*/

public voidDeleteData(String stuName) {

connection=getConnection();

String sqlStr= "delete from student where stu_name=?";

System.out.println(stuName);try{//执行删除数据操作

pstm =connection.prepareStatement(sqlStr);

pstm.setString(1, stuName);

pstm.executeUpdate();

}catch(SQLException e) {

e.printStackTrace();

}finally{

ReleaseResource();

}

}/*** 向数据库中修改数据

*@paramstuName:学生姓名,根据此值查询要修改的某行值

*@paramgender

*@paramage

*@paramaddress*/

public void UpdateData(String stuName, int gender, intage, String address) {

connection=getConnection();

String sql= "select id from student where 1 = 1 and stu_name = ?";

String sqlStr= "update student set stu_name=?,gender=?,age=?,address=? where id=?";int count = 0;try{//计算数据库student表中数据总数

pstm =connection.prepareStatement(sql);

pstm.setString(1, stuName);

rs=pstm.executeQuery();while(rs.next()) {

count= rs.getInt(1);

System.out.println(rs.getInt(1));

}//执行插入数据操作

pstm =connection.prepareStatement(sqlStr);

pstm.setString(1, stuName);

pstm.setInt(2, gender);

pstm.setInt(3, age);

pstm.setString(4, address);

pstm.setInt(5, count);

pstm.executeUpdate();

}catch(SQLException e) {

e.printStackTrace();

}finally{

ReleaseResource();

}

}/*** 向数据库中查询数据*/

public voidSelectData() {

connection=getConnection();

String sql= "select * from student where 1 = 1";try{

pstm=connection.prepareStatement(sql);

rs=pstm.executeQuery();while(rs.next()) {

String id= rs.getString("id");

String name= rs.getString("stu_name");

String gender= rs.getString("gender");

String age= rs.getString("age");

String address= rs.getString("address");

System.out.println(id+ "\t" + name + "\t" + gender + "\t"

+ age + "\t" +address);

}

}catch(SQLException e) {

e.printStackTrace();

}finally{

ReleaseResource();

}

}/*** 使用ResultSetMetaData计算列数*/

public voidSelectData2() {

connection=getConnection();

String sql= "select * from employees where 1 = 1";int count = 0;try{

pstm=connection.prepareStatement(sql);

rs=pstm.executeQuery();while(rs.next()) {

count++;

}

ResultSetMetaData rsmd=rs.getMetaData();int cols_len =rsmd.getColumnCount();

System.out.println("count=" + count + "\tcols_len=" +cols_len);

}catch(SQLException e) {

e.printStackTrace();

}finally{

ReleaseResource();

}

}/*** 获取Connection对象

*

*@return

*/

publicConnection getConnection() {try{

Class.forName(DRVIER);

connection=DriverManager.getConnection(URL, USERNAMR, PASSWORD);

System.out.println("成功连接数据库");

}catch(ClassNotFoundException e) {throw new RuntimeException("class not find !", e);

}catch(SQLException e) {throw new RuntimeException("get connection error!", e);

}returnconnection;

}/*** 释放资源*/

public voidReleaseResource() {if (rs != null) {try{

rs.close();

}catch(SQLException e) {

e.printStackTrace();

}

}if (pstm != null) {try{

pstm.close();

}catch(SQLException e) {

e.printStackTrace();

}

}if (connection != null) {try{

connection.close();

}catch(SQLException e) {

e.printStackTrace();

}

}

}

}

jdbc连接orcle数据库_java连接Oracle数据库相关推荐

  1. Mac 系统下 Rstudio连接虚拟机(远程)oracle数据库

    Mac 系统下 Rstudio连接虚拟机(远程)oracle数据库 因为之前做的一个项目需要在mac系统上用Rstudio远程访问Oracle数据库,以对获得的数据进行进一步的分析~但是在网上找了很多 ...

  2. plsql 连接 虚拟机Linux下的Oracle数据库 失败

    plsql 连接 虚拟机Linux下的Oracle数据库 失败 plsql 连接 虚拟机Linux下的Oracle数据库 失败 2017年09月09日 09:10:23 守望dfdfdf 阅读数:18 ...

  3. Jsp之使用纯Java数据库驱动程序(sqlserver,Oracle数据库为例)

    1.首先,先下载sqlserver数据库驱动程序和Oracle数据库驱动程序,下面我将用到sqljdbc.jar和ojdbc6.jar,这里的sqljdbc.jar是属于SQL Server 2005 ...

  4. MYSQL数据库迁移到ORACLE数据库

    一.环境和需求 1.环境 MySQL数据库服务器: OS version:Linux 5.3 for 64 bit mysql Server version: 5.0.45 Oracle数据库服务器: ...

  5. 如何将DB2数据库转换成Oracle数据库,这一篇告诉你

    墨墨导读:众所周知,数据库升级.转换.迁移是数据库运维必备的日常技能,本文详细介绍一则将DB2数据库转换成Oracle数据库的案例,希望对大家有帮助. 1. 前言 记录一则使用sql develope ...

  6. oracle数据库基础测试,ORACLE数据库基础测试题oracle数据库复习题.docx

    <ORACLE数据库基础测试题oracle数据库复习题.docx>由会员分享,可在线阅读,更多相关<ORACLE数据库基础测试题oracle数据库复习题.docx(18页珍藏版)&g ...

  7. oracle数据库的并发控制,Oracle数据库—— 事务处理与并发控制

    一.涉及内容 1.理解事务的概念和几个特性. 2.熟练掌握事务管理命令的使用. 3.理解并发操作的概念和数据库锁的类型. 二.具体操作 (12.5 实验) 1. 分析以下代码,说出代码中的哪些部分体现 ...

  8. oracle数据库物理结构包含,Oracle - 数据库物理结构

    ● 一个数据文件只能属于一个数据库 ● 当数据库空间用完时,数据文件可以按照预定的设置自动扩展. ● 一个或多个数据文件形成了数据库中的一种逻辑结构-表空间. 当需要时,数据文件中的数据通过数据库操作 ...

  9. oracle中毒,oracle数据库中毒恢复 oracle数据库解密恢复 服务器中勒索病毒解密恢复.Hermes666...

    oracle数据库中毒恢复 oracle数据库解密恢复 服务器中勒索病毒解密恢复.Hermes666 客户名称 保密 数据类型 oracle 11G 数据容量 100 gb 故障类型 服务器中毒,文件 ...

  10. linux java url 异常_Java连接虚拟机(Linux)中的Oracle数据库,连接异常~新手求解!

    此Oracle数据库在Linux系统下可用,在Windows里执行如下代码:DriverManager.getConnection("jdbc:oracle:thin:@192.168.22 ...

最新文章

  1. 为啥同一个程序,单步执行和debug执行出现的结果不一样呢?
  2. centos 6.3安装mysql_centos6.3安装MySQL 5.6(转)
  3. python 试题归纳及答疑 更新中.....
  4. 服务器的ras性能指标,Unix服务器6大原则深度讲解
  5. 来和小伙伴一起学习响应式网页设计吧
  6. eclipse项目红叉,Target runtime Apache Tomcat 6.0 is not defined
  7. 如何用illustrator做技术手册_做期货用什么技术指标分析?
  8. mysql堵塞等级_MySQL 事务隔离级别
  9. 敏捷实践:比每日会议更疯狂的半日会议!
  10. Hadoop问题:The auxService:mapreduce_shuffle does not exist
  11. 前端人职场发展的 6 个方向
  12. linux系统IO操作
  13. [北航软工]技术规格说明书
  14. 程序员超实用网站,留着总有用的着的时候
  15. php ccbsign.rsasig,Maven整合SSM和建行龙支付
  16. 笑晕,小米新logo是这么来的
  17. 史上最全场景文字识别资源汇集(56篇重要论文 + 20 个开源代码 + 330 个实验结果 + 1882个统计信息)...
  18. 80后十大烦恼的特征
  19. 客户沟通的方式:礼貌待客沟通方式,技巧推广沟通方式,个性服务沟通方式
  20. 深度学习 cnn pytorch框架报错 size mismatch, m1: [ x ], m2: [ x ] Captcha.ImageCaptcha设置生成图片的大小尺寸

热门文章

  1. Orchard详解--第五篇 CacheManager
  2. java Android SDK安装与环境变量配置以及开发第一个Android程序
  3. Myeclipse自定义包自动加入
  4. gdb define command
  5. AbiWord 中Piece Table 数据结构的实现
  6. 版本控制工具比较-CVS,SVN,GIT
  7. JS 回调(CallBack)
  8. 近年来,学习图像去雾不得不看的论文和源代码
  9. selenium获取文本的几种方法小结(获取源码)
  10. 使用小波变换进行Pan和多光谱融合