Advertisement
Guest User

Untitled

a guest
Aug 10th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.28 KB | None | 0 0
  1. import java.io.*;
  2. import java.sql.*;
  3. import java.text.ParseException;
  4. import java.util.Scanner;
  5.  
  6. /**
  7. * Created by Nick on 09.08.2016.
  8. */
  9. public class Flats {
  10. static final String DB_CONNECTION = "jdbc:mysql://localhost:3306/flats";
  11. static final String DB_USER = "Admin";
  12. static final String DB_PASSWORD = "no6odYnS";
  13.  
  14. static Connection conn;
  15.  
  16.  
  17. public static void main(String[] args) throws SQLException,ParseException {
  18. conn = DriverManager.getConnection(DB_CONNECTION, DB_USER, DB_PASSWORD);
  19. initDB();
  20. importToDB("D:\\java_\\FlatsDB\\src\\import.csv");
  21. /*viewFlats();*/
  22. String q=getQuery();
  23. System.out.println(q);
  24. viewQwFlats(q);
  25. }
  26.  
  27. private static void initDB() throws SQLException {
  28. Statement st = conn.createStatement();
  29. try {
  30. st.execute("DROP TABLE IF EXISTS flats");
  31. st.execute("CREATE TABLE flats (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, district VARCHAR(20) NOT NULL," +
  32. " adress VARCHAR (50),area SMALLINT, quantity SMALLINT ,price DOUBLE )");
  33. } finally {
  34. st.close();
  35. }
  36. }
  37.  
  38.  
  39. private static void viewQwFlats(String query) throws SQLException {
  40. PreparedStatement ps = conn.prepareStatement(query);
  41. try {
  42. // table of data representing a database result set,
  43. ResultSet rs = ps.executeQuery();
  44. try {
  45. // can be used to get information about the types and properties of the columns in a ResultSet object
  46. ResultSetMetaData md = rs.getMetaData();
  47.  
  48. for (int i = 1; i <= md.getColumnCount(); i++)
  49. System.out.print(md.getColumnName(i) + "\t\t");
  50. System.out.println();
  51.  
  52. while (rs.next()) {
  53. for (int i = 1; i <= md.getColumnCount(); i++) {
  54. System.out.print(rs.getString(i) + "\t\t");
  55. }
  56. System.out.println();
  57. }
  58. } finally {
  59. rs.close(); // rs can't be null according to the docs
  60. }
  61. } finally {
  62. ps.close();
  63. }
  64. }
  65. public static void importToDB(String path) throws ParseException, SQLException {
  66. String word = "";
  67. try (BufferedReader br = new BufferedReader(new
  68. FileReader(path))) {
  69. while ((word = br.readLine()) != null) {
  70. String[] b = word.split(";");
  71. String distr = b[0];
  72. String adress = b[1];
  73. int area = Integer.parseInt(b[2]);
  74. int quantity = Integer.parseInt(b[3]);
  75. double price = Double.parseDouble(b[4]);
  76.  
  77. PreparedStatement ps = conn.prepareStatement("INSERT INTO flats (district, adress,area,quantity,price)" +
  78. " VALUES(?,?,?,?,?)");
  79. try {
  80. ps.setString(1, distr);
  81. ps.setString(2, adress);
  82. ps.setInt(3, area);
  83. ps.setInt(4, quantity);
  84. ps.setDouble(5, price);
  85. ps.executeUpdate(); // for INSERT, UPDATE & DELETE
  86. } finally {
  87. ps.close();
  88. }
  89. }
  90.  
  91. } catch (FileNotFoundException e1) {
  92. e1.printStackTrace();
  93. } catch (IOException e1) {
  94. e1.printStackTrace();
  95. }
  96. }
  97.  
  98. public static String getQuery(){
  99. Scanner sc=new Scanner(System.in);
  100. String buff="";
  101. System.out.println("Введите параметры запроса");
  102. System.out.println("Выбор района, введите часть названия или Enter, если учитывать не нужно");
  103. String distr=sc.nextLine();
  104.  
  105. System.out.println("Выбор улицы, введите часть названия или или Enter, если учитывать не нужно");
  106. String adr=sc.nextLine();
  107. System.out.println("Выбор количества комнат, введите 1...4 или или Enter, если учитывать не нужно");
  108.  
  109. int quant = Integer.parseInt(sc.nextLine());
  110. System.out.println("Укажите мин площадь,или или Enter, если учитывать не нужно");
  111.  
  112. int areaMin = Integer.parseInt(sc.nextLine());
  113. System.out.println("Укажите мах площадь,или Enter, если учитывать не нужно");
  114. int areaMax = Integer.parseInt(sc.nextLine());
  115. System.out.println("Укажите мин цену,или Enter, если учитывать не нужно");
  116. double priceMin = Double.parseDouble(sc.nextLine());
  117. System.out.println("Укажите мах цену,или Enter, если учитывать не нужно");
  118. double priceMax = Double.parseDouble(sc.nextLine());
  119. StringBuilder sb=new StringBuilder();
  120. sb.append("SELECT district, adress, price FROM flats WHERE ").append("district LIKE\'%").append(distr).append("%\'").
  121. append(" AND adress LIKE\'%").
  122. append(adr).append("%'").append ("AND price BETWEEN ").append(priceMin).append(" AND ").append(priceMax).append(";");
  123. String query= sb.toString();
  124. return query;
  125. }
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement