无法使用netbeans连接到derby数据库(嵌入式)

时间:2013-12-11 23:38:59

标签: java netbeans-7

    try { 
 Connection con;
 con = DriverManager.getConnection("jdbc:derby:C:/Users/family/.netbeans-derby/MyDatabase;create=true");
 System.out.println("Id");
 PreparedStatement stmt;
 stmt = con.prepareStatement("Select * from PERSON;");
 ResultSet rs=stmt.executeQuery();
 while(rs.next())
            {
              String id=rs.getString(String.valueOf("ID"));
              String name=rs.getString("NAME");
              System.out.println(id);
              System.out.println(name);
            }

        }catch (SQLException err) {
           System.out.println(err.getMessage()+ "No matching word in database");
        }

嗨,我是java derby的新手。我已经阅读了关于在netbeans中连接derby数据库(嵌入式)的论坛,但我仍然没有找到解决方案。我已经在库中添加了derby.jar和derbyclient.jar,但错误仍然是这样的,有人可以帮我修复这个错误:

错误代码:

无法使用类加载器sun.misc.Launcher$AppClassLoader@1a7bf11启动数据库'C:/Users/family/.netbeans-derby/fine',有关详细信息,请参阅下一个异常。数据库中没有匹配的单词

希望有人会回答我的问题,谢谢...... !!

1 个答案:

答案 0 :(得分:0)

首先,我认为你混淆了prepareStatement与Statment的使用 看看这个链接,你就可以了解如何学习更多知识。 Difference between Statement and PreparedStatement

其次,使用SQL查询,您无法使用prepareStatment。如果我理解你想要做什么,你的SQL查询应该是这样的。

String sql =“从PERSON WHERE Id =?中选择*”;

关于您的SQL查询的另一个问题不是要了解您使用的shcema。因为PERSON在这里没有意义,它应该像APP.PERSON

尝试查看本教程,了解如何在JDBC中使用perparStatment http://www.mkyong.com/jdbc/jdbc-preparedstatement-example-batch-update/

第三,我有一个关于我应该在哪里创建数据库的问题,所以我建议你在项目文件夹的一侧创建它。 提示,在getConncetion中使用相对路径

最后,你需要进行更多的研究,因为你弄错了。 祝你好运