关于oralcejava的信息

博主:adminadmin 2022-11-24 14:29:11 51

本篇文章给大家谈谈oralcejava,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何在java中,实现oracle的ora

在oracle中导入需要的jar包,我们把编辑好的java类打成jar包,直接在oarcle里面写简单的调用就可以了,

1、操作系统需要拥有支持loadjava命令的jdk。

2、加载jlha.jar包,到oracle数据库中。

操作过程:在dos环境下,输入命令: loadjava -r -f -o -user usscares/usscares@usscares jlha.jar

注意:jar包要在1.4的环境下编译,项目右键 properties java compiler compoler compliance level 1.4 即可 否则报version 49 类似的错误

怎么实现用java访问oracle数据库?

实现用java访问oracle数据库:

准备工作:

1.下载驱动,打开浏览器,搜索oracle数据库驱动,进入下载页面下载即可;

2.将驱动导入到项目中。

用java访问oracle数据库代码实现:

try {

   Class.forName("oracle.jdbc.driver.OracleDriver");   //加载驱动

   //与数据库建立连接

   try {

    String url = "jdbc:oracle:thin:@localhost:1521:orcl";

    String user = "scott";  //用户名

    String password = "tiger";  //密码

    conn=DriverManager.getConnection(url,username,password);

   } catch (SQLException e) {

    e.printStackTrace();

   } 

  } catch (ClassNotFoundException e) {   

   e.printStackTrace();

  }

如何在Oracle中使用Java方法 详细�0�3

java 存储过程今后在各大数据库厂商中越来越流行,功能也越来越强大。这里以 Oracle 为例,介绍一下java 存储过程的具体用法。 一、如何创建java 存储过程? 通常有三种方法来创建java 存储过程。 1. 使用oracle 的sql 语句来创建: e.g. 使用create or replace and compile java source named "" as 后边跟上java 源程序。要求类的方法必须是public static 的,才能用于存储过程。 SQL create or replace and compile java source named "javademo1" 2 as 3 import java.sql.*; 4 public class JavaDemo1 5 { 6 public static void main(String[] args) 7 { 8 System.out.println("hello, java demo1"); 9 } 10 } 11 / Java 已创建。 SQL show errors java source "javademo1" 没有错误。 SQL create or replace procedure javademo1 2 as 3 language java name 'JavaDemo1.main(java.lang.String[])'; 4 / 过程已创建。 SQL set serveroutput on size 5000 SQL call dbms_java.set_output(5000); --java 语言向控制台输出 SQL execute javademo1(); --execute 存储过程名称 hello, java demo1 调用完成。 2. 使用外部class 文件来装载创建 Class 文件放置在其他目录下调用方法 e.g. 这里既然用到了外部文件,必然要将class 文件放到oracle Server 的某一目录下边。 public class OracleJavaProc { public static void main(String[] argv) { System.out.println("It's a Java Oracle procedure."); } } SQL grant create any directory to scott; 授权成功。 SQL conn 已连接。 SQL create or replace directory test_dir as 'd:/oracle'; 目录已创建。 using -- 使用 bfile---外部文件 SQL create or replace java class using bfile(test_dir, 'OracleJavaProc.CLASS') 2 / Java 已创建。 SQL create or replace procedure testjavaproc as language java name 'OracleJavaProc.main(java.lang.String[])'; 2 / 过程已创建。 SQL call testjavaproc(); 调用完成。 SQL execute testjavaproc; PL/SQL 过程已成功完成。 SQL set serveroutput on size 5000 SQL call dbms_java.set_output(5000); 调用完成。 SQL execute testjavaproc; It's a Java Oracle procedure. 3. 我推荐的一种方法,直接使用loadjava 命令远程装载并创建。 先创建一个类, e.g. import java.sql.*; import oracle.jdbc.*; public class OracleJavaProc { //Add a salgrade to the database. public static void addSalGrade(int grade, int losal, int hisal) { System.out.println("Creating new salgrade for EMPLOYEE..."); try { Connection conn = DriverManager.getConnection("jdbc:default:connection:"); String sql = "INSERT INTO salgrade " + "(GRADE,LOSAL,HISAL) " + "VALUES(?,?,?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1,grade); pstmt.setInt(2,losal); pstmt.setInt(3,hisal); pstmt.executeUpdate(); pstmt.close(); } catch(SQLException e) { System.err.println("ERROR! Adding Salgrade: " + e.getMessage()); } } } 使用loadjava 命令将其装载到服务器端并编译: D:eclipse3.1workspacedbtestloadjava -u -v -resolve Or acleJavaProc.java arguments: '-u' '-v' '-resolve' 'OracleJavaProc.java' creating : source OracleJavaProc loading : source OracleJavaProc resolving: source OracleJavaProc 查询一下状态: 连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.1.0 - Production SQL SELECT object_name, object_type, status FROM user_objects WHERE object_type LIKE 'JAVA%'; OBJECT_NAME -------------------------------------------------------------------------------- OBJECT_TYPE STATUS ------------------------------------ -------------- OracleJavaProc JAVA CLASS VALID OracleJavaProc JAVA SOURCE VALID 测试一下存储过程: SQL create or replace procedure add_salgrade(id number, losal number, hisal num ber) as language java name 'OracleJavaProc.addSalGrade(int, int, int)'; 2 / 过程已创建。 SQL set serveroutput on size 2000 SQL call dbms_java.set_output(2000); 调用完成。 SQL execute add_salgrade(6, 10000, 15000); Creating new salgrade for EMPLOYEE... PL/SQL 过程已成功完成。 SQL select * from salgrade where grade=6; GRADE LOSAL HISAL ---------- ---------- ---------- 6 10000 15000 二、如何更新你已经编写的java 存储过程? 假如要往类OracleJavaProc 里添加一个存储过程方法,如何开发? 正确的步骤应该是先dropjava, 改程序,再loadjava。 e.g.修改OracleJavaProc 类内容如下: import java.sql.*; import oracle.jdbc.*; public class OracleJavaProc { // Add a salgrade to the database. public static void addSalGrade(int grade, int losal, int hisal) ...{ System.out.println("Creating new salgrade for EMPLOYEE..."); try ...{ Connection conn = DriverManager.getConnection("jdbc:default:connection:"); String sql = "INSERT INTO salgrade " + "(GRADE,LOSAL,HISAL) " + "VALUES(?,?,?

如何用Java实现连接Oracle

1、工作环境:myeclipse中-新建java_oracle工程-新建包com.zp-新建java_oracle_jdbc.java类

2、需要配置Oracle数据库驱动

java工程(java_oracle)—右键属性(Properties)-Java Build Path-Libraries-Add External JARs-添加oracle安装目录E:\oracle\product\10.1.0\Db_1\jdbc\lib下的“classes12.jar”文件;

每次新建一个不同工程都需要配置一次

3、代码如下:

package com.zp;

import java.sql.*;

public class java_oracle_jdbc {

public static void main(String[] args) {

// TODO Auto-generated method stub

try

{

//加载驱动

Class.forName("oracle.jdbc.driver.OracleDriver");

//得到连接

Connection ct=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:simlink", "scott", "tiger");

Statement sm=ct.createStatement();

ResultSet rs=sm.executeQuery("select * from emp");

while(rs.next())

{

System.out.println("用户名:"+rs.getString(2));

}

rs.close();

sm.close();

ct.close();

}

catch(Exception e)

{

e.printStackTrace();

}

}

}

java怎么调用oracle的过程

java下实现调用oracle的存储过程和函数

在oracle下创建一个test的账户,然后按一下步骤执行:

1.创建表:STOCK_PRICES

--创建表格

CREATE TABLE STOCK_PRICES(

RIC VARCHAR(6) PRIMARY KEY,

PRICE NUMBER(7,2),

UPDATED DATE );

2.插入测试数据:

--插入数据

INSERT INTO stock_prices values('1111',1.0,SYSDATE);

INSERT INTO stock_prices values('1112',2.0,SYSDATE);

INSERT INTO stock_prices values('1113',3.0,SYSDATE);

INSERT INTO stock_prices values('1114',4.0,SYSDATE);

3.建立一个返回游标: PKG_PUB_UTILS

--建立一个返回游标

CREATE OR REPLACE PACKAGE PKG_PUB_UTILS IS

--动态游标

TYPE REFCURSOR IS REF CURSOR;

END PKG_PUB_UTILS;

4.创建和存储过程:P_GET_PRICE

--创建存储过程

CREATE OR REPLACE PROCEDURE P_GET_PRICE

(

AN_O_RET_CODE OUT NUMBER,

AC_O_RET_MSG OUT VARCHAR2,

CUR_RET OUT PKG_PUB_UTILS.REFCURSOR,

AN_I_PRICE IN NUMBER

)

IS

BEGIN

AN_O_RET_CODE := 0;

AC_O_RET_MSG := '操作成功';

OPEN CUR_RET FOR

SELECT * FROM STOCK_PRICES WHERE PRICEAN_I_PRICE;

EXCEPTION

WHEN OTHERS THEN

AN_O_RET_CODE := -1;

AC_O_RET_MSG := '错误代码:' || SQLCODE || CHR(13) || '错误信息:' || SQLERRM;

END P_GET_PRICE;

5.创建函数:

--创建函数:F_GET_PRICE

CREATE OR REPLACE FUNCTION F_GET_PRICE(v_price IN NUMBER)

RETURN PKG_PUB_UTILS.REFCURSOR

AS

stock_cursor PKG_PUB_UTILS.REFCURSOR;

BEGIN

OPEN stock_cursor FOR

SELECT * FROM stock_prices WHERE price v_price;

RETURN stock_cursor;

END;

6.JAVA调用存储过程返回结果集

代码示例:JDBCoracle10G_INVOKEPROCEDURE.java

import java.sql.*;

import oracle.jdbc.OracleCallableStatement;

import oracle.jdbc.OracleTypes;

/* 本例是通过调用oracle的存储过程来返回结果集:

* oracle 9i、10G 的jdbc由1个jar包组成:classes12.zip

*/

public class JDBCoracle10G_INVOKEPROCEDURE {

Connection conn = null;

Statement statement = null;

ResultSet rs = null;

CallableStatement stmt = null;

String driver;

String url;

String user;

String pwd;

String sql;

String in_price;

public JDBCoracle10G_INVOKEPROCEDURE()

{

driver = "oracle.jdbc.driver.OracleDriver";

url = "jdbc:oracle:thin:@localhost:1521:ORCL";

// oracle 用户

user = "test";

// oracle 密码

pwd = "test";

init();

// mysid:必须为要连接机器的sid名称,否则会包以下错:

// java.sql.SQLException: Io 异常: Connection

// refused(DESCRIPTION=(TMP=)(VSNNUM=169870080)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))

// 参考连接方式:

// Class.forName( "oracle.jdbc.driver.OracleDriver" );

// cn = DriverManager.getConnection(

// "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );

}

public void init() {

System.out.println("oracle jdbc test");

try {

Class.forName(driver);

System.out.println("driver is ok");

conn = DriverManager.getConnection(url, user, pwd);

System.out.println("conection is ok");

statement = conn.createStatement();

// conn.setAutoCommit(false);

// 输入参数

in_price = "3.0";

// 调用函数

stmt = conn.prepareCall("call P_GET_PRICE(?,?,?,?)");

stmt.registerOutParameter(1, java.sql.Types.FLOAT);

stmt.registerOutParameter(2, java.sql.Types.CHAR);

stmt.registerOutParameter(3, oracle.jdbc.OracleTypes.CURSOR);

stmt.setString(4, in_price);

stmt.executeUpdate();

int retCode = stmt.getInt(1);

String retMsg = stmt.getString(2);

if (retCode == -1) { // 如果出错时,返回错误信息

System.out.println("报错!");

} else {

// 取的结果集的方式一:

rs = ((OracleCallableStatement) stmt).getCursor(3);

// 取的结果集的方式二:

// rs = (ResultSet) stmt.getObject(3);

String ric;

String price;

String updated;

// 对结果进行输出

while (rs.next()) {

ric = rs.getString(1);

price = rs.getString(2);

updated = rs.getString(3);

System.out.println("ric:" + ric + ";-- price:" + price

+ "; --" + updated + "; ");

}

}

} catch (Exception e) {

e.printStackTrace();

} finally {

System.out.println("close ");

}

}

public static void main(String args[])// 自己替换[]

{

new JDBCoracle10G_INVOKEPROCEDURE();

}

}

7.开发JAVA调用函数返回结果集

代码示例:JDBCoracle10G_INVOKEFUNCTION.java

import java.sql.*;

import oracle.jdbc.OracleCallableStatement;

import oracle.jdbc.OracleTypes;

/*

/* 本例是通过调用oracle的函数来返回结果集:

* oracle 9i、10G 的jdbc由1个jar包组成:classes12.zip

*/

public class JDBCoracle10G_INVOKEFUNCTION {

Connection conn = null;

Statement statement = null;

ResultSet rs = null;

CallableStatement stmt = null;

String driver;

String url;

String user;

String pwd;

String sql;

String in_price;

public JDBCoracle10G_INVOKEFUNCTION()

{

driver = "oracle.jdbc.driver.OracleDriver";

url = "jdbc:oracle:thin:@localhost:1521:ORCL";

// oracle 用户

user = "test";

// oracle 密码

pwd = "test";

init();

// mysid:必须为要连接机器的sid名称,否则会包以下错:

// java.sql.SQLException: Io 异常: Connection

// refused(DESCRIPTION=(TMP=)(VSNNUM=169870080)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))

// 参考连接方式:

// Class.forName( "oracle.jdbc.driver.OracleDriver" );

// cn = DriverManager.getConnection(

// "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );

}

public void init() {

System.out.println("oracle jdbc test");

try {

Class.forName(driver);

System.out.println("driver is ok");

conn = DriverManager.getConnection(url, user, pwd);

System.out.println("conection is ok");

statement = conn.createStatement();

// conn.setAutoCommit(false);

// 输入参数

in_price = "5.0";

// 调用函数

stmt = conn.prepareCall("{? = call F_GET_PRICE(?)}");

// stmt.registerOutParameter(1, java.sql.Types.FLOAT);

// stmt.registerOutParameter(2, java.sql.Types.CHAR);

stmt.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);

stmt.setString(2, in_price);

stmt.executeUpdate();

// 取的结果集的方式一:

rs = ((OracleCallableStatement) stmt).getCursor(1);

// 取的结果集的方式二:

// rs = (ResultSet) stmt.getObject(1);

String ric;

String price;

String updated;

while (rs.next()) {

ric = rs.getString(1);

price = rs.getString(2);

updated = rs.getString(3);

System.out.println("ric:" + ric + ";-- price:" + price + "; --"

+ updated + "; ");

}

} catch (Exception e) {

e.printStackTrace();

} finally {

System.out.println("close ");

}

}

public static void main(String args[])// 自己替换[]

{

new JDBCoracle10G_INVOKEFUNCTION();

}

}

oracle与Java的关系??

oracle本身是关系数据库软件,java是编程语言,二者之间并没有任何关联关系,所处层次也不一样(一个是应用软件、一个是编程语言)。

结构化查询语言SQL是关系数据库的操作语言同样也是一门语言,也就是说你要对数据库(如oracle)进行操作必须通过SQL语言来与数据库进行交互。

SQL本身与JAVA也没有关联关系。

使用JAVA来进行应用程序的开发时,有要进行数据的持久化存储方面的需求时(即需要使用到数据库),由于二者之间并没有关联关系,所以要使用到JDBC技术,将二者关联起来,JDBC起到二者之间桥梁的作用,JAVA程序通过JDBC构建SQL语句,将业务需求转化成SQL语句,通过SQL语句来达到与数据库交互的作用。

JDBC是java链接数据库的桥梁,而SQL是与数据库交互的语言。你说SQL,数据库才听得懂!

oralcejava的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、oralcejava的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-24,除非注明,否则均为首码项目网原创文章,转载请注明出处。