Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.sql.*;
- import java.text.ParseException;
- import java.util.Scanner;
- /**
- * Created by Nick on 09.08.2016.
- */
- public class Flats {
- static final String DB_CONNECTION = "jdbc:mysql://localhost:3306/flats";
- static final String DB_USER = "Admin";
- static final String DB_PASSWORD = "no6odYnS";
- static Connection conn;
- public static void main(String[] args) throws SQLException,ParseException {
- conn = DriverManager.getConnection(DB_CONNECTION, DB_USER, DB_PASSWORD);
- initDB();
- importToDB("D:\\java_\\FlatsDB\\src\\import.csv");
- /*viewFlats();*/
- String q=getQuery();
- System.out.println(q);
- viewQwFlats(q);
- }
- private static void initDB() throws SQLException {
- Statement st = conn.createStatement();
- try {
- st.execute("DROP TABLE IF EXISTS flats");
- st.execute("CREATE TABLE flats (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, district VARCHAR(20) NOT NULL," +
- " adress VARCHAR (50),area SMALLINT, quantity SMALLINT ,price DOUBLE )");
- } finally {
- st.close();
- }
- }
- private static void viewQwFlats(String query) throws SQLException {
- PreparedStatement ps = conn.prepareStatement(query);
- try {
- // table of data representing a database result set,
- ResultSet rs = ps.executeQuery();
- try {
- // can be used to get information about the types and properties of the columns in a ResultSet object
- ResultSetMetaData md = rs.getMetaData();
- for (int i = 1; i <= md.getColumnCount(); i++)
- System.out.print(md.getColumnName(i) + "\t\t");
- System.out.println();
- while (rs.next()) {
- for (int i = 1; i <= md.getColumnCount(); i++) {
- System.out.print(rs.getString(i) + "\t\t");
- }
- System.out.println();
- }
- } finally {
- rs.close(); // rs can't be null according to the docs
- }
- } finally {
- ps.close();
- }
- }
- public static void importToDB(String path) throws ParseException, SQLException {
- String word = "";
- try (BufferedReader br = new BufferedReader(new
- FileReader(path))) {
- while ((word = br.readLine()) != null) {
- String[] b = word.split(";");
- String distr = b[0];
- String adress = b[1];
- int area = Integer.parseInt(b[2]);
- int quantity = Integer.parseInt(b[3]);
- double price = Double.parseDouble(b[4]);
- PreparedStatement ps = conn.prepareStatement("INSERT INTO flats (district, adress,area,quantity,price)" +
- " VALUES(?,?,?,?,?)");
- try {
- ps.setString(1, distr);
- ps.setString(2, adress);
- ps.setInt(3, area);
- ps.setInt(4, quantity);
- ps.setDouble(5, price);
- ps.executeUpdate(); // for INSERT, UPDATE & DELETE
- } finally {
- ps.close();
- }
- }
- } catch (FileNotFoundException e1) {
- e1.printStackTrace();
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- }
- public static String getQuery(){
- Scanner sc=new Scanner(System.in);
- String buff="";
- System.out.println("Введите параметры запроса");
- System.out.println("Выбор района, введите часть названия или Enter, если учитывать не нужно");
- String distr=sc.nextLine();
- System.out.println("Выбор улицы, введите часть названия или или Enter, если учитывать не нужно");
- String adr=sc.nextLine();
- System.out.println("Выбор количества комнат, введите 1...4 или или Enter, если учитывать не нужно");
- int quant = Integer.parseInt(sc.nextLine());
- System.out.println("Укажите мин площадь,или или Enter, если учитывать не нужно");
- int areaMin = Integer.parseInt(sc.nextLine());
- System.out.println("Укажите мах площадь,или Enter, если учитывать не нужно");
- int areaMax = Integer.parseInt(sc.nextLine());
- System.out.println("Укажите мин цену,или Enter, если учитывать не нужно");
- double priceMin = Double.parseDouble(sc.nextLine());
- System.out.println("Укажите мах цену,или Enter, если учитывать не нужно");
- double priceMax = Double.parseDouble(sc.nextLine());
- StringBuilder sb=new StringBuilder();
- sb.append("SELECT district, adress, price FROM flats WHERE ").append("district LIKE\'%").append(distr).append("%\'").
- append(" AND adress LIKE\'%").
- append(adr).append("%'").append ("AND price BETWEEN ").append(priceMin).append(" AND ").append(priceMax).append(";");
- String query= sb.toString();
- return query;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement