我是新成員。我一直在努力與sqlitejdbc,我想。 我從一個java程序查詢sqlite數據庫。我得到了上面的異常。 我的查詢是SQLException:沒有這樣的列
select *
from ( person as p
inner join company as c on p.p_id=c.p_id
)
inner join contact as ct on p.p_id=ct.p_id
where p.p_id=?;
當我穿上navicatLite編輯查詢放置p.p_id = '1',而不是p.p_id =? ,我很好。它向我展示了正確的價值。
但是從我的java程序。我得到了這個例外。
Exception in thread "main" java.sql.SQLException: no such column: p.p_id at org.sqlite.DB.throwex(DB.java:288) at org.sqlite.NativeDB.prepare(Native Method) at org.sqlite.DB.prepare(DB.java:114) at org.sqlite.PrepStmt.(PrepStmt.java:37) at org.sqlite.Conn.prepareStatement(Conn.java:231) at org.sqlite.Conn.prepareStatement(Conn.java:224) at org.sqlite.Conn.prepareStatement(Conn.java:213) at programTest.test.main(test.java:19) Java Result: 1
我確定存在person表和p_id字段。我在這個網站上搜索了這樣的問題,但是我發現了與rails上的ruby相關的問題,而不是java。我不知道什麼是錯的。
我的Java程序是
import java.sql.*;
/**
*
* @author Htet 101
*/
public class test {
public static void main(String[] args) throws Exception {
Class.forName("org.sqlite.JDBC");
Connection conn =
DriverManager.getConnection("jdbc:sqlite://C://Users//Htet 101//Documents//addressbook.s3db");
PreparedStatement stat = conn.prepareStatement("select * from (person as p inner join company as c on p.p_id=c.p_id) inner join contact as ct on p.p_id=ct.p_id where p.p_id=?;");
stat.setInt(1, 1);
ResultSet rs = stat.executeQuery();
while (rs.next()) {
System.out.print("Name : " + rs.getString("p_name") + " ");
}
rs.close();
conn.close();
}
}
我使用NetBeans 6.9.1,3.7.8的SQLite,SQLiteJDBC v056開發它。
你可以在這裏張貼表嗎? –