package Lesson1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;public class DBAccess {
private static String url = "jdbc:oracle:thin:@localhost:1521:WUDB";
private static String username = "WORACLE";
private static String password  = "123";
// private static String insertStr = "insert into students values(111,'张三')";
public static void main(String args[]){
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
// Connection con = DriverManager.getConnection(url, username ,password);
// PreparedStatement pstmt = con.prepareStatement(insertStr);
// pstmt.executeUpdate();
System.out.println("数据库连接成功!");
}
catch (Exception e){
e.printStackTrace();
}
}}假如把注释去掉的话,它连接数据库就成功!我想往我的oracle数据库增加一条数据,执行的时候可是报告错误如下:
java.sql.SQLException: ORA-00942: 表或视图不存在 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3316)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3400)
at Lesson1.DBAccess.main(DBAccess.java:16)
我的文件是这样的:
首先我建立一张表(在我的pl\SQL(它与我的oracle数据库相关联的)里面)
create table students (
sid     varchar2(5),
fname   varchar2(20),
lname   varchar2(20)   not  null,
minit   char,
primary key (sid));
表里面的内容在我的pl\SQL 里面有,只是我没有增加任何数据在表里面!
帮我看看到底是什么问题哈!

解决方案 »

  1.   

    package Lesson1;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;public class DBAccess {
    private static String url = "jdbc:oracle:thin:@localhost:1521:WUDB";
    private static String username = "WORACLE";
    private static String password  = "123";
    // private static String insertStr = "insert into students values(111,'张三')";
    public static void main(String args[]){
    try{
    Class.forName("oracle.jdbc.driver.OracleDriver");
    // Connection con = DriverManager.getConnection(url, username ,password);
    // PreparedStatement pstmt = con.prepareStatement(insertStr);
    // pstmt.executeUpdate();
    System.out.println("数据库连接成功!");
    }
    catch (Exception e){
    e.printStackTrace();
    }
    }} 这样看起来方便些..
      

  2.   

    你把注释的地方去掉  根本就没连接到数据库.  只是加载了一下 jdbc驱动.  驱动加载完毕了  他肯定会打印链接成功..看打印内容来看 还是没有找到 你的students 表.. 确定他在里面了应该就可以了.
      

  3.   

    确认 students 是不是在 WUDB 数据库下面?
      

  4.   

    为什么我们老师就是这样连接到他的数据库的啊?我只是把他的程序回来套用在我的电脑上,我的数据库的students表是存在的啊?
      

  5.   

    你在 Oracle的控制台 去建表吧..            这样就不会出错了. 还有一个可能..就是你的students在不在WUDB 这个数据库里面. 不在的话也是白搭..(我强烈怀疑他没在这个数据库里面..)
      

  6.   

    这个students表在pl\SQL里面有,但是我在WUDB怎么找不到啊,我的pl\SQL与数据库是关联的啊?
      

  7.   

    如果我在Oracle的控制台里再重建这张表,不会有什么别的问题吧?
      

  8.   

    create table students (
    sid    varchar2(5),
    fname  varchar2(20),
    lname  varchar2(20)  not  null,
    minit  char,
    primary key (sid)); 这是你的表结构,那你觉得insert into students values(111,'张三')这样些insert插入语句可以吗?去看一下数据库原理,里面会将为什么。
    正确的写法是:insert into students(sid,fname) values(111,'张三')
      

  9.   

    终于可以插入数据,而且可以在我的pl\SQL里面查询出来,但是在Java程序里面显示:java.sql.SQLException: ORA-00001: 违反唯一约束条件 (WORACLE.SYS_C003008)
    这是怎么回事?怎样修改就没事啦?