首页 > 解决方案 > 如何从 JavaDB 中读取数据

问题描述

我试图创建一个简单的 Java 应用程序,该应用程序将从 JavaDB 读取数据。目的是从数据库中获取第一个“UNAME”变量并将其分配给“user”变量并打印出来。

package giris;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 *
 * @author Ibrahim
 */
public class Giris {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        String user = "";

        System.out.println("hello world");
        try 
        { 
            System.out.println("connecting to database");    
            Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/deneme", "ASD", "asd");
            System.out.println("succesfully connected");
            PreparedStatement pr = con.prepareStatement("select UNAME from ASD.Table1");

            ResultSet rs = pr.executeQuery();

            while(rs.next())
            {

            user = rs.getString(0);
            }
        }
        catch(Exception e)
        {
            System.err.println("error");
        }
        System.out.println(user);
    }

}

这就是我的数据库的样子

但是,当我运行应用程序时,输出是这样的:

run:
hello world
connecting to database

error
BUILD SUCCESSFUL (total time: 0 seconds)

标签: javajavadb

解决方案


您正确使用了它,可能是错误的数据库详细信息。

顺便说一句,永远不要像这样使用 catch 块,你会丢失存储在e中的信息。

使用以下代码获取更多信息:

public static void yourMethod()
{
    try
    {
        // Some code...
    }
    catch(Exception e)
    {
        logError("Got exception during...", e);
    }
}

public static void logError(String message, Throwable e)
{
    StringWriter sw = new StringWriter();
    PrintWriter pw = new PrintWriter(sw);
    e.printStackTrace(pw);

    logError(message + "\n" + sw.toString());
}

public static void logError(String message)
{
    System.err.println("[ERROR] " + message);
}

推荐阅读