Guest User

Untitled

a guest
Nov 12th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.13 KB | None | 0 0
  1. import java.sql.*;
  2. import java.util.Random;
  3. import java.util.Scanner;
  4.  
  5. public class Main {
  6.  
  7. private static final String URL = "jdbc:mysql://localhost:3306/flats";
  8. private static final String USER = "root";
  9. private static final String PASSWORD = "admin";
  10.  
  11. static Connection connection;
  12.  
  13. public static void main(String[] args) {
  14. Scanner sc = new Scanner(System.in);
  15. try {
  16. try {
  17. connection = DriverManager.getConnection(URL, USER, PASSWORD);
  18. initDB();
  19.  
  20. while (true) {
  21. System.out.println("1: add flat");
  22. System.out.println("2: add random flat");
  23. System.out.println("3: delete flat");
  24. System.out.println("4: change flat prise");
  25. System.out.println("5: view flat with X rooms");
  26. System.out.println("6: view flat with X district");
  27. System.out.println("7: view flat with X square");
  28. System.out.println("8: view flat with X prise");
  29. System.out.println("9: view all flats");
  30. System.out.print("-> ");
  31.  
  32. String s = sc.nextLine();
  33. switch (s) {
  34. case "1":
  35. addFlat(sc);
  36. break;
  37. case "2":
  38. insertRandomFlat(sc);
  39. break;
  40. case "3":
  41. deleteFlat(sc);
  42. break;
  43. case "4":
  44. changeFlatPrise(sc);
  45. break;
  46. case "5":
  47. viewFlatsXRoom(sc);
  48. break;
  49. case "6":
  50. viewFlatsFromDisrtict(sc);
  51. break;
  52. case "7":
  53. viewFlatsXSquare(sc);
  54. break;
  55. case "8":
  56. viewFlatsXPrise(sc);
  57. break;
  58. case "9":
  59. viewAllFlats();
  60. break;
  61. default:
  62. return;
  63. }
  64. }
  65. } finally {
  66. sc.close();
  67. if (connection != null) connection.close();
  68. }
  69. } catch (SQLException ex) {
  70. ex.printStackTrace();
  71. return;
  72. }
  73. }
  74.  
  75.  
  76. private static void initDB() throws SQLException {
  77. Statement st = connection.createStatement();
  78. try {
  79. st.execute("DROP TABLE IF EXISTS FlatsTable");
  80. st.execute("CREATE TABLE FlatsTable (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY," +
  81. " district VARCHAR(30) NOT NULL, adres VARCHAR(100) NOT NULL, square INT NOT NULL," +
  82. " rooms INT NOT NULL, prise INT NOT NULL ) ");
  83. } finally {
  84. st.close();
  85. }
  86. }
  87.  
  88. private static void addFlat(Scanner sc) throws SQLException {
  89. System.out.print("Enter flat district: ");
  90. String district = sc.nextLine();
  91. System.out.print("Enter flat adres: ");
  92. String adres = sc.nextLine();
  93. System.out.print("Enter flat square: ");
  94. String sq = sc.nextLine();
  95. int square = Integer.parseInt(sq);
  96. System.out.print("Enter flat rooms count: ");
  97. String room = sc.nextLine();
  98. int rooms = Integer.parseInt(room);
  99. System.out.print("Enter flat rooms prise: ");
  100. String pr = sc.nextLine();
  101. int prise = Integer.parseInt(pr);
  102.  
  103. PreparedStatement ps = connection.prepareStatement("INSERT INTO FlatsTable (district, adres, square, rooms, prise ) VALUES(?, ?, ?, ?, ?)");
  104. try {
  105. ps.setString(1, district);
  106. ps.setString(2, adres);
  107. ps.setInt(3, square);
  108. ps.setInt(4, rooms);
  109. ps.setInt(5, prise);
  110. ps.executeUpdate(); // for INSERT, UPDATE & DELETE
  111. } finally {
  112. ps.close();
  113. }
  114. }
  115.  
  116. private static void deleteFlat(Scanner sc) throws SQLException {
  117. System.out.print("Enter flat adress: ");
  118. String adres = sc.nextLine();
  119.  
  120. PreparedStatement ps = connection.prepareStatement("DELETE FROM FlatsTable WHERE adres = ?");
  121. try {
  122. ps.setString(1, adres);
  123. ps.executeUpdate(); // for INSERT, UPDATE & DELETE
  124. } finally {
  125. ps.close();
  126. }
  127. }
  128.  
  129. private static void changeFlatPrise(Scanner sc) throws SQLException {
  130. System.out.print("Enter flat adress: ");
  131. String adres = sc.nextLine();
  132. System.out.print("Enter new prise: ");
  133. String pr = sc.nextLine();
  134. int prise = Integer.parseInt(pr);
  135.  
  136. PreparedStatement ps = connection.prepareStatement("UPDATE FlatsTable SET prise = ? WHERE adres = ?");
  137. try {
  138. ps.setString(1, adres);
  139. ps.setInt(2, prise);
  140. ps.executeUpdate(); // for INSERT, UPDATE & DELETE
  141. } finally {
  142. ps.close();
  143. }
  144. }
  145.  
  146. private static void insertRandomFlat(Scanner sc) throws SQLException {
  147. System.out.print("Enter flats count: ");
  148. String sCount = sc.nextLine();
  149. int count = Integer.parseInt(sCount);
  150. Random rnd = new Random();
  151.  
  152. connection.setAutoCommit(false); // enable transactions
  153. try {
  154. try {
  155. PreparedStatement ps = connection.prepareStatement("INSERT INTO FlatsTable (district, adres, square, rooms, prise ) VALUES(?, ?, ?, ?, ?)");
  156. try {
  157. for (int i = 0; i < count; i++) {
  158. ps.setString(1, "Suvorovskiy");
  159. ps.setString(2, "Yshakova " + i);
  160. ps.setInt(3, 30 + rnd.nextInt(10));
  161. ps.setInt(4, 1 + rnd.nextInt(3));
  162. ps.setInt(5, 20 + rnd.nextInt(20));
  163. ps.executeUpdate();
  164. }
  165. connection.commit();
  166. } finally {
  167. ps.close();
  168. }
  169. } catch (Exception ex) {
  170. connection.rollback();
  171. }
  172. } finally {
  173. connection.setAutoCommit(true); // return to default mode
  174. }
  175. }
  176.  
  177. private static void viewFlatsFromDisrtict(Scanner sc) throws SQLException {
  178. System.out.print("Enter Disrtict: ");
  179. String distr = sc.nextLine();
  180. PreparedStatement ps = connection.prepareStatement("SELECT * FROM FlatsTable WHERE district = ?");
  181.  
  182. try {
  183. ps.setString(1, distr);
  184. printSelect(ps);
  185. } finally {
  186. ps.close();
  187. }
  188. }
  189.  
  190. private static void viewFlatsXRoom(Scanner sc) throws SQLException {
  191. System.out.print("Enter Rooms count: ");
  192. String rmCount = sc.nextLine();
  193. int rCount = Integer.parseInt(rmCount);
  194. PreparedStatement ps = connection.prepareStatement("SELECT * FROM FlatsTable WHERE rooms = ?");
  195.  
  196. try {
  197. ps.setInt(1, rCount);
  198. printSelect(ps);
  199. } finally {
  200. ps.close();
  201. }
  202. }
  203.  
  204. private static void viewFlatsXSquare(Scanner sc) throws SQLException {
  205. System.out.print("Enter Square: ");
  206. String sq = sc.nextLine();
  207. int square = Integer.parseInt(sq);
  208. PreparedStatement ps = connection.prepareStatement("SELECT * FROM FlatsTable WHERE square = ?");
  209.  
  210. try {
  211. ps.setInt(1, square);
  212. printSelect(ps);
  213. } finally {
  214. ps.close();
  215. }
  216. }
  217.  
  218. private static void viewFlatsXPrise(Scanner sc) throws SQLException {
  219. System.out.print("Enter Prise: ");
  220. String pr = sc.nextLine();
  221. int price = Integer.parseInt(pr);
  222. PreparedStatement ps = connection.prepareStatement("SELECT * FROM FlatsTable WHERE price = ?");
  223. try {
  224. ps.setInt(1, price);
  225. printSelect(ps);
  226. } finally {
  227. ps.close();
  228. }
  229. }
  230.  
  231. private static void viewAllFlats() throws SQLException {
  232. PreparedStatement ps = connection.prepareStatement("SELECT * FROM FlatsTable");
  233. try {
  234. printSelect(ps);
  235. } finally {
  236. ps.close();
  237. }
  238. }
  239.  
  240. private static void printSelect(PreparedStatement ps) throws SQLException {
  241. ResultSet rs = ps.executeQuery();
  242. try {
  243. // can be used to get information about the types and properties of the columns in a ResultSet object
  244. ResultSetMetaData md = rs.getMetaData();
  245.  
  246. for (int i = 1; i <= md.getColumnCount(); i++)
  247. System.out.print(md.getColumnName(i) + "\t\t");
  248. System.out.println();
  249.  
  250. while (rs.next()) {
  251. for (int i = 1; i <= md.getColumnCount(); i++) {
  252. System.out.print(rs.getString(i) + "\t\t");
  253. }
  254. System.out.println();
  255. }
  256. } finally {
  257. rs.close(); // rs can't be null according to the docs
  258. }
  259. }
  260. }
Add Comment
Please, Sign In to add comment