很多朋友在Java开发中 使用Oracle数据库的时候 经常会碰到有ORA : maximum open cursors exceeded 的错误 实际上 这个错误的原因 主要还是代码问题引起的 ora : maximum open cursors exceeded 表示已经达到一个进程打开的最大游标数 这样的错误很容易出现在Java代码中的主要原因是 Java代码在执行conn createStatement()和conn prepareStatement()的时候 实际上都是相当与在数据库中打开了一个cursor 尤其是 如果你的createStatement和prepareStatement是在一个循环里面的话 就会非常容易出现这个问题 因为游标一直在不停的打开 而且没有关闭 一般来说 我们在写Java代码的时候 createStatement和prepareStatement都应该要放在循环外面 而且使用了这些Statment后 及时关闭 最好是在执行了一次executeQuery executeUpdate等之后 如果不需要使用结果集(ResultSet)的数据 就马上将Statment关闭 对于出现ORA 错误这种情况 单纯的加大open_cursors并不是好办法 那只是治标不治本 实际上 代码中的隐患并没有解除 而且 绝大部分情况下 open_cursors只需要设置一个比较小的值 就足够使用了 除非有非常特别的要求 lishixinzhi/Article/program/Oracle/201311/18963
这个端口号使用的是数据库默认的,一般都是这个,sql
server的是1433
oracle的是1521
可以改数据库的端口号的。你理解了socket就知道端口号的意思了。
首先在oracle文件下找到jdbc文件,里面的lib文件下有个class12zip
在eclipse里新建个项目,建好后在左边右击那个项目图标,选择属性(最下面的),里面有个java build path,点进去,找到add external jars按键,点一下,把那个class12zip加载进来,然后可以开始写代码了。
我的代码如下:
import javasql;
public class connect {
/
@param args
/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
ClassforName("oraclejdbcdriverOracleDriver");
}catch(ClassNotFoundException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try{
String url="jdbc:oracle:thin:@服务器ip地址:端口号:数据库名字";
String user="用户名";
String password="密码";
String str="INSERT INTO ZZZ_2 VALUES('041110018','JHDK')";
con = javasqlDriverManagergetConnection(url,user,password);
// 创建状态
stmt = concreateStatement();
// 执行SQL语句,返回结果集
//int rowcount = stmtexecuteUpdate(str);
int j = stmtexecuteUpdate("update ZZZ_2 set NAME='dbt' where ID=21");
int k = stmtexecuteUpdate("delete from ZZZ_2 where ID=41110020");
rs = stmtexecuteQuery("SELECT FROM ZZZ_2");
// 对结果集进行处理
while (rsnext()) {
int id = rsgetInt("ID");
String name = rsgetString("NAME");
//Integer age = rsgetObject("age") == null null : rsgetInt("age");
Systemoutprintln(id + ": " + name);
} }catch(SQLException e){
eprintStackTrace();}
// 释放资源
finally{
try{
rsclose();
}catch(SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
try{
stmtclose();
}catch(SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
try{
conclose();
}catch(SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
}
以上就是关于Java开发中使用Oracle数据库的注意事项全部的内容,包括:Java开发中使用Oracle数据库的注意事项、java 连接oracle数据库的问题、如何使用java对oracle数据库进行增删查改等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)