CreatePositionTable.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import java.sql.*;
  2. public class CreatePositionTable {
  3. public static void main(String[] args) {
  4. String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
  5. String user = "system";
  6. String password = "Root123456";
  7. String createTable =
  8. "CREATE TABLE T_POSITION (" +
  9. " ID NUMBER(19) NOT NULL," +
  10. " POSITION_CODE VARCHAR2(64) NOT NULL," +
  11. " POSITION_NAME VARCHAR2(128) NOT NULL," +
  12. " POSITION_TYPE VARCHAR2(32) NOT NULL," +
  13. " DIRECTION VARCHAR2(16) NOT NULL," +
  14. " QUANTITY NUMBER(18,4) DEFAULT 0," +
  15. " PRICE NUMBER(18,4) DEFAULT 0," +
  16. " MARKET_VALUE NUMBER(18,4) DEFAULT 0," +
  17. " ACCOUNT_CODE VARCHAR2(64)," +
  18. " PRODUCT_CODE VARCHAR2(64)," +
  19. " STATUS VARCHAR2(16) DEFAULT 'ACTIVE'," +
  20. " VERSION NUMBER(10) DEFAULT 0," +
  21. " DELETED NUMBER(1) DEFAULT 0," +
  22. " CREATE_TIME TIMESTAMP DEFAULT SYSDATE," +
  23. " UPDATE_TIME TIMESTAMP DEFAULT SYSDATE," +
  24. " CONSTRAINT PK_T_POSITION PRIMARY KEY (ID)," +
  25. " CONSTRAINT UK_T_POSITION_CODE UNIQUE (POSITION_CODE)" +
  26. ")";
  27. String createIndex1 = "CREATE INDEX IDX_T_POSITION_TYPE ON T_POSITION(POSITION_TYPE)";
  28. String createIndex2 = "CREATE INDEX IDX_T_POSITION_STATUS ON T_POSITION(STATUS)";
  29. String createIndex3 = "CREATE INDEX IDX_T_POSITION_ACCOUNT ON T_POSITION(ACCOUNT_CODE)";
  30. String createIndex4 = "CREATE INDEX IDX_T_POSITION_PRODUCT ON T_POSITION(PRODUCT_CODE)";
  31. try (Connection conn = DriverManager.getConnection(url, user, password)) {
  32. try (Statement stmt = conn.createStatement()) {
  33. // Try to drop first if exists
  34. try {
  35. stmt.execute("DROP TABLE T_POSITION");
  36. System.out.println("Dropped old table T_POSITION");
  37. } catch (SQLException ignored) {
  38. // Table didn't exist
  39. }
  40. stmt.execute(createTable);
  41. System.out.println("Created table T_POSITION successfully!");
  42. try { stmt.execute(createIndex1); System.out.println("Created index IDX_T_POSITION_TYPE"); }
  43. catch (SQLException e) { System.out.println("Index IDX_T_POSITION_TYPE: " + e.getMessage()); }
  44. try { stmt.execute(createIndex2); System.out.println("Created index IDX_T_POSITION_STATUS"); }
  45. catch (SQLException e) { System.out.println("Index IDX_T_POSITION_STATUS: " + e.getMessage()); }
  46. try { stmt.execute(createIndex3); System.out.println("Created index IDX_T_POSITION_ACCOUNT"); }
  47. catch (SQLException e) { System.out.println("Index IDX_T_POSITION_ACCOUNT: " + e.getMessage()); }
  48. try { stmt.execute(createIndex4); System.out.println("Created index IDX_T_POSITION_PRODUCT"); }
  49. catch (SQLException e) { System.out.println("Index IDX_T_POSITION_PRODUCT: " + e.getMessage()); }
  50. }
  51. System.out.println("Done!");
  52. } catch (SQLException e) {
  53. System.err.println("Error: " + e.getMessage());
  54. e.printStackTrace();
  55. }
  56. }
  57. }