PDA

View Full Version : Help me OOo Base Connection to Java Error!!!



surivcruse
24-08-2010, 05:04 PM
Driver = org.hsqldb.jdbcDriver
Url = D:\Myjava\Java\Notebbook\build\classes\notebook
user = sa
pass =
table = login


import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;


class main{

public static void main(String[] args){
try{
Statement stm;
Connection con = null;
ResultSet rs;
String db_file_name="D:\\Myjava\\Java\\Notebbook\\build\\classes\\notebook";
Class.forName("org.hsqldb.jdbcDriver");
System.out.println("load Driver OK");

con = DriverManager.getConnection("jdbc:hsqldb:file:"+db_file_name+, "sa", "");
System.out.println(con.toString());

stm = con.createStatement();
System.out.println("On Con");
System.out.println(stm.toString());

rs= stm.executeQuery("SELECT * FROM login");
System.out.println(rs.toString());

}
catch (SQLException ex)
{
Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
System.err.println(ex);
}

catch (ClassNotFoundException ex)
{
Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
System.err.println(ex);
}

catch (Exception ex)
{
Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
ex.printStackTrace();
System.err.println(ex);
}

}
}

Compiler Run
load Driver OK
org.hsqldb.jdbc.JDBCConnection@1358f03
On Con
org.hsqldb.jdbc.JDBCStatement@747fa2

SEVERE: null
java.sql.SQLException: user lacks privilege or object not found: LOGIN
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.executeQuery(Unknown Source)
at main.main(main.java:22)
Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: LOGIN
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.SchemaManager.getTable(Unknown Source)
at org.hsqldb.ParserDQL.readTableName(Unknown Source)
at org.hsqldb.ParserDQL.readTableOrSubquery(Unknown Source)
at org.hsqldb.ParserDQL.XreadTableReference(Unknown Source)
at org.hsqldb.ParserDQL.XreadFromClause(Unknown Source)
at org.hsqldb.ParserDQL.XreadTableExpression(Unknown Source)
at org.hsqldb.ParserDQL.XreadQuerySpecification(Unknown Source)
at org.hsqldb.ParserDQL.XreadSimpleTable(Unknown Source)
at org.hsqldb.ParserDQL.XreadQueryPrimary(Unknown Source)
at org.hsqldb.ParserDQL.XreadQueryTerm(Unknown Source)
at org.hsqldb.ParserDQL.XreadQueryExpressionBody(Unknown Source)
at org.hsqldb.ParserDQL.XreadQueryExpression(Unknown Source)
at org.hsqldb.ParserDQL.compileCursorSpecification(Unknown Source)
at org.hsqldb.ParserCommand.compilePart(Unknown Source)
at org.hsqldb.ParserCommand.compileStatements(Unknown Source)
at org.hsqldb.Session.executeDirectStatement(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
... 3 more
BUILD SUCCESSFUL (total time: 3 seconds)

ผมลองทำเองมา 4 วัน แล้ว ครับ ตอนนี้ไม่ไหวจริงๆ T^T

ptantiku
24-08-2010, 05:12 PM
ผมว่า file path น่าจะผิดนะ
ลองเปลี่ยนเป็น
String db_file_name="//D:/Myjava/Java/Notebbook/build/classes/notebook";
ดูนะครับ

surivcruse
24-08-2010, 05:38 PM
ลองเปลี่ยนแล้ว. . . เหมือนเดิมครับพี่ ptantiku ผมลอง รันกับตัว ExE ของ hsqldb.jar มันแล้วก็ Copy Url มาเลยหน๊ะครับในนั้นรันได้ปรกติ แต่พอมาเขียนลงใน Java แล้วมันก็ขึ้นอย่างที่เห็นหน๊ะครับ T^T

ptantiku
24-08-2010, 06:08 PM
ลองเอาไฟล์ข้อมูลมาให้ทดลองหน่อยสิครับ จะได้ลองดูว่า เกิดอะไรขึ้นอ่ะ
ผมไม่เคยเล่น hsqldb มาก่อนซะด้วย แต่เดี๋ยวจะพยายามช่วยให้ถึงที่สุดละกันนะครับ

surivcruse
27-08-2010, 09:58 AM
ขอโทษทีครับ พอดีหายไปหลายวัน บ้านแฟน ไม่มีเนต T^T อันนี้นะครับ File งานของผม 849
รบกวนช่วยดูให้หน่อยนะครับพี่ . . . . . . . . . . . . . . .

ptantiku
27-08-2010, 04:25 PM
ตกลงมันจะเป็นแบบนี้ครับ
path จะเป็นรูปแบบ

jdbc:hsqldb:file://D:/พาท์ไปถึงfolderของDB/ชื่อของDB

ในเคสนี้ก็จะเป็น
jdbc:hsqldb:file://D:/Myjava/Java/Notebbook/build/classes/notebook/notebook

ถ้า ใน D:/Myjava/Java/Notebbook/build/classes/notebook เป็น folder ที่มีไฟล์ของdatabaseทั้ง 4 Files (notebook.script, notebook.properties, notebook.log, notebook.lck)

แล้วก็มีอีกจุดที่ต้องแก้คือ คำว่า login, id, pass น่าจะเป็นคำสงวนในdatabaseตัวนี้
ดังนั้นเวลาเขียน SQL ต้องเขียนเป็น
SELECT "id", "user", "pass" FROM "login"

ไฟล์แนบ
850

surivcruse
28-08-2010, 12:25 PM
ได้แล้วครับพี่ ptantiku ^3^ เป็นปลื้มที่สุด ไม่ได้พี่นี่ผมงานเข้าแน่ๆเลยอะ ลืมนึกถึงเรื่อง SQL ไป สนิทเลยอะพี่ T^T

load Driver OK
org.hsqldb.jdbc.JDBCConnection@d17ec3
On Con
org.hsqldb.jdbc.JDBCStatement@af72d8
SELECT "id","user","pass" FROM "login";
BUILD SUCCESSFUL (total time: 2 seconds)