「java使用oracle」Java使用for循环输出等腰三角形

博主:adminadmin 2023-03-18 22:52:06 481

今天给各位分享java使用oracle的知识,其中也会对Java使用for循环输出等腰三角形进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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

这个是完全没有问题的。

先期准备:

1、两台电脑必须要联网,能够访问到

2、将oracle的驱动程序拷贝到你的java的电脑上,并设置到环境变量中。

java代码

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class DbTest {

public static void main(String[] args) {

Connection conn = null;

PreparedStatement prstm = null;

ResultSet rs = null;

try {

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

String url="jdbc:oracle:thin:@ip:port:orcl"; //数据库连接字符串,需要替换ip,port,orcl

String user="user"; //用户名,需要替换你的数据库的用户名

String password="pswd"; //密码,需要替换为对应的密码

conn = DriverManager.getConnection(url,user,password); //获取连接

prstm = conn.prepareStatement("SELECT 1 TEST_ID FROM DUAL");

rs = prstm.executeQuery();

while (rs.next()) {

System.out.println("查询结果为:" + rs.getInt("TEST_ID"));

}

} catch (InstantiationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

//使用完毕进行相关内容的关闭,注意相关顺序

if (rs != null) {

try {

rs.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if (prstm != null) {

try {

prstm.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if (conn != null) {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

}

java与oracle数据库相连,用的是哪个jar文件?

class12.jar文件。

由于thin驱动都是纯Java代码,并且使用TCP/IP技术通过java的Socket连接上Oracle数据库,所以thin驱动是与平台无关的,无需安装Oracle客户端,只需要下载一个thin驱动的jar包,并且将环境变量中的CLASS_PATH变量中加入thin驱动的路径就可以了。

Thin驱动虽然与平台无关,也无需安装Oracle客户端,但是有一个致命的缺陷就是性能一般,达不到如OCI方式的企业级的要求。另外,如果一个oracle数据库对应一台主机,可以使用thin连接;如果一个oracle数据库对应四五台主机(集群服务器)。

使用thin时,需要把tnsnames.ora文件中的相关数据库的整个连接字符串都拷贝下来,如此才能连接上oracle集群数据库。

使用OCI连接数据库是企业级的做法,适应于单个数据库和集群数据库,性能优越,尤其是连接池功能大大提高了应用程序的性能和并发量。唯一的缺点是,若想使用OCI必须要安装Oracle客户端。

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

}

}

关于java使用oracle和Java使用for循环输出等腰三角形的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。