Java连接Oracle10g

chenkoviky 2009-03-21 05:03:56
我用Java成功的连接了Oracle10g,但是不能对STUDENT表中的数据进行删除操作,太郁闷了,心里难受啊!
刚学Java不久,属于菜鸟级别,自己实力有限解决不了,真诚地寻求诸位高手帮助!万分感谢!

这是我连接Oracle10g的代码(能顺利连接上,但是不能够删除表中的数据)
================
import java.sql.*;
public class OralConnect
{
public static Connection getConnection()
{
Connection con = null;
try
{
Class.forName("oracle.jdbc.driver.OracleDriver"); // 加载驱动类
String sourceURL = "jdbc:oracle:thin:@localhost:1521:student";
String user = "STUDENT_USER";//我新建的用户
String password = "chenwei";//密码
con = DriverManager.getConnection( sourceURL, user, password); // 建立连接
con.close();
}
catch (Exception e)
{
e.printStackTrace();
}

return con;
}
public static void main(String[] args)
{
System.out.println(getConnection());//测试是否连接上
}
}
运行的结果是:
oracle.jdbc.driver.T4CConnection@13f3045
======================
这是我删除sys.student表里的数据的代码
附加student表(在SYS用户下)的结构:

SNO (学号)约束:SNO between "071301" and "071343" 非空
SNAME(姓名) 非空
SSEX(性别)约束:SSEX in ('男','女') 非空
SBIRTH(生日)DATE类型 非空
SADDR(住址) 非空
STEL(电话号码) 非空
SMAJOR(专业) 非空

import java.sql.PreparedStatement;
import connect.OralConnect;
public class Delete
{
public boolean delete(String sno)
{
Connection con=null;
PreparedStatement ps=null;
String sql="delete from sys.student where sno=?";
boolean flag=false;
try
{
con=OralConnect.getConnection();
ps=con.prepareStatement(sql);
ps.setString(1, sno);
int count=ps.executeUpdate();
if(count>0)
flag=true;
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
ps.close();
con.close();
}
return flag;
}

public static void main(String[] args)
{
System.out.println((new Delete()).delete("071305")?"删除记录成功!": "删除记录失败!");
}
}
=============
运行的结果是:
java.sql.SQLException: 关闭的连接
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:161)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:226)
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:697)
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:614)
at Delete.Delete.delete(Delete.java:17)
at Delete.Delete.main(Delete.java:45)
删除记录失败!
...全文
317 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
btq123 2009-07-16
  • 打赏
  • 举报
回复
2楼的正解。

你数据库连上了就关了。后面的操作肯定没效
chenkoviky 2009-03-21
  • 打赏
  • 举报
回复
非常感谢兄弟的帮忙,现在我做出来了!谢谢啊
chenkoviky 2009-03-21
  • 打赏
  • 举报
回复
非常感谢兄弟的回答!我现在知道了!谢谢啊
chenkoviky 2009-03-21
  • 打赏
  • 举报
回复
非常感谢3楼的提示!谢谢啊
小弟现在知道怎么做了
Wbl314 2009-03-21
  • 打赏
  • 举报
回复
finally
{
ps.close();
con.close();
}
要捕获异常吧
lakesea 2009-03-21
  • 打赏
  • 举报
回复
你的连接应该在ps.close();之后关闭
lakesea 2009-03-21
  • 打赏
  • 举报
回复
import java.sql.*;
public class OralConnect
{
public static Connection getConnection()
{
Connection con = null;
try
{
Class.forName("oracle.jdbc.driver.OracleDriver"); // 加载驱动类
String sourceURL = "jdbc:oracle:thin:@localhost:1521:student";
String user = "STUDENT_USER";//我新建的用户
String password = "chenwei";//密码
con = DriverManager.getConnection( sourceURL, user, password); // 建立连接
con.close();
}
catch (Exception e)
{
e.printStackTrace();
}

return con;
}
public static void main(String[] args)
{
System.out.println(getConnection());//测试是否连接上
}
}


你把链接都关闭了,怎么可能删除呢?
aspire4262 2009-03-21
  • 打赏
  • 举报
回复
顶一个………………………………

23,405

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧