Advertisement
Guest User

Untitled

a guest
Nov 30th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.64 KB | None | 0 0
  1. import java.sql.*;
  2. import java.util.ArrayList;
  3.  
  4. import javafx.beans.property.SimpleStringProperty;
  5. import javafx.beans.value.ObservableValue;
  6. import javafx.collections.FXCollections;
  7. import javafx.collections.ObservableList;
  8. import javafx.geometry.Insets;
  9. import javafx.scene.control.TableColumn;
  10. import javafx.scene.control.TableView;
  11. import javafx.scene.control.TableColumn.CellDataFeatures;
  12. import javafx.util.Callback;
  13.  
  14. public class JDBC {
  15.    
  16.     private static boolean dbDriverLoaded = false;
  17.     private static Connection conn = null;
  18.     public Connection getDBConnection() {
  19.         String dbConnString = "jdbc:sqlserver://steliosepl342.database.windows.net;databaseName=epl342;user=adamospp;password=7HSQ6XSG%PDN;";
  20.  
  21.         if (!dbDriverLoaded)
  22.             try {
  23.                 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  24.                 dbDriverLoaded = true;
  25.             } catch (ClassNotFoundException e) {
  26.                 System.out.println("Cannot load DB driver!");
  27.                 return null;
  28.             }
  29.  
  30.         try {
  31.             if (conn == null)
  32.                 conn = DriverManager.getConnection(dbConnString);
  33.             else if (conn.isClosed())
  34.                 conn = DriverManager.getConnection(dbConnString);
  35.         } catch (SQLException e) {
  36.             System.out.print("Cannot connect to the DB!\nGot error: ");
  37.             System.out.print(e.getErrorCode());
  38.             System.out.print("\nSQL State: ");
  39.             System.out.println(e.getSQLState());
  40.             System.out.println(e.getMessage());
  41.         }
  42.         return conn;
  43.     }
  44.     public ResultSet Querry(String q)
  45.     {
  46.         Statement stmt;
  47.         ResultSet srs;
  48.         try {
  49.             stmt = conn.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
  50.             srs = stmt.executeQuery(q);
  51.             return srs;
  52.         }catch(Exception e) {
  53.             System.out.println("Guys we have an error on the SQL QUERRY");
  54.             e.printStackTrace(System.out);
  55.             return null;
  56.         }
  57.     }
  58.     private static void InsertRow(String table, String Col, String val) {
  59.         String insert="INSERT INTO "+table+" "+Col+" VALUES "+val;
  60.         try {
  61.             Statement stmt = conn.createStatement();
  62.             stmt.executeUpdate(insert);
  63.         } catch (SQLException e) {
  64.             System.out.println("Guys we have an error on the SQL Insert");
  65.             e.printStackTrace(System.out);
  66.         }
  67.     }
  68.     private static void Update(String table, String Col, int val, int row) {
  69.         Statement stmt;
  70.         ResultSet srs;
  71.         try {
  72.             stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
  73.             srs = stmt.executeQuery("SELECT "+Col+" FROM "+table);
  74.             for(int i=1; i<=row; i++)
  75.                 srs.next();
  76.             srs.updateInt(Col, val);
  77.             srs.updateRow();
  78.         }catch(Exception e) {
  79.             System.out.println("Guys we have an error on the SQL QUERRY");
  80.             e.printStackTrace(System.out);
  81.         }
  82.     }
  83.     private static void PrintTable(ResultSet table) {
  84.         try {
  85.             int collumns=table.getMetaData().getColumnCount();
  86.             table.beforeFirst();
  87.             for(int i=1; i<=collumns; i++) {
  88.                 if (i > 1) System.out.print("\t");
  89.                 String columnName = table.getMetaData().getColumnName(i);
  90.                 System.out.print(columnName);
  91.             }
  92.             System.out.println();
  93.             while(table.next()) {
  94.                 for(int i=1; i<=collumns; i++) {
  95.                     if (i > 1) System.out.print("\t");
  96.                     String columnValue = table.getString(i);
  97.                     System.out.print(columnValue);
  98.                 }
  99.                 System.out.println();
  100.             }
  101.         }catch(Exception e) {
  102.             System.out.println("Guys we have an error on the SQL Table Print");
  103.         }
  104.     }
  105.     //m dbo.trains_not_stop_at_station station string
  106.     public TableView trains_not_stop_at_station(String station) {
  107.         String sol="EXEC dbo.trains_not_stop_at_station @station="+station;
  108.         return getTheTable(sol);
  109.     }
  110.     //n dbo.routes_that_stop_at_least
  111.     public TableView routes_that_stop_at_least(String Percentage) {
  112.         String sol="EXEC dbo.routes_that_stop_at_least @percentage="+Percentage;
  113.         return getTheTable(sol);
  114.     }
  115.     //o dbo.display_schedule_of_route selectRoute int
  116.     public TableView display_schedule_of_route(String selectRoute) {
  117.         String sol="EXEC dbo.display_schedule_of_route @selectRoute="+selectRoute;
  118.         return getTheTable(sol);
  119.     }
  120.     //p avail_route_each_stop_and_dayday_and_time day string, time string
  121.     public TableView avail_route_each_stop_and_dayday_and_time(String day, String time) {
  122.         String sol="EXEC dbo.avail_route_each_stop_and_dayday_and_time @day='"+day+"', @time='"+time+"';";
  123.         return getTheTable(sol);
  124.     }
  125.     //i dbo.train_passes_station_day_time @desiredStation int, @day String, @desiredTime time
  126.     public TableView train_passes_station_day_time(String desiredStation, String day, String desiredTime) {
  127.         String sol="EXEC dbo.train_passes_station_day_time @desiredStationID="+desiredStation+", @day='"+day+"', @desiredTime='"+desiredTime+"';";
  128.         return getTheTable(sol);
  129.     }
  130.    
  131.    
  132.     public TableView getTheTable(String query)
  133.     {
  134.         try{
  135.             ResultSet table=Querry(query);
  136.             int collumns=table.getMetaData().getColumnCount();
  137.             TableView results=new TableView();
  138.             results.setPadding(new Insets(5, 5, 5, 5));
  139.             ObservableList<ObservableList> data=FXCollections.observableArrayList();
  140.             for(int i=0; i<table.getMetaData().getColumnCount(); i++) {
  141.                 final int j=i;
  142.                 TableColumn col=new TableColumn(table.getMetaData().getColumnName(i+1));
  143.                 col.setCellValueFactory(new Callback<CellDataFeatures<ObservableList,String>, ObservableValue<String> >(){
  144.    
  145.                     @Override
  146.                     public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {
  147.                        
  148.                         return new SimpleStringProperty(param.getValue().get(j).toString());
  149.                     }
  150.                    
  151.                 });
  152.                 results.getColumns().add(col);
  153.             }
  154.             while(table.next()){
  155.                 //Iterate Row
  156.                 ObservableList<String> row = FXCollections.observableArrayList();
  157.                 for(int i=1 ; i<=table.getMetaData().getColumnCount(); i++){
  158.                     //Iterate Column
  159.                     row.add(table.getString(i));
  160.                 }
  161.                 data.add(row);
  162.             }        
  163.             results.setItems(data);
  164.             return results;
  165.         }catch(Exception e){
  166.             e.printStackTrace();
  167.             return null;
  168.         }
  169.     }
  170.     private static void ExecuteStoredProccess(String Procedure, ArrayList<SQLType> types) {
  171.         try {
  172.             CallableStatement cstmt = conn.prepareCall(Procedure);
  173.             for(int i=1; i<=types.size(); i++) {
  174.                 cstmt.registerOutParameter(i, types.get(i-1));
  175.             }
  176.             cstmt.execute();
  177.         }catch(Exception e) {
  178.             e.printStackTrace();
  179.         }
  180.     }
  181.     public static void main(String[] args) {
  182.         JDBC test=new JDBC();
  183.         test.getDBConnection();//ONE TIME!!!!
  184.        
  185.         String testQuerry="SELECT * FROM dbo.RAIL";
  186.         PrintTable(test.Querry(testQuerry));
  187.         /*test.Update("RAIL", "speed_limit", 5000, 1);
  188.         PrintTable(test.Querry(testQuerry));
  189.         test.InsertRow("RAIL", "(rail_id,speed_limit)", "(18,69)");
  190.         PrintTable(test.Querry(testQuerry));*/
  191.        
  192.     }
  193.  
  194. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement