我使用netbeans 7服务创建了一个java db数据库,我使用java嵌入式驱动程序连接到java db。 我可以在java数据库的连接下找到我的数据库,在一个名为ROOT的模式下。
这是我的java数据库连接名称:
jdbc:derby:AddressBook [root on ROOT]
但是,当我尝试在我的项目中使用该模式时,我得到一个说明
的异常Caused by: ERROR 42Y07: Schema 'ROOT' does not exist
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getSchemaDescriptor(Unknown Source)
.....
select语句中出现错误。我该怎么做才能让它在项目中可读?
这是我的代码:
private static final String URL = "jdbc:derby:AddressBook";
private static final String USERNAME = "root";
private static final String PASSWORD = "cs101";
private Connection connection = null; // manages connection
private PreparedStatement selectAllPeople = null;
private PreparedStatement selectPeopleByLastName = null;
private PreparedStatement insertNewPerson = null;
// constructor
public PersonQueries()
{
try
{
connection =
DriverManager.getConnection( URL, USERNAME, PASSWORD );
// create query that selects all entries in the AddressBook
selectAllPeople =
connection.prepareStatement( "SELECT * FROM ROOT.Addresses" )
答案 0 :(得分:2)
在创建连接之前尝试放置此代码
Class.forName("org.apache.derby.jdbc.ClientDriver")
答案 1 :(得分:0)
使用嵌入式derby时,nb已将数据库放在特定位置。在我的NB 7.2安装中它默认为:C:\ Users \ James.netbeans-derby。您需要通过设置derby home属性来确保您的应用正在读取相同的db文件:
System.setProperty("derby.system.home", "C:\Users\James\.netbeans-derby");
或者像这样:
System.setProperty("derby.system.home",
System.getProperty("user.home")+".netbeans-derby");
祝你好运!
答案 2 :(得分:0)
从Derby数据库的属性中获取完整URL并获取解决问题的连接