java嵌入式derby表/视图
我创建了嵌入式Derby数据库,但它给了我一个错误java嵌入式derby表/视图,java,derby,embedding,Java,Derby,Embedding,我创建了嵌入式Derby数据库,但它给了我一个错误 java.sql.SQLSyntaxErrorException: Table/View 'REST' does not exist. at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source
java.sql.SQLSyntaxErrorException: Table/View 'REST' does not exist.
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
下面是java类:
public class Main
{
private static String dbURL = "jdbc:derby:tes;create=true";
private static String tableName = "REST";
// jdbc Connection
private static Connection conn = null;
private static Statement stmt = null;
public static void main(String[] args)
{
createConnection();
insertRestaurants(5, "LaVals", "Berkeley");
selectRestaurants();
shutdown();
}
private static void createConnection()
{
try
{
// System.setProperty("derby.system.home", "/Users/myuser/futbol");
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
//Get a connection
conn = DriverManager.getConnection(dbURL);
}
catch (Exception except)
{
except.printStackTrace();
}
}
private static void insertRestaurants(int id, String restName, String cityName)
{
try
{
stmt = conn.createStatement();
stmt.execute("insert into REST values (" +
id + ",'" + restName + "','" + cityName +"')");
stmt.close();
}
catch (SQLException sqlExcept)
{
sqlExcept.printStackTrace();
}
}
}
表名区分大小写。确保您创建的表实际上被称为“REST”,并带有所有大写字母,或者是“REST”或“REST”.从Derby教程开始,您可能会发现学习Derby更容易:我在嵌入式db上遇到了同样的问题,最终解决了同样的问题。这肯定会帮助您检查这个问题。我知道我在这方面落后了四年,但我最终发现了我是如何解决问题的(因此我在这个线程上的原因) 我使用数据库脚本编辑器创建了表。我在桌子周围用了双引号。当我转到服务选项卡(netbeans)并右键单击我的表以查看数据时,我发现了这一点。我明白了:
select * from {schema}."{table}"
所以,我想我会把它翻译成我的java。还有,宾果。
希望这能对你的应用程序有所帮助,我复制并粘贴了你的一些代码,希望这能起作用
public class Db {
private final String url = "jdbc:derby://localhost:1527/{db}";
private final String tab = "{schema}.\"REST\"";
private static Connection createConnection() throws Exception {
Connection conn = null;
conn = DriverManager.getConnection(url);
return conn;
}
private static void insertRestaurants(int id, String restName, String cityName)
{
try
{
Connection conn = createConnection();
stmt = conn.createStatement();
stmt.execute("insert into " + table + " values (" +
id + ",'" + restName + "','" + cityName +"')");
stmt.close();
}
catch (SQLException sqlExcept)
{
sqlExcept.printStackTrace();
}
}
}
干杯 一个简单的例子@。希望它能有所帮助我使用Eclipse进行了以下修复: (在数据库透视图中:窗口>透视图>打开透视图>其他>数据库开发),右键单击数据库连接文件夹>新建>Derby: 您必须确保“Database Location”文件夹与(编辑驱动程序定义>jar列表)中提到的Derby.jar位置相同。如下图所示:
希望这有帮助 是的,这两个都是大写,但仍然给我相同的错误,尽管当我在db中右键单击并选择execute command时,它可以正常工作。但在java中,它给出了这个错误。当使用双引号创建表名时,表名只区分大小写。至少这是标准要求的,据我所知,德比符合标准,谢谢你的评论!我不知道表格是区分大小写的。