`

Java连接Oracle(高级篇)

    博客分类:
  • Java
 
阅读更多

在项目工程目录下新建一个config文件夹,在config文件夹里创建一个database.properties文件,配置相关Oracle数据库的driver、url、username、password。

#Oracle
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:moonlight
jdbc.username=scott
jdbc.password=tiger

 

在DBUtil.java中封装数据库常用操作。

import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class DBUtil {
	public static Connection getConnection() {
		Connection conn = null;
		Properties props = null;
		FileInputStream in = null;
		
		try {
			props = new Properties();
			in = new FileInputStream("config/database.properties");
			props.load(in);
			in.close();

			String jdbcdriver = props.getProperty("jdbc.driver");
			if (jdbcdriver != null) {
				System.setProperty("jdbc.driver", jdbcdriver);
			}

			String url = props.getProperty("jdbc.url");
			String username = props.getProperty("jdbc.username");
			String password = props.getProperty("jdbc.password");

			conn = DriverManager.getConnection(url, username, password);
		} catch (Exception e) {
			e.printStackTrace();
		}

		return conn;
	}

	public static void close(Connection conn) {
		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

	public static void close(PreparedStatement pstmt) {
		if (pstmt != null) {
			try {
				pstmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

	public static void close(ResultSet rs) {
		if (rs != null) {
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

 

最后,在JDBCDemo.java中测试一下是否配置连接成功。

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class JDBCDemo {
	public static void main(String[] args) throws Exception {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;

		String keyword = "SMI";

		String sql = "SELECT empno, ename, job FROM emp WHERE ename LIKE ?";

		conn = DBUtil.getConnection();
		pstmt = conn.prepareStatement(sql);

		pstmt.setString(1, "%" + keyword + "%");

		rs = pstmt.executeQuery();
		while (rs.next()) {
			int empno = rs.getInt("empno");
			String ename = rs.getString("ename");
			String job = rs.getString("job");

			System.out.println("empno: " + empno + ", ename: " + ename
					+ ", job: " + job);
		}

		DBUtil.close(rs);
		DBUtil.close(pstmt);
		DBUtil.close(conn);
	}
}

 

使用JDBC调用Oracle存储过程

CallableStatement对象用于调用数据库服务器端的存储过程(Procedure),由java.sql.CallableStatement接口类型表示,该接口继承了java.sql.PreparedStatement接口。

存储过程是由SQL语句(以及数据库相关的增强指令,如Oracle中的PL/SQL语句)和流控制语句书写的过程程序,存储过程经过数据库编译和优化后存储在数据库服务器中,充分利用存储过程来完成应用系统的逻辑操作处理可以提高系统的运行性能和可维护性,但却会影响数据库的可移植性。

CallableStatement接口的用法与PreparedStatement类似

SQL源文件

drop procedure MyProcedure;

drop table person;

create table person
(
    id number primary key,
    name char(20),
    age number
);

create or replace procedure MyProcedure
(
    v_id in person.id%TYPE,
    v_name in person.name%TYPE,
    v_age in person.age%TYPE
)
as
begin
    insert into person values(v_id, v_name, v_age);
end;
/

  

Java源文件

package org.fool.jdbc;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class CallStatementTest
{
	public static void main(String[] args)
	{
		Connection conn = null;
		CallableStatement cstmt = null;

		conn = DBUtil.getConnection();

		try
		{
			cstmt = conn.prepareCall("{call MyProcedure(?, ?, ?)}");
			cstmt.setInt(1, 1);
			cstmt.setString(2, "Oracle");
			cstmt.setInt(3, 30);

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

		DBUtil.close(cstmt);
		DBUtil.close(conn);
	}

	public static class DBUtil
	{
		public static Connection getConnection()
		{
			Connection conn = null;
			Properties props = null;
			FileInputStream in = null;

			try
			{
				props = new Properties();
				in = new FileInputStream("config/database.properties");
				props.load(in);
				in.close();

				String jdbcdriver = props.getProperty("jdbc.driver");
				if (jdbcdriver != null)
				{
					Class.forName(jdbcdriver);
				}

				String url = props.getProperty("jdbc.url");
				String username = props.getProperty("jdbc.username");
				String password = props.getProperty("jdbc.password");

				conn = DriverManager.getConnection(url, username, password);
			}
			catch (FileNotFoundException | ClassNotFoundException
					| SQLException e)
			{
				e.printStackTrace();
			}
			catch (IOException e)
			{
				e.printStackTrace();
			}

			return conn;
		}

		public static void close(Connection conn)
		{
			if (conn != null)
			{
				try
				{
					conn.close();
				}
				catch (SQLException e)
				{
					e.printStackTrace();
				}
			}
		}

		public static void close(PreparedStatement pstmt)
		{
			if (pstmt != null)
			{
				try
				{
					pstmt.close();
				}
				catch (SQLException e)
				{
					e.printStackTrace();
				}
			}
		}

		public static void close(CallableStatement cstmt)
		{
			if (cstmt != null)
			{
				try
				{
					cstmt.close();
				}
				catch (SQLException e)
				{
					e.printStackTrace();
				}
			}
		}

		public static void close(ResultSet rs)
		{
			if (rs != null)
			{
				try
				{
					rs.close();
				}
				catch (SQLException e)
				{
					e.printStackTrace();
				}
			}
		}
	}
}

  

 

 

 

分享到:
评论

相关推荐

    java连接oracle数据库jar包

    Java连接Oracle数据库主要依赖于JDBC(Java Database Connectivity)技术,这是Java平台中用于与各种数据库进行交互的一套标准API。Oracle公司提供了JDBC驱动,使得Java程序能够方便地访问Oracle数据库。在Java中...

    java 连接oracle12c 的jar包

    ojdbc7.jar是Oracle提供的Java Database Connectivity (JDBC) 驱动程序,专门用于Java连接Oracle数据库。JDBC是Java标准API,允许Java应用程序通过Java代码与各种数据库进行交互。ojdbc7.jar是Oracle JDBC驱动程序的...

    Java连接Oracle(很完备哦)

    Java连接Oracle是Java开发中的一项常见任务,尤其在企业级应用中,Oracle数据库因其稳定性、高性能和丰富的功能而被广泛采用。本资源包"Java连接Oracle(很完备哦)"提供了全面的学习材料,包括JDBC驱动包、初级教程...

    Java 连接 Oracle 方法与驱动文件

    本篇将详细介绍如何使用Java连接Oracle数据库以及所需的驱动文件。 首先,确保你已经安装了Oracle数据库,并且知道服务器的IP地址、端口号、数据库服务名(SID)或全局数据库名(TNS名称)。同时,你需要Oracle的...

    java连接oracle的数据库驱动

    Java连接Oracle数据库主要依赖于Oracle提供的JDBC驱动,也称为Oracle JDBC Driver。Oracle JDBC驱动有多种类型,包括 Thin、OCI(Oracle Call Interface)和JDBC-ODBC桥接。在本场景中,我们重点关注Thin驱动,因为...

    java连接oracle数据库的驱动包

    本文将深入探讨如何使用Java连接Oracle数据库,以及如何处理所需的驱动包。 首先,Java Database Connectivity (JDBC) 是Java平台的标准API,用于与各种数据库进行通信。它为开发人员提供了一组接口和类,通过这些...

    Java连接Oracle数据库驱动包(JDBC)

    Java连接Oracle数据库的过程中,JDBC(Java Database Connectivity)扮演了至关重要的角色。JDBC是Java平台的一个标准API,它允许Java程序与各种数据库进行交互,包括Oracle。在本压缩包中,提供了Java连接Oracle...

    java连接oracle的jar包

    Java连接Oracle数据库主要依赖于Oracle提供的JDBC驱动,这些驱动是Java应用程序与Oracle数据库之间通信的桥梁。在给定的压缩包文件中,包含了两个重要的JDBC驱动:ojdbc6.jar和ojdbc14.jar。 ojdbc6.jar是Oracle ...

    Java连接Oracle的jar包

    本文将详细介绍如何使用Java连接Oracle数据库,以及如何获取和使用Oracle的JDBC驱动包。 首先,你需要下载Oracle的JDBC驱动包,也就是"Oracle的jar包"。这个驱动包通常被称为ojdbc.jar或ojdbc6.jar、ojdbc7.jar等,...

    java连接oracle数据库需要的jar包

    总之,ojdbc6.jar是Java连接Oracle数据库的关键组件,通过正确的配置和使用,开发者可以实现高效、可靠的数据库连接和操作。在实际项目中,根据具体需求选择适合的JDBC驱动版本,并确保遵循最佳实践来管理和使用这些...

    Java_oracle_creat_inset_delete.rar_java 连接oracle_oracle_oracle 操

    本篇将详细探讨如何使用Java连接Oracle数据库,并执行创建表、插入数据以及删除操作。 首先,要建立Java与Oracle的连接,我们需要引入JDBC(Java Database Connectivity)驱动。Oracle提供了ojdbc驱动,它允许Java...

    Java连接Oracle数据库 ojdbc6包

    Java连接Oracle数据库是Java开发中的常见任务,Oracle数据库是企业级广泛应用的关系型数据库管理系统。在Java中,我们通常使用JDBC(Java Database Connectivity)API来实现与Oracle数据库的交互。`ojdbc6.jar`是...

    java连接oracle数据库

    总的来说,Java连接Oracle数据库涉及到JDBC API的使用、Oracle JDBC驱动的加载、数据库连接信息的配置以及连接的创建和关闭。通过理解这些基础知识,你就能有效地在Java应用中与Oracle数据库进行交互。

    java连接Oracle数据库

    Java连接Oracle数据库主要涉及到Java编程语言、Oracle数据库系统以及JDBC(Java Database Connectivity)技术。JDBC是Java中用于与各种数据库进行交互的一组接口和类,它为开发者提供了标准的API,使得Java应用程序...

    oracle连接java的几种方法

    本篇文章将详细介绍在Java中连接Oracle数据库的几种常见方法,以及相关的源码示例。 1. JDBC-ODBC桥连接: JDBC-ODBC桥是Java早期连接数据库的一种方式,它依赖于操作系统上的ODBC数据源。首先,你需要在系统中...

    java web与Oracle数据的分页功能

    在Java Web开发中,与Oracle数据库进行交互时,分页功能是常见的需求,尤其是在处理大量数据时,为了提高用户体验和加载速度,分批次地显示数据是必不可少的。本项目提供的源代码正是针对这一需求,提供了在Java Web...

    java连接ORACLE数据库.doc

    Java 连接 Oracle 数据库是将 Java 应用程序与 Oracle 数据库系统相结合的重要操作,主要依赖于 JDBC(Java Database Connectivity)技术。JDBC 是一个 Java API,它提供了标准的接口,使得 Java 开发人员可以方便地...

    oracle11g JDBC驱动jar包+java测试案例

    连接Oracle数据库的基本步骤如下: 1. 加载JDBC驱动:使用`Class.forName()`方法加载Oracle的JDBC驱动,例如 `Class.forName("oracle.jdbc.driver.OracleDriver")`。 2. 获取数据库连接:通过`DriverManager.get...

Global site tag (gtag.js) - Google Analytics