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();
	  }
    }
}


發佈了26 篇原創文章 · 獲贊 3 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章