2015-01-31 38 views
-1

您好我需要在我的程序幫助我需要vérifier登錄從我的數據庫hsqldb訪問我的程序在mysql中一切都很好蝙蝠在hsqldb不想工作在所有 我使用hsqldb是內存數據庫這是我的代碼我使用使用hsqldb登錄到程序java?

連接到數據庫:

Connection conn = null; 

private static final String USERNAME = "root"; 
private static final String PASSWD = "toor"; 
private static final String CONN_STRING ="jdbc:hsqldb:Data/explorecalifornia"; 

public static Connection Conne_HSQLDB(){ 


     try { 
      Connection conn = DriverManager.getConnection(CONN_STRING,USERNAME,PASSWD); 
      System.out.println("Connected"); 
      return conn; 

      }catch(SQLException e){ 
       JOptionPane.showMessageDialog(null,e.getMessage()+ "\nCode: " + e.getErrorCode()); 
       return null; 
     } 
    } 

進行登錄,這是我的代碼

if(UserTFD.getText().length()==0 || PassTFD.getText().length()==0){ 
       JOptionPane.showMessageDialog(null, "un champ est vider !"); 
      }else{ 


       String sql = "select * from LOGIN WHERE USERNAME=? and PASSWORD=?"; 
      try(
        Connection conn=ConxDB.Conne_HSQLDB(); 
        PreparedStatement pst=conn.prepareStatement(sql); 


        ){ 
         pst.setString(1, UserTFD.getText()); 
         pst.setString(2, PassTFD.getText()); 
         ResultSet rs = pst.executeQuery(); 

       if(rs.next()){ 
         dispose(); 
         new SettingGUI().setVisible(true); 
        } 
       } catch (Exception e) { 
        System.out.println(e.getMessage()); 
       } 


      } 

和消息ERREUR是

user lacks privilege or object not found: LOGIN 

爲我的數據庫,這是我的代碼

SET DATABASE UNIQUE NAME HSQLDB397995F7ED 
SET DATABASE GC 0 
SET DATABASE DEFAULT RESULT MEMORY ROWS 0 
SET DATABASE EVENT LOG LEVEL 0 
SET DATABASE SQL NAMES FALSE 
SET DATABASE SQL REGULAR NAMES TRUE 
SET DATABASE SQL REFERENCES FALSE 
SET DATABASE SQL SIZE FALSE 
SET DATABASE SQL TYPES FALSE 
SET DATABASE SQL TDC DELETE TRUE 
SET DATABASE SQL TDC UPDATE TRUE 
SET DATABASE SQL TRANSLATE TTI TYPES TRUE 
SET DATABASE SQL CONCAT NULLS TRUE 
SET DATABASE SQL NULLS FIRST TRUE 
SET DATABASE SQL UNIQUE NULLS TRUE 
SET DATABASE SQL CONVERT TRUNCATE TRUE 
SET DATABASE SQL AVG SCALE 0 
SET DATABASE SQL DOUBLE NAN TRUE 
SET DATABASE SQL LONGVAR IS LOB FALSE 
SET DATABASE TRANSACTION CONTROL LOCKS 
SET DATABASE DEFAULT ISOLATION LEVEL READ COMMITTED 
SET DATABASE TRANSACTION ROLLBACK ON CONFLICT TRUE 
SET DATABASE TEXT TABLE DEFAULTS '' 
SET FILES WRITE DELAY 20 
SET FILES BACKUP INCREMENT FALSE 
SET FILES CACHE SIZE 10000 
SET FILES CACHE ROWS 50000 
SET FILES SCALE 1 
SET FILES LOB SCALE 32 
SET FILES DEFRAG 0 
SET FILES NIO TRUE 
SET FILES NIO SIZE 256 
SET FILES LOG TRUE 
SET FILES LOG SIZE 200 
CREATE USER SA PASSWORD DIGEST 'd41d8cd98f00b204e9800998ecf8427e' 
CREATE USER "root" PASSWORD DIGEST '7b24afc8bc80e548d66c4e7ff72171c5' 
CREATE SCHEMA PUBLIC AUTHORIZATION DBA 
SET SCHEMA PUBLIC 
CREATE MEMORY TABLE PUBLIC.LOGIN(ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,USERNAME VARCHAR(40),PASSWORD VARCHAR(40)) 
ALTER TABLE PUBLIC.LOGIN ALTER COLUMN ID RESTART WITH 3 
ALTER SEQUENCE SYSTEM_LOBS.LOB_ID RESTART WITH 1 
SET DATABASE DEFAULT INITIAL SCHEMA PUBLIC 
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.YES_OR_NO TO PUBLIC 
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.TIME_STAMP TO PUBLIC 
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.CARDINAL_NUMBER TO PUBLIC 
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.CHARACTER_DATA TO PUBLIC 
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.SQL_IDENTIFIER TO PUBLIC 
GRANT DBA TO SA 
GRANT DBA TO "root" 
SET SCHEMA PUBLIC 
INSERT INTO LOGIN VALUES(1,'root','toor') 
INSERT INTO LOGIN VALUES(2,'onee','onee') 

回答

0

您應該使用HSQLDB服務器的數據庫並連接到該服務器的查詢。

像你這樣的設置通常的問題是:根據購買過程的啓動目錄數據庫路徑:

  1. 每個Java程序interpretes相關文件。這可能會創建一個空的數據庫。您可以通過將;ifexists=true添加到連接URL的末尾來避免此情況。看到這個http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html#dpc_connection_props
  2. 從多個java進程同時直接訪問文件:數據庫是不可能的。

運行服務器可讓您可靠地從不同的進程進行連接。

+0

認爲有幫助 – 2015-02-01 14:29:43