Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.17 KB | None | 0 0
  1. package net.samrickard.apps.accounts;
  2.  
  3. import javafx.application.Application;
  4. import javafx.fxml.FXMLLoader;
  5. import javafx.scene.Parent;
  6. import javafx.scene.Scene;
  7. import javafx.stage.Stage;
  8. import net.samrickard.apps.accounts.database.Database;
  9.  
  10. public class App extends Application {
  11.  
  12. @Override
  13. public void start(Stage primaryStage) throws Exception{
  14. Parent root = FXMLLoader.load(getClass().getResource("UI.fxml"));
  15. primaryStage.setTitle("Accounting Manager");
  16. primaryStage.setMinWidth(1000);
  17. primaryStage.setMinHeight(600);
  18. primaryStage.setScene(new Scene(root, 1000, 600));
  19. primaryStage.setMaximized(true);
  20. primaryStage.show();
  21.  
  22. }
  23.  
  24.  
  25. public static void main(String[] args) {
  26. Database database;
  27. database = new Database("ACCOUNTS");
  28. database.createStatement("INSERT INTO PUBLIC.ACCOUNTS VALUES (DEFAULT, 'SamTest','20102846','Sam',1000000.25)");
  29. database.disconnectDatabase();
  30. launch(args);
  31. }
  32. }
  33.  
  34. package net.samrickard.apps.accounts.database;
  35.  
  36. import java.sql.*;
  37.  
  38. public class Database {
  39.  
  40. private String dbname;
  41. public Connection con;
  42. private String username;
  43. private String password;
  44.  
  45. public Database(String dbname){
  46. connectToDatabase(dbname,"SA","");
  47. }
  48.  
  49. /**
  50. * This is the code to connect to the database. The database must be in the res/database folder
  51. * @param dbname This is the database name
  52. * @param username This is the username of the database
  53. * @param password This is the password of the database
  54. * @return has the SQL been successful
  55. */
  56.  
  57. public boolean connectToDatabase(String dbname, String username, String password){
  58. this.username=username;
  59. this.password=password;
  60. try{
  61. Connection con = DriverManager.getConnection("jdbc:hsqldb:file:database/"+dbname, username, password);
  62. this.con = con;
  63. this.dbname = dbname;
  64. System.out.println("Connection to database "+dbname+" was successful.");
  65. return true;
  66. }catch(SQLException e){
  67. System.out.println("Error connecting to database "+dbname+". Error: "+e);
  68. return false;
  69. }
  70. }
  71.  
  72. /**
  73. * This is the function used to disconnect from a database
  74. * @return has the SQL been successful
  75. */
  76.  
  77. public boolean disconnectDatabase(){
  78. try{
  79. con.commit();
  80. con = DriverManager.getConnection("jdbc:hsqldb:file:database/"+dbname+";shutdown=true", username, password);
  81. System.out.println("Disconnection from database "+dbname+" was successful.");
  82. return true;
  83. }catch(SQLException e){
  84. System.out.println("Error disconnecting from database "+dbname+". Error: "+e);
  85. return false;
  86. }
  87. }
  88.  
  89. /**
  90. * This is the code to run a SQL statement to the database
  91. * @param sqlstatement this is the statement that will be run but cannot be a query as the query needs a result set. Use the query function for running a query to get a result set.
  92. * @return has the SQL been successful
  93. */
  94.  
  95. public boolean createStatement(String sqlstatement){
  96. try{
  97. Statement statement = con.createStatement();
  98. statement.execute(sqlstatement);
  99. System.out.println("Successfully created statement: "+sqlstatement);
  100. return true;
  101. }catch (SQLException e) {
  102. System.out.println("Failed to create and execute statement for following reason: n"+e);
  103. return false;
  104. }
  105. }
  106.  
  107. /**
  108. * This is used to run an SQL query. This function is used to obtain results from a statement.
  109. * @param sqlQuery this is the Query that will be executed
  110. * @return has the SQL been successful
  111. */
  112.  
  113. public ResultSet createQuery(String sqlQuery){
  114. ResultSet results;
  115. try{
  116. Statement statement = con.createStatement();
  117. results = statement.executeQuery(sqlQuery);
  118. System.out.println("Successfully created Query: "+sqlQuery);
  119. return results;
  120. }catch (SQLException e) {
  121. System.out.println("Failed to create and execute query for following reason: n"+e);
  122. return null;
  123. }
  124. }
  125. }
  126.  
  127. SET DATABASE UNIQUE NAME HSQLDB5E3E63937E
  128. SET DATABASE GC 0
  129. SET DATABASE DEFAULT RESULT MEMORY ROWS 0
  130. SET DATABASE EVENT LOG LEVEL 0
  131. SET DATABASE TRANSACTION CONTROL LOCKS
  132. SET DATABASE DEFAULT ISOLATION LEVEL READ COMMITTED
  133. SET DATABASE TRANSACTION ROLLBACK ON CONFLICT TRUE
  134. SET DATABASE TEXT TABLE DEFAULTS ''
  135. SET DATABASE SQL NAMES FALSE
  136. SET DATABASE SQL REFERENCES FALSE
  137. SET DATABASE SQL SIZE TRUE
  138. SET DATABASE SQL TYPES FALSE
  139. SET DATABASE SQL TDC DELETE TRUE
  140. SET DATABASE SQL TDC UPDATE TRUE
  141. SET DATABASE SQL TRANSLATE TTI TYPES TRUE
  142. SET DATABASE SQL TRANSLATE TTI TYPES TRUE
  143. SET DATABASE SQL CONCAT NULLS TRUE
  144. SET DATABASE SQL UNIQUE NULLS TRUE
  145. SET DATABASE SQL CONVERT TRUNCATE TRUE
  146. SET DATABASE SQL AVG SCALE 0
  147. SET DATABASE SQL DOUBLE NAN TRUE
  148. SET FILES WRITE DELAY 500 MILLIS
  149. SET FILES BACKUP INCREMENT TRUE
  150. SET FILES CACHE SIZE 10000
  151. SET FILES CACHE ROWS 50000
  152. SET FILES SCALE 32
  153. SET FILES LOB SCALE 32
  154. SET FILES DEFRAG 0
  155. SET FILES NIO TRUE
  156. SET FILES NIO SIZE 256
  157. SET FILES LOG TRUE
  158. SET FILES LOG SIZE 50
  159. ALTER CATALOG PUBLIC RENAME TO APPDATABASECATALOG
  160. CREATE USER SA PASSWORD DIGEST 'd41d8cd98f00b204e9800998ecf8427e'
  161. ALTER USER SA SET LOCAL TRUE
  162. CREATE SCHEMA PUBLIC AUTHORIZATION DBA
  163. SET SCHEMA PUBLIC
  164. CREATE MEMORY TABLE PUBLIC.TRANSACTIONS(TRANSACTIONID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,TRANSACTIONDATE DATE NOT NULL,DESCRIPTION VARCHAR(50),ACCOUNTID INTEGER NOT NULL,COSTCENTRE VARCHAR(20) NOT NULL,ISCREDIT BOOLEAN DEFAULT FALSE NOT NULL,TRANSACTIONVALUE DOUBLE DEFAULT 0.00 NOT NULL,TAG VARCHAR(30),LINK INTEGER,CHECKED BOOLEAN DEFAULT FALSE NOT NULL)
  165. ALTER TABLE PUBLIC.TRANSACTIONS ALTER COLUMN TRANSACTIONID RESTART WITH 0
  166. CREATE UNIQUE INDEX TRANSACTIONS_TRANSACTIONID_UINDEX ON PUBLIC.TRANSACTIONS(TRANSACTIONID)
  167. CREATE MEMORY TABLE PUBLIC.ACCOUNTS(ACCOUNTID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,ACCOUNTNAME VARCHAR(15) NOT NULL,ACCOUNTNUMBER VARCHAR(8) NOT NULL,PROVIDER VARCHAR(20),ACCOUNTVALUE DOUBLE DEFAULT 0.00 NOT NULL)
  168. ALTER TABLE PUBLIC.ACCOUNTS ALTER COLUMN ACCOUNTID RESTART WITH 1
  169. CREATE UNIQUE INDEX ACCOUNTS_ACCOUNTID_UINDEX ON PUBLIC.ACCOUNTS(ACCOUNTID)
  170. ALTER TABLE PUBLIC.TRANSACTIONS ADD CONSTRAINT TRANSACTIONS_ACCOUNTS_ACCOUNTID_FK FOREIGN KEY(TRANSACTIONID) REFERENCES PUBLIC.ACCOUNTS(ACCOUNTID)
  171. ALTER SEQUENCE SYSTEM_LOBS.LOB_ID RESTART WITH 1
  172. SET DATABASE DEFAULT INITIAL SCHEMA PUBLIC
  173. GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.SQL_IDENTIFIER TO PUBLIC
  174. GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.YES_OR_NO TO PUBLIC
  175. GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.TIME_STAMP TO PUBLIC
  176. GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.CARDINAL_NUMBER TO PUBLIC
  177. GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.CHARACTER_DATA TO PUBLIC
  178. GRANT DBA TO SA
  179. SET SCHEMA SYSTEM_LOBS
  180. INSERT INTO BLOCKS VALUES(0,2147483647,0)
  181.  
  182. Connection to database ACCOUNTS was successful.
  183. Failed to create and execute statement for the following reason:
  184. java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: ACCOUNTS
  185. Disconnection from database ACCOUNTS was successful.
  186.  
  187. java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: ACCOUNTS
  188. at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
  189. at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
  190. at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
  191. at org.hsqldb.jdbc.JDBCStatement.execute(Unknown Source)
  192. at net.samrickard.apps.accounts.database.Database.createStatement(Database.java:65)
  193. at net.samrickard.apps.accounts.App.main(App.java:28)
  194. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  195. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  196. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  197. at java.lang.reflect.Method.invoke(Method.java:498)
  198. at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
  199. at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
  200. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  201. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  202. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  203. at java.lang.reflect.Method.invoke(Method.java:498)
  204. at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
  205. Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: ACCOUNTS
  206. at org.hsqldb.error.Error.error(Unknown Source)
  207. at org.hsqldb.error.Error.error(Unknown Source)
  208. at org.hsqldb.ParserDQL.readTableName(Unknown Source)
  209. at org.hsqldb.ParserDQL.readRangeVariableForDataChange(Unknown Source)
  210. at org.hsqldb.ParserDML.compileInsertStatement(Unknown Source)
  211. at org.hsqldb.ParserCommand.compilePart(Unknown Source)
  212. at org.hsqldb.ParserCommand.compileStatements(Unknown Source)
  213. at org.hsqldb.Session.executeDirectStatement(Unknown Source)
  214. at org.hsqldb.Session.execute(Unknown Source)
  215. ... 15 more
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement