Advertisement
Guest User

Untitled

a guest
Oct 18th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 27.25 KB | None | 0 0
  1. import java.sql.ResultSet;
  2. import java.sql.ResultSetMetaData;
  3. import java.sql.SQLException;
  4. import java.sql.Statement;
  5. import java.time.LocalDate;
  6. import java.time.format.DateTimeFormatter;
  7. import javafx.application.Application;
  8. import javafx.beans.property.SimpleStringProperty;
  9. import javafx.beans.value.ObservableValue;
  10. import javafx.collections.FXCollections;
  11. import javafx.collections.ObservableList;
  12. import javafx.event.ActionEvent;
  13. import javafx.event.EventHandler;
  14. import javafx.geometry.Insets;
  15. import javafx.scene.Scene;
  16. import javafx.scene.control.*;
  17. import javafx.scene.layout.ColumnConstraints;
  18. import javafx.scene.layout.GridPane;
  19. import javafx.scene.layout.VBox;
  20. import javafx.stage.Stage;
  21. import javafx.util.Callback;
  22.  
  23.  
  24. public class Main extends Application {
  25.  
  26.     static int fileCounter;
  27.  
  28.     // Default window buttons and text fields
  29.     Button searchBtn;
  30.  
  31.     Button addBtn;
  32.     TextField titleField = new TextField();
  33.     TextField categoriesField = new TextField();
  34.     TextField summaryField = new TextField();
  35.     TextField descriptionField = new TextField();
  36.  
  37.  
  38.     Button analysisBtn;
  39.  
  40.     //Primary stage
  41.     public void start(Stage primaryStage) throws SQLException {
  42.         GridPane grid = new GridPane();
  43.  
  44.         ColumnConstraints column;
  45.         column = new ColumnConstraints();
  46.         column.setPercentWidth(15);
  47.         grid.getColumnConstraints().add(column);
  48.  
  49.         column = new ColumnConstraints();
  50.         column.setPercentWidth(70);
  51.         grid.getColumnConstraints().add(column);
  52.  
  53.         grid.setHgap(10);
  54.         grid.setVgap(10);
  55.         grid.setPadding(new Insets(15, 15, 15, 15));
  56.  
  57.         addBtn = new Button("Add");
  58.         addBtn.setMaxWidth(Double.MAX_VALUE);
  59.         grid.add(addBtn, 0, 0);
  60.  
  61.         titleField.setPromptText("Enter the movie title...");
  62.         titleField.setPrefHeight(50);
  63.         titleField.getText();
  64.         grid.add(titleField, 1, 0);
  65.  
  66.         categoriesField.setPromptText("Enter the movie category...");
  67.         categoriesField.setPrefHeight(50);
  68.         categoriesField.getText();
  69.         grid.add(categoriesField, 1, 1);
  70.  
  71.         summaryField.setPromptText("Enter the movie summary...");
  72.         summaryField.setPrefHeight(50);
  73.         summaryField.getText();
  74.         grid.add(summaryField,1, 2);
  75.  
  76.         descriptionField.setPromptText("Enter the move description...");
  77.         descriptionField.setPrefHeight(50);
  78.         descriptionField.getText();
  79.         grid.add(descriptionField, 1, 3);
  80.  
  81.         searchBtn = new Button("Search");
  82.         searchBtn.setMaxWidth(Double.MAX_VALUE);
  83.         grid.add(searchBtn, 0, 1);
  84.  
  85.         analysisBtn = new Button("Analysis");
  86.         analysisBtn.setMaxWidth(Double.MAX_VALUE);
  87.         grid.add(analysisBtn, 0, 2);
  88.  
  89.         primaryStage.setTitle("NMBPMovies");
  90.         VBox layout = new VBox();
  91.         DatabaseHandler handler = new DatabaseHandler();
  92.  
  93.         //Add a new movie to database
  94.         addBtn.setOnAction(new EventHandler<ActionEvent>() {
  95.             @Override
  96.             public void handle(ActionEvent event) {
  97.                 String title = titleField.getText();
  98.                 String category = categoriesField.getText();
  99.                 String summary = summaryField.getText();
  100.                 String description = descriptionField.getText();
  101.  
  102.                 Statement stmt = null;
  103.                 try {
  104.                     stmt = handler.connection.createStatement();
  105.                 } catch (SQLException e) {
  106.                     e.printStackTrace();
  107.                 }
  108.                 String query = "INSERT INTO movie (title, categories, summary, description) "
  109.                         + "VALUES ('" + title + "', '" + category +"', '" + summary + "', '" + description + "');";
  110.                 System.out.println(query);
  111.  
  112.                 try {
  113.                     stmt.executeUpdate(query);
  114.                 } catch (SQLException e) {
  115.                     e.printStackTrace();
  116.                 }
  117.                 try {
  118.                     stmt.close();
  119.                 } catch (SQLException e) {
  120.                     e.printStackTrace();
  121.                 }
  122.                 titleField.setText("");
  123.                 categoriesField.setText("");
  124.                 summaryField.setText("");
  125.                 descriptionField.setText("");
  126.             }
  127.         });
  128.  
  129.         //Open new window when Analysis button is clicked
  130.         analysisBtn.setOnAction(new EventHandler<ActionEvent>() {
  131.             @Override
  132.             public void handle(ActionEvent event) {
  133.                 Stage analysisStage = new Stage();
  134.                 analysisStage.setTitle("Analysis info");
  135.  
  136.                 DatePicker dateFrom = new DatePicker();
  137.                 DatePicker dateTo = new DatePicker();
  138.  
  139.                 ToggleGroup group = new ToggleGroup();
  140.                 RadioButton hoursBtn = new RadioButton("Hours");
  141.                 RadioButton daysBtn = new RadioButton("Days");
  142.                 hoursBtn.setToggleGroup(group);
  143.                 hoursBtn.setSelected(true);
  144.                 daysBtn.setToggleGroup(group);
  145.                 TableView analysisResult = new TableView();
  146.                 Button searchButton = new Button("Search");
  147.  
  148.                 //Date and radio grid
  149.                 GridPane grid1 = new GridPane();
  150.                 grid1.setHgap(10);
  151.                 grid1.setVgap(10);
  152.                 grid1.setPadding(new Insets(15, 15, 15, 15));
  153.                 ColumnConstraints column;
  154.                 column = new ColumnConstraints();
  155.                 column.setPercentWidth(30);
  156.                 grid1.getColumnConstraints().add(column);
  157.                 grid1.add(dateFrom, 0, 0);
  158.                 grid1.add(dateTo, 1, 0);
  159.                 grid1.add(hoursBtn, 0, 1);
  160.                 grid1.add(daysBtn, 0, 2);
  161.                 grid1.add(searchButton, 0, 3);
  162.  
  163.                 //Results grid
  164.                 GridPane grid2 = new GridPane();
  165.                 grid2.setHgap(10);
  166.                 grid2.setVgap(10);
  167.                 grid2.setPadding(new Insets(15, 15, 15, 15));
  168.                 analysisResult.setPrefHeight(300);
  169.                 analysisResult.setPrefWidth(800);
  170.                 grid2.add(analysisResult, 0, 0);
  171.  
  172.                 VBox layout = new VBox();
  173.                 Scene scene = new Scene(layout, 900, 400);
  174.                 ((VBox) scene.getRoot()).getChildren().addAll(grid1);
  175.                 ((VBox) scene.getRoot()).getChildren().addAll(grid2);
  176.                 analysisStage.setScene(scene);
  177.                 analysisStage.show();
  178.  
  179.  
  180.  
  181.                 // Show analysis table based on the selected options
  182.                 searchButton.setOnAction(new EventHandler<ActionEvent>() {
  183.                     @Override
  184.                     public void handle(ActionEvent event) {
  185.                         ObservableList<ObservableList> data = FXCollections.observableArrayList();
  186.                         if(hoursBtn.isSelected()) {
  187.                             if(!data.isEmpty()) {
  188.                                 data.clear();
  189.                             }
  190.                             Statement stmt = null;
  191.                             try {
  192.                                 stmt = handler.connection.createStatement();
  193.                             } catch (SQLException e) {
  194.                                 e.printStackTrace();
  195.                             }
  196.                             String query = "select * from crosstab('select querystring, date_part, count (*) from hourAnalysis\n" +
  197.                                     "group by querystring, date_part\n" +
  198.                                     "order by date_part', 'SELECT hour from hours order by hour') as \n" +
  199.                                     "(query char(200),\n" +
  200.                                     "sat00 INT,\n" +
  201.                                     "sat1 INT,\n" +
  202.                                     "sat2 INT,\n" +
  203.                                     "sat3 INT,\n" +
  204.                                     "sat4 INT,\n" +
  205.                                     "sat5 INT,\n" +
  206.                                     "sat6 INT,\n" +
  207.                                     "sat7 INT,\n" +
  208.                                     "sat8 INT,\n" +
  209.                                     "sat9 INT,\n" +
  210.                                     "sat10 INT,\n" +
  211.                                     "sat11 INT,\n" +
  212.                                     "sat12 INT,\n" +
  213.                                     "sat13 INT,\n" +
  214.                                     "sat14 INT,\n" +
  215.                                     "sat15 INT,\n" +
  216.                                     "sat16 INT,\n" +
  217.                                     "sat17 INT,\n" +
  218.                                     "sat18 INT,\n" +
  219.                                     "sat19 INT,\n" +
  220.                                     "sat20 INT,\n" +
  221.                                     "sat21 INT,\n" +
  222.                                     "sat22 INT,\n" +
  223.                                     "sat23 INT);";
  224.                             ResultSet rset = null;
  225.                             try {
  226.                                 rset = stmt.executeQuery(query);
  227.                             } catch (SQLException e){
  228.                                 e.printStackTrace();
  229.                             }
  230.                             ResultSetMetaData rsmd = null;
  231.                             try {
  232.                                 rsmd = rset.getMetaData();
  233.                             } catch (SQLException e) {
  234.                                 e.printStackTrace();
  235.                             }
  236.                             int columnCount = 0;
  237.                             try {
  238.                                 columnCount = rsmd.getColumnCount();
  239.                             } catch (SQLException e) {
  240.                                 e.printStackTrace();
  241.                             }
  242.                             for(int i = 0; i < columnCount; i++) {
  243.                                 final int j = i;
  244.                                 TableColumn col = null;
  245.                                 try {
  246.                                     col = new TableColumn(rsmd.getColumnName(i+1));
  247.                                 } catch (SQLException e) {
  248.                                     e.printStackTrace();
  249.                                 }
  250.                                 col.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList,String>,ObservableValue<String>>(){
  251.                                     public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
  252.                                         if(param.getValue().get(j) != null) {
  253.                                             return new SimpleStringProperty(param.getValue().get(j).toString());
  254.                                         }
  255.                                         return new SimpleStringProperty("");
  256.                                     }
  257.                                 });
  258.                                 analysisResult.getColumns().addAll(col);
  259.                             }
  260.  
  261.                             try {
  262.                                 while(rset.next()){
  263.                                     //Iterate Row
  264.                                     ObservableList<String> row = FXCollections.observableArrayList();
  265.                                     for(int i=1 ; i<=rset.getMetaData().getColumnCount(); i++){
  266.                                         //Iterate Column
  267.                                         row.add(rset.getString(i));
  268.                                     }
  269.                                     System.out.println("Row [1] added "+row );
  270.                                     data.add(row);
  271.                                 }
  272.                             } catch (SQLException e) {
  273.                                 e.printStackTrace();
  274.                             }
  275.                             analysisResult.setItems(data);
  276.  
  277.                         } if(daysBtn.isSelected()) {
  278.                             data = FXCollections.observableArrayList();
  279.                             Statement stmt = null;
  280.                             try {
  281.                                 stmt = handler.connection.createStatement();
  282.                             } catch (SQLException e) {
  283.                                 e.printStackTrace();
  284.                             }
  285.                             String asPart = "";
  286.                             LocalDate startDate = dateFrom.getValue();
  287.                             LocalDate endDate = dateTo.getValue();
  288.  
  289.                             while (startDate.isBefore(endDate.plusDays(1))) {
  290.                                 asPart +="\n\"" + startDate.toString() + "\" char(50),";
  291.                                 startDate = startDate.plusDays(1);
  292.                                 System.out.println(startDate);
  293.                             }
  294.  
  295.                             asPart = asPart.substring(0, asPart.length() - 1);
  296.  
  297.                             String query = "select * from crosstab('select querystring, date, count(*) from dateAnalysis\n" +
  298.                                     "where date between ''" + dateFrom.getValue() + "'' AND ''" + dateTo.getValue() + "''\n" +
  299.                                     "group by querystring, date\n" +
  300.                                     "order by date', 'select (date(generate_series)) as date from generate_series(''"+ dateFrom.getValue() +"''::timestamp, ''" + dateTo.getValue() + "''::timestamp, ''1 day'')')\n" +
  301.                                     "as (query char(200)," + asPart +
  302.                                     ")";
  303.                             System.out.println(query);
  304.  
  305.                             ResultSet rset = null;
  306.                             try {
  307.                                 rset = stmt.executeQuery(query);
  308.                             } catch (SQLException e){
  309.                                 e.printStackTrace();
  310.                             }
  311.                             ResultSetMetaData rsmd = null;
  312.                             try {
  313.                                 rsmd = rset.getMetaData();
  314.                             } catch (SQLException e) {
  315.                                 e.printStackTrace();
  316.                             }
  317.                             int columnCount = 0;
  318.                             try {
  319.                                 columnCount = rsmd.getColumnCount();
  320.                             } catch (SQLException e) {
  321.                                 e.printStackTrace();
  322.                             }
  323.                             for(int i = 0; i < columnCount; i++) {
  324.                                 final int j = i;
  325.                                 TableColumn col = null;
  326.                                 try {
  327.                                     col = new TableColumn(rsmd.getColumnName(i+1));
  328.                                 } catch (SQLException e) {
  329.                                     e.printStackTrace();
  330.                                 }
  331.                                 col.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList,String>,ObservableValue<String>>(){
  332.                                     public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
  333.                                         if(param.getValue().get(j) != null) {
  334.                                             return new SimpleStringProperty(param.getValue().get(j).toString());
  335.                                         }
  336.                                         return new SimpleStringProperty("");
  337.                                     }
  338.                                 });
  339.                                 analysisResult.getColumns().addAll(col);
  340.                             }
  341.                             try {
  342.                                 while(rset.next()){
  343.                                     //Iterate Row
  344.                                     ObservableList<String> row = FXCollections.observableArrayList();
  345.                                     for(int i=1 ; i<=rset.getMetaData().getColumnCount(); i++){
  346.                                         //Iterate Column
  347.                                         row.add(rset.getString(i));
  348.                                     }
  349.                                     System.out.println("Row [1] added "+row );
  350.                                     data.add(row);
  351.                                 }
  352.                             } catch (SQLException e) {
  353.                                 e.printStackTrace();
  354.                             }
  355.                             analysisResult.setItems(data);
  356.                         }
  357.                     }
  358.                 });
  359.             }
  360.         });
  361.  
  362.         //Open new window when Search button is clicked
  363.         searchBtn.setOnAction(new EventHandler<ActionEvent>() {
  364.             @Override
  365.             public void handle(ActionEvent event) {
  366.                 //Search scene buttons and text fields
  367.                 Stage searchStage = new Stage();
  368.                 searchStage.setTitle("Search the database");
  369.  
  370.                 fileCounter = 0;
  371.  
  372.                 TextField searchString = new TextField();
  373.                 Button searchBtn2 = new Button("Search");
  374.                 ToggleGroup group = new ToggleGroup();
  375.                 RadioButton andBtn = new RadioButton("AND");
  376.                 RadioButton orBtn = new RadioButton("OR");
  377.                 andBtn.setToggleGroup(group);
  378.                 andBtn.setSelected(true);
  379.                 orBtn.setToggleGroup(group);
  380.                 Label label = new Label("Query string:");
  381.                 TextArea queryStringArea = new TextArea();
  382.                 Label retrieve = new Label("Number of documents retrieved: " + fileCounter);
  383.                 TextArea resultStrings = new TextArea();
  384.  
  385.                 GridPane grid = new GridPane();
  386.                 grid.setHgap(10);
  387.                 grid.setVgap(10);
  388.                 grid.setPadding(new Insets(15, 15, 15, 15));
  389.  
  390.                 ColumnConstraints column;
  391.                 column = new ColumnConstraints();
  392.                 column.setPercentWidth(250);
  393.                 grid.getColumnConstraints().add(column);
  394.  
  395.  
  396.                 column = new ColumnConstraints();
  397.                 column.setPercentWidth(50);
  398.                 grid.getColumnConstraints().add(column);
  399.  
  400.                 searchString.setPrefHeight(20);
  401.                 searchString.getText();
  402.                 grid.add(searchString, 0, 0);
  403.  
  404.                 searchBtn2.setPrefHeight(20);
  405.                 grid.add(searchBtn2, 1, 0);
  406.  
  407.                 grid.add(andBtn, 0, 1);
  408.                 grid.add(orBtn, 0, 2);
  409.  
  410.                 grid.add(label, 0, 3);
  411.  
  412.                 queryStringArea.setPrefHeight(150);
  413.                 grid.add(queryStringArea, 0, 4);
  414.  
  415.                 grid.add(retrieve, 0, 5);
  416.  
  417.                 resultStrings.setPrefHeight(150);
  418.                 grid.add(resultStrings, 0, 6);
  419.  
  420.                 VBox layout = new VBox();
  421.                 Scene scene = new Scene(layout, 900, 400);
  422.                 ((VBox) scene.getRoot()).getChildren().addAll(grid);
  423.                 searchStage.setScene(scene);
  424.                 searchStage.show();
  425.  
  426.                 //Search for movies based on search entry
  427.                 searchBtn2.setOnAction(new EventHandler<ActionEvent>() {
  428.                     @Override
  429.                     public void handle(ActionEvent event) {
  430.                         String searchBar = searchString.getText();
  431.                         StringHandler stringHandler = new StringHandler(searchBar);
  432.                         stringHandler.splitTheSearch(stringHandler.inputString);
  433.  
  434.                         StringHandler.makeTSQueryString();
  435.                         String tsqueryString = "'";
  436.                         String queryName = "";
  437.  
  438.                         if(orBtn.isSelected()) {
  439.                             StringHandler.wherePartOR();
  440.                             for(String s : StringHandler.queryElements) {
  441.                                 tsqueryString += s + " | ";
  442.                             }
  443.                             for (String s : StringHandler.queryName) {
  444.                                 queryName += s + " | ";
  445.                             }
  446.                             queryName = queryName.substring(0, queryName.length() - 3);
  447.                             tsqueryString = tsqueryString.substring(0, tsqueryString.length() - 3);
  448.                             tsqueryString += "'";
  449.                         } else {
  450.                             StringHandler.wherePartAND();
  451.                             for(String s : StringHandler.queryElements) {
  452.                                 tsqueryString += s + " & ";
  453.                             }
  454.                             for (String s : StringHandler.queryName) {
  455.                                 queryName += s + " & ";
  456.                             }
  457.                             queryName = queryName.substring(0, queryName.length() - 3);
  458.                             tsqueryString = tsqueryString.substring(0, tsqueryString.length() - 3);
  459.                             tsqueryString += "'";
  460.                         }
  461.                         System.out.println(queryName);
  462.                         String query = "";
  463.                         String analysisInsertQuery = "";
  464.  
  465.                         query = "SELECT movieID, ts_headline(title, to_tsquery('english', " + tsqueryString +"))," +
  466.                                   "\n"+"ts_headline(description, to_tsquery('english', " + tsqueryString +"))," +
  467.                                 "\n"+"description, " +
  468.                                 "\nts_rank(allAboutMovieTSV, to_tsquery('english', " + tsqueryString +")) rank" +
  469.                                 "\n"+"FROM movie WHERE " + StringHandler.wherePartString +
  470.                                 "\nORDER BY rank DESC";
  471.  
  472.  
  473.  
  474.                         analysisInsertQuery = "INSERT INTO analysis (querystring) " +
  475.                                 "VALUES (" + "'" + queryName + "'" + ");";
  476.  
  477.                         queryStringArea.setText(query);
  478.                         System.out.println(analysisInsertQuery);
  479.  
  480.  
  481.                         Statement stmt = null;
  482.                         try {
  483.                             stmt = handler.connection.createStatement();
  484.                         } catch (SQLException e) {
  485.                             e.printStackTrace();
  486.                         }
  487.                         ResultSet rset = null;
  488.                         try {
  489.                             rset = stmt.executeQuery(query);
  490.                             String searchedMovies = "";
  491.                             fileCounter = 0;
  492.                             while(rset.next()) {
  493.                                 fileCounter++;
  494.                                 String name = rset.getString("ts_headline");
  495.                                 float rank = rset.getFloat("rank");
  496.                                 searchedMovies += name + " [" + rank + "] \n";
  497.  
  498.                             }
  499.                             stmt.executeUpdate(analysisInsertQuery);
  500.                             resultStrings.setText(searchedMovies);
  501.                             retrieve.setText("Number of documents retrieved: " + fileCounter);
  502.                             searchedMovies = "";
  503.                             fileCounter = 0;
  504.                         } catch (SQLException e) {
  505.                             e.printStackTrace();
  506.                         }
  507.  
  508.                     }
  509.                 });
  510.  
  511.             }
  512.         });
  513.  
  514.         Scene scene = new Scene(layout, 900, 300);
  515.         ((VBox) scene.getRoot()).getChildren().addAll(grid);
  516.         primaryStage.setScene(scene);
  517.         primaryStage.show();
  518.  
  519.     }
  520.  
  521.     public static void main(String[] args) {
  522.         launch(args);
  523.     }
  524.  
  525. }
  526.  
  527.  
  528. import java.util.ArrayList;
  529. import java.util.Arrays;
  530. import java.util.List;
  531. import java.util.regex.Matcher;
  532. import java.util.regex.Pattern;
  533.  
  534. public class StringHandler {
  535.     static String inputString;
  536.     static String wherePartString;
  537.     static List<String> splitSearch = new ArrayList<String>();
  538.     static List<String> queryElements = new ArrayList<String>();
  539.     static List<String> queryName = new ArrayList<>();
  540.     static String queryPart = "";
  541.  
  542.     StringHandler(String string) {
  543.         this.inputString = string;
  544.     }
  545.  
  546.     public void splitTheSearch(String inputString) {
  547.         splitSearch.clear();
  548.         Matcher m = Pattern.compile("([^\"]\\S*|\".+?\")\\s*").matcher(inputString);
  549.         while (m.find())
  550.             splitSearch.add(m.group(1));
  551.     }
  552.  
  553.     public static void makeTSQueryString() {
  554.         queryElements.clear();
  555.         queryName.clear();
  556.         for (String s : splitSearch) {
  557.             String TSQueryString = "";
  558.             if(s.startsWith("\"") && s.endsWith("\"")) {
  559.                 TSQueryString = "(";
  560.                 queryPart = "^";
  561.                 s = s.substring(1, s.length()-1);
  562.                 List<String> wordByWord = Arrays.asList(s.split(" "));
  563.                 for (String c : wordByWord) {
  564.                     if(wordByWord.indexOf(c) != (wordByWord.size() - 1)) {
  565.                         TSQueryString += c + " & ";
  566.                         queryPart += c + " ";
  567.                     } else {
  568.                         TSQueryString += c + ")";
  569.                         queryPart += c + "^";
  570.                     }
  571.                 }
  572.             } else {
  573.                 TSQueryString = s;
  574.                 queryPart = s;
  575.             }
  576.             queryElements.add(TSQueryString);
  577.             queryName.add(queryPart);
  578.             System.out.println(queryName);
  579.         }
  580.  
  581.     }
  582.  
  583.     public static void wherePartOR() {
  584.         wherePartString = "";
  585.         for (String s : queryElements) {
  586.             if(s.startsWith("(") && s.endsWith(")")) {
  587.                 s = s.substring(1, s.length() - 1);
  588.                 s = "'" + s + "'";
  589.             } else {
  590.                 s = "'" + s + "'";
  591.  
  592.             }
  593.             wherePartString += "allAboutMovieTSV @@ to_tsquery('english'," + s + ") OR\n";
  594.         }
  595.         wherePartString = wherePartString.substring(0, wherePartString.length() - 3);
  596.     }
  597.  
  598.     public static void wherePartAND() {
  599.         wherePartString = "";
  600.         for (String s : queryElements) {
  601.             if(s.startsWith("(") && s.endsWith(")")) {
  602.                 s = s.substring(1, s.length() - 1);
  603.                 s = "'" + s + "'";
  604.             } else {
  605.                 s = "'" + s + "'";
  606.  
  607.             }
  608.             wherePartString += "allAboutMovieTSV @@ to_tsquery('english'," + s + ") AND\n";
  609.         }
  610.         wherePartString = wherePartString.substring(0, wherePartString.length() - 4);
  611.     }
  612. }
  613.  
  614.  
  615. import java.sql.Connection;
  616. import java.sql.DriverManager;
  617. import java.sql.SQLException;
  618. import java.sql.Statement;
  619. import java.sql.ResultSet;
  620.  
  621. public class DatabaseHandler {
  622.     public Connection connection = null;
  623.     public DatabaseHandler() {
  624.         try {
  625.             connection = DriverManager
  626.                     .getConnection("jdbc:postgresql://192.168.56.12:5432/Movies",
  627.                             "postgres", "reverse");
  628.  
  629.  
  630.         } catch (SQLException e) {
  631.             e.printStackTrace();
  632.             System.out.println("SQLException: " + e.getMessage());
  633.             System.out.println("SQLState: " + e.getSQLState());
  634.             System.out.println("VendorError: " + e.getErrorCode());
  635.         }
  636.  
  637.     }
  638.  
  639.  
  640.  
  641. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement