`
tyl
  • 浏览: 50387 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

Java操作Oracle数据库

阅读更多

import java.sql.*;
public class Db {
 public Connection   con;
 public Statement   st;
 public PreparedStatement pst;
 public CallableStatement cst;
 public ResultSet   rs;

 public Db() {
 Java连接Oracle方式
  try {
   // localhost:主机,服务器的名称
   // 1521: 端口号
   // tyl: 数据库的名称
   // oracle.jdbc.driver.OracleDriver :加载数据库驱动程序
   String ds = "jdbc:oracle:thin:@localhost:1521:tyl";
   String user = "system";
   String password = "123";
   Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
   con = DriverManager.getConnection(ds, user, password);
   // user应具有dba权限
   // exp dbuser/oracle file=dbuser.dmp log=dbuser.log
   // tables=table1,table2 buffer=4096000 feedback=10000
   // 导入数据库 :1.Imp system/123@tyl fromuser=system touser=system
   // file="d:\test.dmp"
   // 2.Imp system/123@tyl fromuser=system touser=system
   // file="d:\test.dmp" tables=test

   // 导出数据库:1. exp system/123 file='d:\test.dmp'
   // 2.exp system/123 file='d:\test.dmp' log='d:\log.txt 导出所有的
   // 3.exp system/123 file='d:\test.dmp' log='d:\log.txt
   // tables=test,test2 导出两张表
  }
  catch (Exception e) {
   e.printStackTrace();
  }
 }

 // 普通查询
 public ResultSet query(String sql) {
  try {
   st = con.createStatement();
   st.setFetchSize(2);
   // st.getFetchSize();
   rs = st.executeQuery(sql);
  }
  catch (Exception e) {
   System.out.println(e.toString());
  }
  return rs;
 }

 // 添加、修改、删除
 public int update(String sq) {
  int x = -1;
  try {
   st = con.createStatement();
   x = st.executeUpdate(sq);
  }
  catch (Exception e) {}
  return x;
 }

 // 批处理
 public void executeB(String sq[]) {
  try {
   con.setAutoCommit(false);
   st = con.createStatement();
   for (int i = 0; i < sq.length; i++) {
    st.addBatch(sq[i]);
   }
   st.executeBatch();
   con.commit();
  }
  catch (Exception e) {}
 }

 // 执行带参数的SQL语句
 public void prepareQ(String s1, String s2) {
  try {
   String sql = "insert into test(id,name,address) values(seql.nextval,?,?)";
   pst = con.prepareStatement(sql);
   pst.setString(1, s1);
   pst.setString(2, s2);
   pst.execute();
  }
  catch (Exception e) {}
 }

 // 执行存储过程
 public boolean callQ(String sq) {
  boolean flag = false;
  try {
   cst = con.prepareCall(sq);
   flag = cst.execute();
  }
  catch (Exception e) {}
  return flag;
 }

 public static void main(String args[]) {
  Db m = new Db();
  //常用设置命令:
//  set linesize=100;
//  set pagesize=100; 默认80
//  save e:\\test.sql
//  desc test
//  show user
//  select user from dual
  
  // 表空间: 创建,修改。
  try {
   // create tablespace asm_test  datafile
   //  'c:\oracle\oradata\diogenes\asm_test.dbf'size 5m EXTENT
   // MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;
   // String str =
   // " CREATE TABLESPACE tylspace DATAFILE 'tylspace.dbf' SIZE 50M  EXTENT MANAGEMENT LOCAL AUTOALLOCATE";
   // String str =
   // "ALTER TABLESPACE temp ADD TEMPFILE 'temp_add.dbf' SIZE 500M AUTOEXTEND ON";
   // String str = "drop tablespace tylspace";
   // int in = m.update(str);
   // System.out.println("in============" + in);
   m.con.commit();
  }
  catch (SQLException e1) {
   e1.printStackTrace();
  }
  // 查询:
  // String queryStr = "select * from test";
  // String queryStr="select * from test where id=3";
  // String queryStr="select * from test where id=3 and name='name3'";
  // String queryStr = "select id from test";

  // 只有% ; _ ;[^] ; [] ; 4种通配符
  // 以上4种通配符的含义
  // % 表示零个或多个字符
  // _ 表示单个字符
  // \ 特殊字符
  // [] 表示范围[a-f]或集合[abcdef]的任何单个字符
  // [^] 表示不属于指定范围的[a-f] 或集合[abcdef]的单个字符 通常表示[^a-f] or [^abcdef]
  // String queryStr = "select * from test where  name like 'name1'";
  // String queryStr = "select * from test where  name like 'name1%'";
  // String queryStr =
  // "select * from test where  name like 'name1_'";//无匹配
  // String queryStr = "select * from test where  name like 'name_'";
  // 有问题,无匹配
  // String queryStr =
  // "select * from atm1_operatelog t where t.operatetime like to_date('2006-10-16','yyyy-MM-dd')";//
  // String queryStr = "select * from test where  name like '[^a-z]%'";

  // select * from temp where name like 'bei%';
  // 或者
  // select * from temp where name like '%bei%';
  // 两者的区别: 如果name建立有索引,第一种会走索引,第二种不走索引,会进行全表扫描.

  // String queryStr
  // ="select * from test where  id in(select id from test)";
  // String queryStr =
  // "select * from test where exists(select null from test2 where name ='name2')";
  // //如果test2存在name=name2,查询出Test中的所有值
  // String queryStr =
  // "select * from test t where t.currenttime like to_date('2010-08-05','yyyy-MM-dd')";
  // String queryStr =
  // "select * from test where  name in(select name from test2)";
  // String queryStr =
  // "select * from test where  name in(select name from test2)";
  // String queryStr = "select currenttime from test "; //
  // String queryStr =
  // "select to_char(currenttime) from test where  name in(select name from test2)";
  // String queryStr = "select  count(*) num from test2";
  // String queryStr =
  // "SELECT  to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')  FROM dual";
  // String queryStr =
  // "SELECT * FROM user_objects WHERE object_type='TABLE'";
  // String queryStr =
  // "SELECT * FROM user_objects WHERE object_name='TEST'";

  // String queryStr = "select column_name from user_cons_columns ";
  // String queryStr =
  // "select column_name from user_cons_columns where constraint_name = (select u.constraint_name from user_constraints u where u.table_name = 'test' and u.constraint_type = 'P')";
  // String queryStr = "select constraint_name from user_cons_columns ";
  // String queryStr =
  // "select constraint_name from user_cons_columns  where table_name='TEST' ";
  // //要用大写

  // String queryStr = "select * from user_constraints  ";
  // String queryStr =
  // "select CONSTRAINT_TYPE from user_constraints  where constraint_name like 'PK_%'";
  // String queryStr = "select CONSTRAINT_TYPE from user_constraints ";
  // //p代表为主键
  // String queryStr =
  // "select CONSTRAINT_NAME from user_constraints  where CONSTRAINT_TYPE = 'P'";
  // //p为大写,否则不匹配
  String queryStr = "select CONSTRAINT_NAME from user_constraints  where CONSTRAINT_TYPE = 'R'"; // p为大写,否则不匹配
  // 关于限制的类型:P 代表主键,R 代表外键,C 代表约束

  ResultSet rs = m.query(queryStr);
  try {
   while (rs.next()) {
    System.out.println(rs.getString(1));
    // System.out.println(rs.getInt("id"));
    // System.out.println(rs.getString("name"));
    // System.out.println(rs.getInt(1));
    // System.out.println(rs.getString(2));
    // System.out.println(rs.getString(3));
    // System.out.println(rs.getString(4));
   }
  }
  catch (Exception e) {
   System.out.println(e.toString());
   e.printStackTrace();
  }
  // 创建:
  try {
   // String newStr =
   // "create table test2(id number,name varchar(100),address varchar(100))";
   // String newStr =
   // "alter table test2 add constraint pk_test2 primary key(id)";
   // int in = m.update(newStr);
   // String newStr = "alter table test add date_time date";
//   String newStr = "update test set date_time =(select sysdate  from dual) where name='name2'";
   String newStr = "create or replace function  testfun(param in varchar)" +
     " return number" +
     " as  returnvalue number ;" +
     "begin" +
     " select count(*) into returnvalue from test where name=param;" +
     "return returnvalue;" +
     "end;";
   int in = m.update(newStr);
   // EN_DATE datetime
   System.out.println("in============" + in);
   m.con.commit();
  }
  catch (SQLException e1) {
   e1.printStackTrace();
  }
  // 插入:
  try {
   // String insertStr
   // ="insert into test values(seql.nextval,'name1','shaanxi','112223')";
   // String insertStr =
   // "insert into test(id,name) values(seql.nextval,'name2')";
   String insertStr = "create view viewtest1 as select t1.id,t1.name from test t1,test2 t2";
//    String insertStr = "drop  view  viewtest";
   // int in = m.update(insertStr);
   // System.out.println("in============" + in);
   m.con.commit();
  }
  catch (SQLException e1) {
   e1.printStackTrace();
  }
  // 修改
  try {
   // String updateStr = "update test set name='name3' where id=3";
   // String updateStr="alter table test add  address varchar(100)";
   // String updateStr="alter table test add  currenttime date";
   // String updateStr =
   // "alter table test add  constraint   pk_test primary key(id)";
   // String updateStr =
   // "alter table test add  constraint   pk_test primary key(id)";

   // String updateStr
   // ="alter table test2 add  constraint  pk_test primary key(id)";
   // String updateStr =
   // "update test set currenttime=sysdate where id=14";
   // 修改所有
   // String updateStr = "update test set currenttime=sysdate";
   // String updateStr = "insert into test2(id) values(seql.nextval)";
   // String updateStr =
   // "update test set forid=(select  count(*)  from test2) where name='name1'";

   // String updateStr = "alter table  test add forid number";
   // String updateStr =
   // "alter table test add  constraint   fk_test foreign key (forid) references test2(id)";

   // String updateStr = "alter table test add  pho varchar(100)";
   // String updateStr = "alter table test rename column pho to phone";
   // String updateStr = "delete from test where name='name3'";
   // String updateStr = "delete from test";

   // String updateStr = "alter table test add check (name!='name')";
   // String updateStr =
   // "insert into test(id,name) values(seql.nextval,'name')"; //无法插入
   // String updateStr = " create synonym   syn for testsyn";
   String updateStr = " drop synonym syn";

   // String updateStr = "alter table test add check (name!='name')";
//   int in = m.update(updateStr);
//   System.out.println("in============" + in);
   m.con.commit();
  }
  catch (SQLException e1) {
   e1.printStackTrace();
  }
  // 调用存储过程
  /*
   * boolean x=m.callQ("{call ww}"); if(x==true){
   * System.out.println("ok"); }else{ System.out.println("no"); }
   */
  // 执行带参数的语句
//   m.prepareQ("pp","458");
  // 批处理
  try {
   String st1 = "insert into test(id,name) values(seql.nextval,'name3')";
   String st2 = "delete from  test where id=32";
   String st[] = { st1, st2 };
   // m.executeB(st);
  }
  catch (Exception e1) {
   e1.printStackTrace();
  }
 }
}

分享到:
评论

相关推荐

    Java操作Oracle数据库(建表,插数据,删除)

    Java 操作 Oracle 数据库(建表,插数据,删除) Java 是一种广泛使用的编程语言,而 Oracle 数据库是一种功能强大且广泛使用的关系型数据库管理系统。在本文中,我们将探讨如何使用 Java 操作 Oracle 数据库,包括...

    java操作oracle数据库1

    根据提供的文件信息,本文将详细解释如何使用Java操作Oracle数据库,并深入探讨代码中涉及的关键概念和技术要点。 ### 一、Java操作Oracle数据库简介 #### 1.1 准备环境 在开发Java程序来操作Oracle数据库之前,...

    一个Java操作Oracle数据库的详细例子

    首先,我们需要了解Java中用于数据库操作的JDBC(Java Database Connectivity)API。JDBC是Java平台的一部分,它为Java应用程序提供了一种标准的方法来连接和操作各种类型的数据库,包括Oracle。在Java程序中,我们...

    Java操作Oracle数据库-多线程.rar

    2. **Oracle数据库操作**:一旦建立了连接,我们可以通过`Statement`或`PreparedStatement`对象来执行SQL语句,包括查询、插入、更新和删除数据。在本示例中,还涉及到调用Oracle数据库中的函数和存储过程,这通常...

    使用Java操作oracle数据库

    本节将深入探讨如何使用Java来操作Oracle数据库,特别是调用存储过程。 首先,我们需要了解JDBC的基本概念。JDBC是Java平台的标准接口,它允许Java程序连接到各种类型的数据库,包括Oracle。在Java中,我们通常通过...

    第22章 Java操作Oracle数据库.ppt

    Java操作Oracle数据库主要依赖于Java Database Connectivity (JDBC),这是Sun Microsystems(现为Oracle公司)提供的一个标准API,用于在Java应用程序中与各种关系数据库进行交互。JDBC为不同的数据库系统提供了一个...

    java操作Oracle数据库——ARRAY、TABLE类型批量入库

    在Java编程中,与Oracle数据库进行交互是一项常见的任务。Oracle数据库提供了一些高级数据类型,如ARRAY和TABLE,这些类型能够帮助我们实现批量入库操作,从而提高数据处理的效率。本篇将详细介绍如何利用Java操作...

    Java连接Oracle数据库的各种方法

    在Java中集成Oracle数据库,不仅可以从Java调用数据库操作,还可以在SQL和PL/SQL中调用Java代码。Oracle提供了扩展的DDL语句,允许在数据库中创建和管理Java程序,将Java命名空间映射到数据库模式,使得访问和调用...

    java连接oracle数据库jar包

    总之,Java通过JDBC驱动与Oracle数据库进行交互,主要涉及连接配置、数据库操作和资源管理等环节。正确引入Oracle JDBC驱动JAR包,并理解其使用方法,是开发Java数据库应用的基础。在实际开发中,还需要注意错误处理...

    Java导出Oracle数据库数据

    Java 导出 Oracle 数据库数据 Java 是一种流行的编程语言,广泛应用于各种领域。Oracle 是一种关系数据库管理系统,广泛应用于企业级应用中。在实际项目中,数据备份和恢复是非常重要的工作。本文将介绍如何使用 ...

    java连接oracle数据库

    ### 使用Java连接Oracle数据库 #### 一、简介与准备工作 在进行Java程序开发时,经常需要与数据库进行交互。Oracle数据库作为业界广泛使用的数据库之一,掌握如何使用Java连接Oracle数据库是一项重要的技能。本文...

    java连接oracle数据库驱动

    java连接oracle数据库驱动器java连接oracle数据库驱动器java连接oracle数据库驱动器java连接oracle数据库驱动器java连接oracle数据库驱动器java连接oracle数据库驱动器java连接oracle数据库驱动器java连接oracle...

    Java连接oracle数据库实现成绩查询

    在本课程设计中,我们利用Java编程语言与Oracle数据库相结合,构建了一个功能完善的学生成绩管理系统。这个系统针对管理员、教师和学生三个角色,提供了不同的权限和操作功能,旨在实现成绩的有效管理和查询。 首先...

    基于Java,Oracle数据库的信息管理系统源码.zip

    这是一个基于Java编程语言和Oracle数据库开发的信息管理系统源代码项目,名为"hotel-management-master"。这个系统主要用于帮助管理者高效地处理员工信息和用户数据,尤其适用于酒店行业的信息管理。以下是关于这个...

    java实现增删改查使用Oracle数据库

    对于初学者来说,掌握如何使用Java操作Oracle数据库进行增删改查是基础且重要的技能。本教程将围绕这个主题展开,帮助你入门这一领域的知识。 一、Java数据库连接(JDBC) 在Java中与Oracle数据库交互,首先需要...

    总结java程序中操作Oracle数据库的常用操作1

    在Java编程中,操作Oracle数据库是一项常见的任务,用于存储、检索和处理数据。这篇博文主要总结了Java程序中与Oracle数据库交互的一些基本操作。通过`PersonCreditComplainDao.java`这个文件名,我们可以推测这是一...

    JAVA 连接oracle数据库 实现简单的查询

    在Java编程中,连接Oracle数据库并执行简单的查询是常见的任务,尤其在开发企业级应用时。这个过程涉及几个关键步骤,下面将详细解释这些步骤以及相关的知识点。 首先,要连接Oracle数据库,你需要以下核心组件: ...

    java连接oracle数据库实例及所需jar文件

    在Java编程中,连接Oracle数据库是一项常见的任务,特别是在开发企业级应用时。Oracle数据库是世界上最流行的关系型数据库管理系统之一,而Java作为一种多平台支持的编程语言,为与Oracle的交互提供了丰富的工具和库...

Global site tag (gtag.js) - Google Analytics