我尝试运行一些Java类InsertApp,该类应将现有表MYTABELLE22推入几行。 我从控制台得到异常表不存在。
import java.sql.*;
public class InsertApp {
public static void main(String [] args) {
Connection con = null;
try {
con = DriverManager.getConnection(
"jdbc:derby:/Users/apolit/DerbyDatenbank;create=true");
Statement sta = con.createStatement();
// insert 3 rows
int count = 0;
int c = sta.executeUpdate("INSERT INTO MyTabelle22"
+ " (ID, MYKEY, CONTENT)"
+ " VALUES (1, 1, 'Bellevue')");
count = count + c;
c = sta.executeUpdate("INSERT INTO MyTabelle22"
+ " (ID, MYKEY, CONTENT)"
+ " VALUES (2, 2, 'Hull')");
count = count + c;
c = sta.executeUpdate("INSERT INTO MyTabelle22"
+ " (ID, MYKEY, CONTENT)"
+ " VALUES (3, 2, 'W. York')");
count = count + c;
System.out.println("Number of rows inserted: "+count);
sta.close();
con.close();
} catch (Exception e) {
System.err.println("Exception: "+e.getMessage());
}
}
}
答案 0 :(得分:1)
当您认为已经创建表时,“表不存在”的三个常见原因:
您正在连接的数据库与您认为要连接的数据库不同,并且由于在连接URL上指定了“ create = true”,因此Derby悄悄为您创建了一个新的空数据库。
< / li>如果您正在使用Derby的“内存中”配置,这意味着当数据库关闭(或您的应用程序退出)时,数据库的所有内容都会消失。
您以其他用户身份连接到数据库,并且您 不会发出SET SCHEMA语句,所以您正在使用它们 默认架构名称,该名称基于您的用户名,因此 两个模式是不同的,并且具有完全不同的表,因此 当您使用其他表格时,您创建的表格似乎不存在 模式。