社区
Java SE
帖子详情
高分求JDBC ORACLE 资料(先给100收到后再给100)
gisinfo
2008-11-25 01:04:17
我需要一个JDBC 的三个类
Connection Statement ResultSet
所有方法的详细介绍
谢谢
tong.gu@gisinfo.com
...全文
101
15
打赏
收藏
高分求JDBC ORACLE 资料(先给100收到后再给100)
我需要一个JDBC 的三个类 Connection Statement ResultSet 所有方法的详细介绍 谢谢 tong.gu@gisinfo.com
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gisinfo
2008-11-25
打赏
举报
回复
就怎么简单
和VC还是蛮象的嘛!!!
很容易上手
靠靠靠!!!
gisinfo
2008-11-25
打赏
举报
回复
只有OUT参数
有IN OUT参数的ORACLE存储过程的调用
/**
*
*/
package chapter10;
import java.sql.*;
/**
* <p>Title:oracle</>
* <p>Description:Java and oracle database</p>
* <p>Company:gisinfo</p>
* @author tony.gu@gisinfo.com
* @version 1.0
*/
public class CallProcedure {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String driver="sun.jdbc.odbc.JdbcOdbcDriver";
String url="jdbc:odbc:shnw";
String createprocedure;
Connection conn;
Statement statement;
//ResultSet rs=null;
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,"shnw","shnw");
statement=conn.createStatement();
CallableStatement proc = null;
proc = conn.prepareCall("{ call SHNW.PRO_WHILE_LOOP(?,?,?) }");
proc.setString(1, "12");
proc.setString(2, "12");
proc.registerOutParameter(3,Types.VARCHAR);
proc.execute();//proc.executeUpdate();
String V_D = proc.getString(3);
System.out.println("输出参数V_D="+V_D);
/*CallableStatement proc = null;
proc = conn.prepareCall("{ call SHNW.PRO_WHILE_LOOP(?) }");
proc.registerOutParameter(1, Types.VARCHAR);
proc.execute();
String V_D = proc.getString(1);
System.out.println("输出参数V_D="+V_D);*/
//rs.close();
statement.close();
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
gisinfo
2008-11-25
打赏
举报
回复
应用举例
DML DDL操作
/**
*
*/
package chapter10;
import java.sql.*;
/**
* <p>Title:oracle</>
* <p>Description:Java and oracle database</p>
* <p>Company:gisinfo</p>
* @author tony.gu@gisinfo.com
* @version 1.0
*/
public class myOrcJdbcOdbc {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String driver="sun.jdbc.odbc.JdbcOdbcDriver";
String url="jdbc:odbc:orcl10";
String query,name,mark,create,drop,insert,update,delete;
Connection conn;
Statement statement;
ResultSet rs=null;
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,"SIP_DB","SIP_DB");
statement=conn.createStatement();
/*PreparedStatement ps=conn.prepareStatement("update gc_gccdb_bf set dlmc='gis' where dlmc=?");
ps.setString(1,"gisinfo");
ps.executeUpdate();*/
PreparedStatement ps =conn.prepareStatement("select * from gc_gccdb_bf where cd=?");
ps.setString(1,"1");
ps.setString(1,"44");
ps.setString(1,"5873");
rs=ps.executeQuery();
drop="drop table gc_gccdb_bf";
statement.executeUpdate(drop);
System.out.println("Drop Success!");
create="create table gc_gccdb_bf as select * from gc_gccdb";
statement.executeUpdate(create);
System.out.println("Create Success!");
delete="delete from gc_gccdb_bf where cd=88";
statement.executeUpdate(delete);
System.out.println("Delete Success!");
update="update gc_gccdb_bf set dlmc='gisinfo' where dlmc is not null";
statement.executeUpdate(update);
System.out.println("Update Success!");
insert="insert into gc_gccdb_bf select * from gc_gccdb_bf";
statement.executeUpdate(insert);
System.out.println("Insert Success!");
//query="select * from gc_gccdb";
//rs=statement.executeQuery(query);
while(rs.next()){
query=rs.getString("jsld");
//name=rs.getString("dlmc");
//mark=rs.getString("ksld");
System.out.println("结束道路:"+query);
//System.out.println("道路名称:"+name);
//System.out.println("开始道路:"+mark+"\n");
}
rs.close();
statement.close();
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
natee
2008-11-25
打赏
举报
回复
[Quote=引用 7 楼 gisinfo 的回复:]
原来这方面的资料太多了
在讯雷随便一搜就有
分都省了
KAO
[/Quote]
哈哈...
風男
2008-11-25
打赏
举报
回复
要这三个类的源码吗?
myjava_024
2008-11-25
打赏
举报
回复
一、Connection[接口]
1. 打开一个连接
创建与数据库的连接的标准方式是在DataSource或DriverManager上调用方法getConnection()。Driver方法connect使用URL来建立连接。
用户可以设置JDBC管理层,然后直接调用Driver方法。在两个驱动程序连接到一个数据库,而用户想明确地选择一个特定的驱动程序时,这是很有用的,尽管这种情况很少见。然而,通常让DataSource或DriverManager打开连接会更容易。
2. 数据库URL
URL(Uniform Resource Locator,统一资源定位符)是在Intenet查找资源的标识符。可以认为它是一个地址。JDBC URL是确定数据库的灵活方式,从而使得适当的驱动程序识别它并建立与它的连接。JDBC URL允许不同的驱动程序为命名数据库使用不同的方案。例如,odbc子协议允许URL包含属性值。
jdbc:<subprotocol>:<subname>
JDBC URL的三个部分如下:
jdbc:协议。JDBC URL中的协议总是jdbc。
<subprotocol>:驱动程序或连接机制的名称,可以有一个或多个驱动程序支持。
<subname>:数据库的唯一标识符。
3. odbc子协议
odbc子协议特性是,允许在数据库名称后指定任意数量的属性值,如下所示:
jdbc:odbc:<data-source-name>[;<attribute-name>=<attribute-value>]*]
二、SQL语句
JDBC核心API提供了三种向数据库发送SQL语句的类:
Statement:使用createStatement()创建;
PreparedStatement:经过预编译并存储在PreparedStatement对象中的SQL语句,使用prepareStatement()方法创建。
CallableStatement:用于执行SQL存储过程,使用prepareCall()方法创建。
1. Statement对象
Statement对象用于执行静态SQL语句和获得SQL产生的结果。定义了三种执行SQL语句的方法,用来处理返回不同结果的SQL命令:
executeUpdate(String sql):执行SQL INSERT,UPDATE或DELETE语句,返回受影响行的数目或零;
返回值为int型
executeQuery(String sql):执行返回单个ResultSet的SQL语句;
返回类型ResultSet
execute(String sql):执行可以返回多个结果的SQL语句。
返回类型为boolean,如果返回的是更新的数目,则返回false,如果返回ResultSet,则返回true。
2. PreparedStatement语句
PreparedStatement仅仅是预编译语句。可以使用占位符。
public class PreparedStmt{
public static void main(String[] args){
int qty;
float cost;
String name;
String desc;
String query = "SELECT * FROM stock WHERE item_number = ? ";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:db", "username", "password");
PreparedStatement pStmt = conn.prepareStatement(query);
pStmt.setInt(1, 2);
Result rs = pStmt.executeQuery();
while(rs.next()){
name = rs.getString("name");
desc = rs.getString("description");
qty = rs.getInt("qty");
cost = rs.getFloat("cost");
System.out.println(name + ", " + desc +"\t: " + qty + "\t@ $" + cost);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try{
if (rs != null) rs.close();
if(pStmt != null) pStmt.close();
if(conn != null) conn.close();
} catch (SQLException e){
e.printStackTrace();
}
}
}
}
3. CallableStatement
允许从Java应用程序中调用数据库存储过程。CallableStatement对象包含了对存储过程的调用;但不包含存储过程本身,这是由于存储过程是存储在数据库中的。
使用方法:CallableStatement cStmt = conn.prepareCall("{call 存储过程名(参数表列)}");
gmh521
2008-11-25
打赏
举报
回复
http://download.chinaitlab.com/program/files/12603.html
JackyNone
2008-11-25
打赏
举报
回复
?
gisinfo
2008-11-25
打赏
举报
回复
原来这方面的资料太多了
在讯雷随便一搜就有
分都省了
KAO
gisinfo
2008-11-25
打赏
举报
回复
帮个忙啊
renmms
2008-11-25
打赏
举报
回复
[Quote=引用 3 楼 natee 的回复:]
你以为这一百一百的是RMB啊!
[/Quote].
...
haode
2008-11-25
打赏
举报
回复
Oracle官网上有资料的
natee
2008-11-25
打赏
举报
回复
你以为这一百一百的是RMB啊!
KingNE
2008-11-25
打赏
举报
回复
http://download.chinaitlab.com/program/files/12603.html
shenjie1989
2008-11-25
打赏
举报
回复
jf
数据库课程设计---某期刊的在线投稿审稿管理系统
高分
课设。 一、课程设计目的及基本要
求
数据库系统课程设计是为数据库原理及应用课程而独立开设的实践性课程。数据库系统课程设计对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。本课程...
oracle
无法从套接字,十万火急!300分
高分
求
助!关于
oracle
jdbc
“无法从套接字读取更多的数据”的问题(300分)...
我在运行一段使用sql语句访问
oracle
9.2的java程序的时候,遇到了如下的异常:java.sql.SQLException: 无法从套接字读取更多的数据at
oracle
.
jdbc
.dbaccess.DBError.throwSqlException(DBError.java:134)at
oracle
....
软考高项论文50分秘籍——心法篇
讲师以52分和53分通过论文,2次
高分
通过,方法论经得起考验
java和
oracle
连接_大侠解决一下java 如何和
oracle
进行连接??(
高分
—)
1、是应用程序,直接用
jdbc
连接,这样,你可以参考一下关于
jdbc
的连接方式,
oracle
分两种方式,一种是thin,或是oci方式,A.thin方式,一般是一个driver,一个url即可。下面是
oracle
的例子:/**...
java
oracle
图片存储大小设置,
高分
求
助:在
oracle
中保存图片问题
以下是我的一段程序:请问各位大虾帮我找出错误:表结构:(
oracle
)CREATETABLESYSTEM.HRMACH_CONTRACT_PHOTO(ARCHIVE_CDVARCHAR2(11)NOTNULL,CONTRACTBLOB,PHOTOBLO...
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章