/notes/code/java/InsecureProgram.java (9cb65d3ef4edca6f05c517770befc68d28e06e1d) (1657 bytes) (mode 100644) (type blob)

// code/java/InsecureProgram.java

import java.sql.*;
import java.util.Scanner;

public class InsecureProgram {
  public static void main(String[] args) {
    try (Connection conn =
            DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/?user=testuser&password=password");
        Statement stmt = conn.createStatement(); ) {

      stmt.addBatch("DROP SCHEMA IF EXISTS HW_InsecureProgram");
      stmt.addBatch("CREATE SCHEMA HW_InsecureProgram");
      stmt.addBatch("USE HW_InsecureProgram");
      stmt.addBatch("CREATE TABLE DISK(Title VARCHAR(30), Price DOUBLE)");
      stmt.addBatch("CREATE TABLE BOOK(Title VARCHAR(30), Price DOUBLE)");
      stmt.addBatch("CREATE TABLE VINYL(Title VARCHAR(30), Price DOUBLE)");
      stmt.addBatch("INSERT INTO DISK VALUES('test', 12)");
      stmt.addBatch("INSERT INTO DISK VALUES('Hidden', NULL)");
      stmt.executeBatch();

      // start snippet gist
      Scanner key = new Scanner(System.in);
      System.out.print(
          "Do you want to browse the table containing "
              + "DISK, BOOK or VINYL? (please enter exactly the table name)?\n");
      String table = key.nextLine();
      System.out.print("How much money do you have?\n");
      String max = key.nextLine();
      ResultSet rst =
          stmt.executeQuery("SELECT Title FROM " + table + " WHERE PRICE <= " + max + ";");
      System.out.printf("Here are the %s you can afford with %s: \n", table, max);
      while (rst.next()) {
        System.out.printf("\t- %s \n", rst.getString(1));
      }
      // end snippet gist

    } catch (SQLException ex) {
      ex.printStackTrace();
    }
  }
}


Mode Type Size Ref File
100644 blob 15398 ee75155d2d99639acd17d31b2cc23cd752078e7e CONTRIB.md
100644 blob 20625 25b8e45e7f103089fb70fae5a219f09a29ef5312 KNOWN_BUGS.md
100644 blob 17217 e5c1f9f898cca948da42333b100e331d62b61d3c LICENSE.md
100644 blob 1997 f8801648fd4ba5843a2cbca8b10e4f69ba5d9b25 Makefile
100644 blob 6695 0b91924ffc7b73e2d36150369d4fd41a44b099c5 README.md
040000 tree - eb7afc38251ada69e1967e1ce3e49967eca2267c install
040000 tree - f16b283429b64b620b3bd7681a446ff54d504f84 notes
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/caubert/CSCI_3410

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/caubert/CSCI_3410

Clone this repository using git:
git clone git://git.rocketgit.com/user/caubert/CSCI_3410

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main