首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLException处理

SQLException处理
EN

Stack Overflow用户
提问于 2015-04-27 06:10:33
回答 1查看 720关注 0票数 0

我正在尝试运行一个简单的Java程序,它从oracle数据库中获取数据并显示它。我连接了甲骨文数据库。这是我的代码:

DataHandler类:

代码语言:javascript
复制
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
import oracle.jdbc.pool.OracleDataSource;

public class DataHandler {
    public DataHandler() {
        super();
    }
    String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";
    //I already added the above line but still getting error.
    String userid = "scott";
    String password = "tiger"; 
    Connection conn;

    public void getDBConnection() throws SQLException{
        OracleDataSource ds;
        ds = new OracleDataSource();
        ds.setUser(jdbcUrl);
        conn = ds.getConnection(userid,password); 
    }

    Statement stmt;
    ResultSet rset;
    String query;
    String sqlString;

    public ResultSet getAllEmployees() throws SQLException{ 
        getDBConnection(); 
        stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
        query = "SELECT * FROM emp ORDER BY empno";
        System.out.println("\nExecuting query: " + query);
        rset = stmt.executeQuery(query); 
        return rset;
    }
}

JavaClient类作为JavaCLient CLass:

代码语言:javascript
复制
import java.sql.ResultSet;
public class JavaClient {
    public JavaClient() {
        super();
    }
    public static void main(String[] args) throws Exception{
        DataHandler datahandler = new DataHandler();
        ResultSet rset = datahandler.getAllEmployees();

        while (rset.next()) {
        System.out.println(rset.getInt(1) + " " +
          rset.getString(2) + " " + 
          rset.getString(3) + " " + 
          rset.getString(4));
        }
    }
}

我没有编译错误,但是在运行时我得到了以下异常错误

错误:

代码语言:javascript
复制
Exception in thread "main" java.sql.SQLException: Invalid Oracle URL specified: OracleDataSource.makeURL
at oracle.jdbc.pool.OracleDataSource.makeURL(OracleDataSource.java:1277)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:185)
at student_attendence_iem.DataHandler.getDBConnection(DataHandler.java:22)
at student_attendence_iem.DataHandler.getAllEmployees(DataHandler.java:31)
at student_attendence_iem.JavaClient.main(JavaClient.java:9)

退出代码1退出的进程。

请帮帮我。提前谢谢。:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-27 06:35:37

您尚未设置数据库的URL。

添加以数据库URL为参数的setURL(url)方法。下面是密码。

代码语言:javascript
复制
OracleDataSource ds;
    ds = new OracleDataSource();
    ds.setURL(jdbcUrl);

此外,使用ds.setUser(jdbcUrl);时,您正在尝试使用数据库的URL (这是错误的)使用setUser。

您不必像这样setUser,因为您已经在下面的代码行中这样做了

conn = ds.getConnection(userid,password);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29888381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档