Java使用JDBC连接Oracle_MSSQL实例代码

一、Statement

代码如下:

import java.sql.*;

public class TestJDBC {

public static void main(String[] args) {
  Connection oracle_conn = null;
  Statement oracle_stmt = null;
  ResultSet oracle_rs = null;

Connection mssql_conn = null;
  Statement mssql_stmt = null;
  ResultSet mssql_rs = null;

try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
   oracle_conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.215:1521:orcl", "username", "password");

oracle_stmt = oracle_conn.createStatement();

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
   mssql_conn = DriverManager.getConnection("jdbc:sqlserver://192.168.0.213:1433;DatabaseName=VIS", "username", "password");

mssql_stmt = mssql_conn.createStatement();
   mssql_rs = mssql_stmt.executeQuery("select * from VideoBaseInfo");

while(mssql_rs.next()) {
    System.out.println("正在插入VideoId:" + mssql_rs.getInt("VideoId") + "的记录...");
    oracle_stmt.executeUpdate("insert into VIDEO_BASEINFO values("
      + mssql_rs.getInt("VideoId") + ",'"
      + mssql_rs.getString("VideoName") + "','"
      + mssql_rs.getString("VideoVersion") + "',"
      + mssql_rs.getInt("VideoMp4Items") + ","
      + mssql_rs.getInt("VideoRmvbItems") + ",'"
      + mssql_rs.getString("VideoAliasName") + "','"
      + mssql_rs.getString("VideoAge") + "'"
      + ")");
   }

} catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   try {
    if(oracle_rs != null) {
     oracle_rs.close();
     oracle_rs = null;
    }

if(oracle_stmt != null) {
     oracle_stmt.close();
     oracle_stmt = null;
    }

if(oracle_conn != null) {
     oracle_conn.close();
     oracle_conn = null;
    }

if(mssql_rs != null) {
     mssql_rs.close();
     mssql_rs = null;
    }

if(mssql_stmt != null) {
     mssql_stmt.close();
     mssql_stmt = null;
    }

if(mssql_conn != null) {
     mssql_conn.close();
     mssql_conn = null;
    }
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
 }

}

二、PreparedStatement

代码如下:

import java.sql.*;

public class TestPreparedStatement {

public static void main(String[] args) {
  Connection oracle_conn = null;
  PreparedStatement oracle_stmt = null;
  ResultSet oracle_rs = null;

Connection mssql_conn = null;
  Statement mssql_stmt = null;
  ResultSet mssql_rs = null;

try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
   oracle_conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.215:1521:orcl", "username", "password");

oracle_stmt = oracle_conn.prepareStatement("insert into Video_ItemInfo values(?, ?, ?, ?, ?, ?, ?, ?, ?)");

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
   mssql_conn = DriverManager.getConnection("jdbc:sqlserver://192.168.0.213:1433;DatabaseName=VIS", "username", "password");

mssql_stmt = mssql_conn.createStatement();
   mssql_rs = mssql_stmt.executeQuery("select * from VideoItemInfo");

while(mssql_rs.next()) {
    System.out.println("正在插入ItemIndex:" + mssql_rs.getInt("ItemIndex") + "的记录...");
    oracle_stmt.setInt(1, mssql_rs.getInt("ItemIndex"));
    oracle_stmt.setInt(2, mssql_rs.getInt("VideoId"));
    oracle_stmt.setString(3, mssql_rs.getString("VideoItemName"));
    oracle_stmt.setString(4, mssql_rs.getString("VideoExtName"));
    oracle_stmt.setDouble(5, mssql_rs.getDouble("VideoSize"));
    oracle_stmt.setString(6, mssql_rs.getString("VideoPath"));
    oracle_stmt.setString(7, mssql_rs.getString("VideoType"));
    oracle_stmt.setDate(8, mssql_rs.getDate("VideoDate"));
    oracle_stmt.setString(9, mssql_rs.getString("ApplicationWay"));

oracle_stmt.executeUpdate();
   }
   System.out.println("插入数据到Video_ItemInfo表中操作已完成!");
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   try {
    if(oracle_rs != null) {
     oracle_rs.close();
     oracle_rs = null;
    }

if(oracle_stmt != null) {
     oracle_stmt.close();
     oracle_stmt = null;
    }

if(oracle_conn != null) {
     oracle_conn.close();
     oracle_conn = null;
    }

if(mssql_rs != null) {
     mssql_rs.close();
     mssql_rs = null;
    }

if(mssql_stmt != null) {
     mssql_stmt.close();
     mssql_stmt = null;
    }

if(mssql_conn != null) {
     mssql_conn.close();
     mssql_conn = null;
    }
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
 }
}

三、CallableStatement

代码如下:

import java.sql.*;
public class TestProc {

/**
  * @param args
  */
 public static void main(String[] args) throws Exception {

Class.forName("oracle.jdbc.driver.OracleDriver");
  Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:SXT", "scott", "tiger");
  CallableStatement cstmt = conn.prepareCall("{call p(?, ?, ?, ?)}");
  cstmt.registerOutParameter(3, Types.INTEGER);
  cstmt.registerOutParameter(4, Types.INTEGER);
  cstmt.setInt(1, 3);
  cstmt.setInt(2, 4);
  cstmt.setInt(4, 5);
  cstmt.execute();
  System.out.println(cstmt.getInt(3));
  System.out.println(cstmt.getInt(4));
  cstmt.close();
  conn.close();
 }
}

四、Batch

代码如下:

import java.sql.*;
public class TestBatch {

public static void main(String[] args) throws Exception {
  Class.forName("oracle.jdbc.driver.OracleDriver");
  Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:SXT", "scott", "tiger");
  /*
  Statement stmt = conn.createStatement();
  stmt.addBatch("insert into dept2 values (51, '500', 'haha')");
  stmt.addBatch("insert into dept2 values (52, '500', 'haha')");
  stmt.addBatch("insert into dept2 values (53, '500', 'haha')");
  stmt.executeBatch();
  stmt.close();
  */

PreparedStatement ps = conn.prepareStatement("insert into dept2 values (?, ?, ?)");
  ps.setInt(1, 61);
  ps.setString(2, "haha");
  ps.setString(3, "bj");
  ps.addBatch();

ps.setInt(1, 62);
  ps.setString(2, "haha");
  ps.setString(3, "bj");
  ps.addBatch();

ps.setInt(1, 63);
  ps.setString(2, "haha");
  ps.setString(3, "bj");
  ps.addBatch();

ps.executeBatch();
  ps.close();

conn.close();

}
}

五、Transaction

代码如下:

import java.sql.*;
public class TestTransaction {

public static void main(String[] args) {

Connection conn = null;
  Statement stmt = null;

try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
   conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:SXT", "scott", "tiger");

conn.setAutoCommit(false);
   stmt = conn.createStatement();
   stmt.addBatch("insert into dept2 values (51, '500', 'haha')");
   stmt.addBatch("insert into dept2 values (52, '500', 'haha')");
   stmt.addBatch("insert into dept2 values (53, '500', 'haha')");
   stmt.executeBatch();
   conn.commit();
   conn.setAutoCommit(true);
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch(SQLException e) {

e.printStackTrace();

try {
    if(conn != null)
    {
     conn.rollback();
     conn.setAutoCommit(true);
    }
   } catch (SQLException e1) {
    e1.printStackTrace();
   }
  }finally {
   try {
    if(stmt != null)
     stmt.close();
    if(conn != null)
     conn.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }

}

}

六、ScrollResultSet

代码如下:

import java.sql.*;

public class TestScroll {
 public static void main(String args[]) {

try {
   new oracle.jdbc.driver.OracleDriver();
   String url = "jdbc:oracle:thin:@192.168.0.1:1521:SXT";
   Connection conn = DriverManager
     .getConnection(url, "scott", "tiger");
   Statement stmt = conn.createStatement(
     ResultSet.TYPE_SCROLL_INSENSITIVE,
     ResultSet.CONCUR_READ_ONLY);
   ResultSet rs = stmt
     .executeQuery("select * from emp order by sal");
   rs.next();
   System.out.println(rs.getInt(1));
   rs.last();
   System.out.println(rs.getString(1));
   System.out.println(rs.isLast());
   System.out.println(rs.isAfterLast());
   System.out.println(rs.getRow());
   rs.previous();
   System.out.println(rs.getString(1));
   rs.absolute(6);
   System.out.println(rs.getString(1));
   rs.close();
   stmt.close();
   conn.close();
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }
}

七、UpdateResultSet

代码如下:

import java.sql.*;
public class TestUpdataRs {
    public static void main(String args[]){

try{
     new oracle.jdbc.driver.OracleDriver();
     String url="jdbc:oracle:thin:@192.168.0.1:1521:SXT";
     Connection conn=DriverManager.getConnection(url,"scott","tiger");
     Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

ResultSet rs=stmt.executeQuery("select * from emp2");

rs.next();
     //更新一行数据
     rs.updateString("ename","AAAA");
     rs.updateRow();

//插入新行
     rs.moveToInsertRow();
     rs.updateInt(1, 9999);
     rs.updateString("ename","AAAA");
     rs.updateInt("mgr", 7839);
     rs.updateDouble("sal", 99.99);
     rs.insertRow();
     //将光标移动到新建的行
     rs.moveToCurrentRow();

//删除行
     rs.absolute(5);
     rs.deleteRow();

//取消更新
     //rs.cancelRowUpdates();

}catch(SQLException e){
     e.printStackTrace();
   }
    }
}

(0)

相关推荐

  • javaweb学习总结——使用JDBC处理MySQL大数据

    BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器.在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型,BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传.下载或者存放到一个数据库). 一.基本概念 在实际开发中,有时是需要用程序把大文本或二进制数据直接保存到数据库中进行储存的. 对MySQL而言只有blob,而没有clob,mysql存储大文本采用的是Text,Text和

  • JDBC中使用Java8的日期LocalDate和LocalDateTime操作mysql、postgresql

    前言 相信大家应该都知道,在实体Entity里面,可以使用java.sql.Date.java.sql.Timestamp.java.util.Date来映射到数据库的date.timestamp.datetime等字段 但是,java.sql.Date.java.sql.Timestamp.java.util.Date这些类都不好用,很多方法都过时了. Java8里面新出来了一些API,LocalDate.LocalTime.LocalDateTime 非常好用 如果想要在JDBC中,使用Ja

  • java基于jdbc连接mysql数据库功能实例详解

    本文实例讲述了java基于jdbc连接mysql数据库的方法.分享给大家供大家参考,具体如下: 一.JDBC简介 Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法.JDBC也是Sun Microsystems的商标.它JDBC是面向关系型数据库的. 1.JDBC架构: JDBC API支持两层和三层处理模型进行数据库访问,但在一般的JDBC体系结构由

  • JAVA使用JDBC技术操作SqlServer数据库实例代码

    JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序. JDBC并不能直接访问数据库,需要借助于数据库厂商提供的JDBC驱动程序. 数据库连接 如果要在Java访问数据库,首先要加载一个数据库驱动,数据库驱动只需要在第一次访问时加载一次.然后再每次访问

  • java中JDBC实现往MySQL插入百万级数据的实例代码

    想往某个表中插入几百万条数据做下测试,原先的想法,直接写个循环10W次随便插入点数据试试吧,好吧,我真的很天真.... DROP PROCEDURE IF EXISTS proc_initData;--如果存在此存储过程则删掉 DELIMITER $ CREATE PROCEDURE proc_initData() BEGIN DECLARE i INT DEFAULT 1; WHILE i<=100000 DO INSERT INTO text VALUES(i,CONCAT('姓名',i),

  • Java使用JDBC向MySQL数据库批次插入10W条数据(测试效率)

    使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: 通过使用addBatch()和executeBatch()这一对方法可以实现批量处理数据. 不过值得注意的是,首先需要在数据库链接中设置手动提交,connection.setAutoCommit(false),然后在执行Statement之后执行connection.commit(). import java.io.Bu

  • Java使用JDBC驱动连接MySQL数据库

    Java使用JDBC驱动连接MySQL数据库的步骤: 1.下载驱动,导入jar包 2.加载驱动 3.设置连接 连接成功后就是一些对数据库中数据的操作 1.下载驱动,导入jar包 当你看到jdbc目录下有相应的jar包说明第一步操作已经完成. 2.加载驱动 3.设置连接 import java.sql.Connection; import java.sql.DriverManager; public class DB_Helper { public static void main(String[

  • Java 通过JDBC连接Mysql数据库

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序. 如果要使用数据库就要添加数据库的驱动,不同的数据库有不用的驱动,这里就不一一说明,添加jar程序驱动包的方法就不在这里解释, 另一个文章里面有介绍http://www.jb51.net/artic

  • java使用jdbc连接数据库工具类和jdbc连接mysql数据示例

    这个工具类使用简单,实例化直接调用就可以了,大家还可以方便的根据自己的需要在里面增加自己的功能 复制代码 代码如下: package com.lanp.ajax.db; import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException; /** * 连接数据库的工具类,被定

  • Java基于jdbc连接mysql数据库操作示例

    本文实例讲述了Java基于jdbc连接mysql数据库操作.分享给大家供大家参考,具体如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class MySQLDemo { private Connection conn = null; pri

  • java jdbc连接mysql数据库实现增删改查操作

    jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate.Mybatis. 但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的时候才能更好的去理解这些成熟的框架是如何去实现增删改查

随机推荐