java应用程序操作oracle数据库的问题

java应用程序和oracle数据库连接成功,我自己建了一个BOOKSTORE的数据库,BOOKS是BOOKSTORE数据库下的一个表,我想往表中添加数据,但是不知道怎样连接上这个数据库,下面是部分代码:
import java.sql.*;
public class Oracle_Connection {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
Connection conn=DriverManager.getConnection(url,"DBSNMP","123456");
Statement stmt=conn.createStatement();
String sql="INSERT INTO BOOKS(id,name) VALUES(1,'王刚')";
int result=stmt.executeUpdate(sql);
System.out.println(result);
stmt.close();
conn.close();
}
}

我试过用BOOKSTORE.BOOKS形式定位BOOKSTORE数据库也不行
怎么办??

import java.sql.*;
public class TextOracle_AddTemplate {
public static void main(String ags[]){
add();
}
public static void add(){
Connection ct = null;//与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果
PreparedStatement ps = null;//表示预编译的 SQL 语句的对象。
ResultSet rs = null;//表示数据库结果集的数据表,通常通过执行查询数据库的语句生成
try{
//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//得到连接
ct=DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.100:1521:allence","system","zhanshen");//"jdbc:oracle:thin:@ip地址:端口号:数据库名称","用户名"密码"
//创建PreparedStatement接口引用对象
ps=ct.prepareStatement("insert into emp(empno,ename)values(8888,'xiaoming')");//填写SQL语句<仅限制删除,增加更新语句>
System.out.println(ps);
//完成查询
ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();//打印异常信息
throw new RuntimeException(e.getMessage());//抛出异常
}finally{
if(rs!=null){
try{
rs.close();
}catch(SQLException e){
e.printStackTrace();
}
rs = null;

}
if(ps!=null){
if(rs!=null){
try{
ps.close();
}catch(SQLException e){
e.printStackTrace();
}
ps = null;
}
if(ct!=null){
try{
ct.close();
}catch(SQLException e){
e.printStackTrace();
}
ps=null;
}
}
}
}
直接给你个用来控制增删改的模版 ,其实可以把增删改查的方法写到一个类里面的然后用另外一个类来控制整个程序,如果不这样做以后增加功能的时候可能会对整个程序造成一定的影响追问

我不知道你有没有看我的问题,好像没说怎么解决我的问题,allence是实例名吗还是数据库名,emp表是在那个数据库下的??

追答

allence是我的数据库DB实例你把这个改成你的实例名就行了,emp表示我在我的数据库下做测试建的一张表,后面我都注释说清楚了啊

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-08
1、把错误贴出来,才能针对你的代码诊断出你的问题所在。
2、做insert,update,delete的时候一般都用Preparedstatemen,查询用statement。
3、试试这个
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
Connection con=DriverManager.getConnection(url, "DBSNMP", "123456");
Preparedstatemen ps=conn.preparedStatement(sql);
int succ=ps.executeUpdate();
if(succ>-1) out.println("插入成功");
conn.close();

4、记得下载oracle jdbc驱动jar包,放到WEB-INF/lib下
第2个回答  2012-11-02
BOOKSTORE 是数据库实例还是一个用户,oracle中是以用户来进行管理的,如果你是在BOOKSTORE下建立的表,那么BOOKSTORE应该是一个用户名吧

String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
Connection conn=DriverManager.getConnection(url,"BOOKSTORE","你的密码");

INSERT操作追问

BOOKSTORE就是我建的一个表空间,我试过那样不行

第3个回答  2012-11-13
Connection con=null;
PreparedStatement pstm=null;
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl",用户名,密码);
try {
pstm=con.prepareStatement("INSERT INTO BOOKS(id,name) VALUES(1,'王刚')");
if(pstm.executeUpdate()>0)
{
System.out.print("插入成功");
}else{
System.out.print("插入失败!");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
第4个回答  2012-11-02
String url="jdbc:oracle:thin:@127.0.0.1:1521:BOOKSTORE";
如果你的数据库的实例名字是BOOKSTORE,url这个地方就应该写成BOOKSTORE吧。追问

我这样试过了,这样连Database Driver都不能建立

追答

那BOOKSTORE是什么呢?是用户名吗?要是用户名,这句就需要改,
Connection conn=DriverManager.getConnection(url,"BOOKSTORE","123456");

追问

BOOKSTORE就是我建的一个表空间 我试过那样也不行

相似回答