如何从 JavaDB 读取数据

How to Read Data From 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);
    }

}

This is how my DB looks like

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

run:
hello world
connecting to database

error
BUILD SUCCESSFUL (total time: 0 seconds)

您使用正确,可能是错误的 DB 详细信息。

顺便说一句,永远不要那样使用 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);
}

加载驱动class逻辑缺失,请补充

Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();

将此 derbyclient-10.2.2.0.jar 添加到 classpath

希望对您有所帮助