Advertisement
Guest User

Untitled

a guest
Apr 19th, 2016
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.47 KB | None | 0 0
  1. package kursovaya.model;
  2.  
  3. import kursovaya.Main;
  4.  
  5. import java.sql.*;
  6. import java.sql.Connection;
  7. import java.sql.PreparedStatement;
  8. import java.sql.Statement;
  9. import java.time.LocalDate;
  10. import java.util.ArrayList;
  11.  
  12. public class DBWorker {
  13. private static final String URL = "jdbc:mysql://localhost:3306/shop?useSSL=false"; //адрес БД
  14. private static final String NAME = "root"; //логин БД
  15. private static final String PASSWORD = "root"; //пароль БД
  16.  
  17. private Connection connection; //соединение с БД
  18. private Statement statement; //запрос
  19.  
  20. private Main mainApp; //экземпляр главного класса
  21.  
  22. /*
  23. * Конструтор
  24. * Создание соединения и запроса
  25. */
  26. public DBWorker() {
  27. try {
  28. connection = DriverManager.getConnection(URL, NAME, PASSWORD);
  29. statement = connection.createStatement();
  30. } catch (SQLException e) {
  31. e.printStackTrace();
  32. }
  33. }
  34.  
  35. /*
  36. * Геттер для соединения
  37. */
  38. public Connection getConnection() {
  39. return connection;
  40. }
  41.  
  42. public ArrayList<Category> readCategories() {
  43.  
  44. ArrayList<Category> categories = new ArrayList<>();
  45.  
  46. String queryForClient = "select * from category";
  47.  
  48. try {
  49. Statement statement = connection.createStatement();
  50. ResultSet resultSetForCategories = statement.executeQuery(queryForClient);
  51.  
  52. while(resultSetForCategories.next()) {
  53. Category category = new Category();
  54.  
  55. category.setId(resultSetForCategories.getInt(1));
  56. category.setCategory(resultSetForCategories.getString(2));
  57.  
  58. categories.add(category);
  59. }
  60.  
  61. } catch (SQLException e) {
  62. e.printStackTrace();
  63. }
  64.  
  65. return categories;
  66. }
  67.  
  68. public void deleteClient(Client c) {
  69. String delete = "delete from clients where id="+c.getId();
  70.  
  71. try(Statement statement = connection.createStatement()) {
  72. statement.execute(delete);
  73. } catch (SQLException e) {
  74. e.printStackTrace();
  75. }
  76. }
  77.  
  78. public void deleteProduct(Product p) {
  79. String delete = "delete from products where id="+p.getId();
  80.  
  81. try(Statement statement = connection.createStatement()) {
  82. statement.execute(delete);
  83. } catch (SQLException e) {
  84. e.printStackTrace();
  85. }
  86. }
  87. /*
  88. * Чтение клиентов из БД
  89. */
  90. public ArrayList<Client> readClients() {
  91.  
  92. ArrayList<Client> clients = new ArrayList<>();
  93.  
  94. String queryForClient = "select * from clients";
  95.  
  96. try {
  97. Statement statement = connection.createStatement();
  98. ResultSet resultSetForClients = statement.executeQuery(queryForClient);
  99.  
  100. while(resultSetForClients.next()) {
  101. Client client = new Client();
  102.  
  103. client.setId(resultSetForClients.getInt(1));
  104. client.setName(resultSetForClients.getString(2));
  105. client.setBank(resultSetForClients.getInt(3));
  106. client.setLogin(resultSetForClients.getString(4));
  107. client.setPassword(resultSetForClients.getString(5));
  108.  
  109. clients.add(client);
  110. }
  111.  
  112. } catch (SQLException e) {
  113. e.printStackTrace();
  114. }
  115.  
  116. return clients;
  117. }
  118.  
  119. /*
  120. * Чтение продуктов из БД
  121. */
  122. public ArrayList<Product> readProducts() {
  123. ArrayList<Product> products = new ArrayList<>();
  124.  
  125. String queryForProduct = "select * from products";
  126.  
  127. try {
  128. ResultSet resultSetForProducts = statement.executeQuery(queryForProduct);
  129.  
  130. while(resultSetForProducts.next()) {
  131. Product product = new Product();
  132.  
  133. product.setId(resultSetForProducts.getInt(1));
  134. product.setName(resultSetForProducts.getString(2));
  135. product.setPrice(resultSetForProducts.getInt(3));
  136. product.setQuantity(resultSetForProducts.getInt(4));
  137. product.setCategory(resultSetForProducts.getInt(5));
  138.  
  139. products.add(product);
  140. }
  141.  
  142. } catch (SQLException e) {
  143. e.printStackTrace();
  144. }
  145.  
  146. return products;
  147. }
  148.  
  149. /*
  150. * Запись клиентов в БД
  151. */
  152.  
  153. public void writeClients() {
  154. for(Client c : mainApp.getObsClients()) {
  155. if(c.getId() == 0) {
  156. String insert = "insert into clients(name, bank, login, pass) values(?, ?, ?, ?)";
  157. try(PreparedStatement statement = connection.prepareStatement(insert)) {
  158. statement.setString(1, c.getName());
  159. statement.setInt(2, c.getBank());
  160. statement.setString(3, c.getLogin());
  161. statement.setString(4, c.getPassword());
  162.  
  163. statement.execute();
  164. } catch (SQLException e) {
  165. e.printStackTrace();
  166. }
  167. } else {
  168. String update = "update clients set name='"+c.getName()+"', bank="+c.getBank()+
  169. ", login='"+c.getLogin()+"', pass='"+c.getPassword()+"' where id="+c.getId();
  170. try(Statement statement = connection.createStatement()) {
  171. statement.execute(update);
  172. } catch (SQLException e) {
  173. e.printStackTrace();
  174. }
  175. }
  176. }
  177. }
  178. /*
  179. * Запись продуктов в БД
  180. */
  181.  
  182. public void writeProducts() {
  183. for(Product p : mainApp.getObsProducts()) {
  184. if(p.getId() == 0) {
  185. String insert = "insert into products(name, price, quantity, category) values(?, ?, ?, ?)";
  186. try(PreparedStatement statement = connection.prepareStatement(insert)) {
  187. statement.setString(1, p.getName());
  188. statement.setInt(2, p.getPrice());
  189. statement.setInt(3, p.getQuantity());
  190. statement.setInt(4, p.getCategory());
  191.  
  192. statement.execute();
  193. } catch (SQLException e) {
  194. e.printStackTrace();
  195. }
  196. } else {
  197. String update = "update products set name='"+p.getName()+"', price="+p.getPrice()
  198. +", quantity="+p.getQuantity()+",category="+p.getCategory()+" where id="+p.getId();
  199. try(Statement statement = connection.createStatement()) {
  200. statement.execute(update);
  201. } catch (SQLException e) {
  202. e.printStackTrace();
  203. }
  204. }
  205. }
  206. }
  207.  
  208. public ArrayList<Report> readReports() {
  209. ArrayList<Report> reports = new ArrayList<>();
  210.  
  211. String queryForProduct = "select * from reports";
  212.  
  213. try {
  214. ResultSet resultSetForProducts = statement.executeQuery(queryForProduct);
  215.  
  216. while(resultSetForProducts.next()) {
  217. Report report = new Report();
  218.  
  219. report.setId(resultSetForProducts.getInt(1));
  220. report.setReport(resultSetForProducts.getString(2));
  221. report.setDate(resultSetForProducts.getDate(3).toLocalDate());
  222.  
  223. reports.add(report);
  224. }
  225.  
  226. } catch (SQLException e) {
  227. e.printStackTrace();
  228. }
  229.  
  230. return reports;
  231. }
  232.  
  233. public void writeReports() {
  234. for(Report r : mainApp.getObsReports()) {
  235. if(r.getId() == 0) {
  236. String insert = "insert into clients(report, date) values(?, ?)";
  237. try(PreparedStatement statement = connection.prepareStatement(insert)) {
  238. statement.setString(1, r.getReport());
  239. statement.setDate(2, Date.valueOf(r.getDate()));
  240.  
  241. statement.execute();
  242. } catch (SQLException e) {
  243. e.printStackTrace();
  244. }
  245. } else {
  246. String update = "update clients set report='"+r.getReport()+"', date='"+r.getDate()+"' where id="+r.getId();
  247. try(Statement statement = connection.createStatement()) {
  248. statement.execute(update);
  249. } catch (SQLException e) {
  250. e.printStackTrace();
  251. }
  252. }
  253. }
  254. }
  255.  
  256. public ArrayList<Report> readReportsWithDate(LocalDate date1, LocalDate date2) {
  257. ArrayList<Report> reports = new ArrayList<>();
  258.  
  259. String queryForProduct = "select * from reports where date < " + Date.valueOf(date1) + " and date > " + Date.valueOf(date2);
  260.  
  261. try {
  262. ResultSet resultSetForProducts = statement.executeQuery(queryForProduct);
  263.  
  264. while(resultSetForProducts.next()) {
  265. Report report = new Report();
  266.  
  267. report.setId(resultSetForProducts.getInt(1));
  268. report.setReport(resultSetForProducts.getString(2));
  269. report.setDate(resultSetForProducts.getDate(3).toLocalDate());
  270.  
  271. reports.add(report);
  272. }
  273.  
  274. } catch (SQLException e) {
  275. e.printStackTrace();
  276. }
  277.  
  278. return reports;
  279. }
  280.  
  281. public void writeReport(Report r) {
  282. if(r.getId() == 0) {
  283. String insert = "insert into clients(report, date) values(?, ?)";
  284. try(PreparedStatement statement = connection.prepareStatement(insert)) {
  285. statement.setString(1, r.getReport());
  286. statement.setDate(2, Date.valueOf(r.getDate()));
  287.  
  288. statement.execute();
  289. } catch (SQLException e) {
  290. e.printStackTrace();
  291. }
  292. } else {
  293. String update = "update clients set report='"+r.getReport()+"', date='"+r.getDate()+"' where id="+r.getId();
  294. try(Statement statement = connection.createStatement()) {
  295. statement.execute(update);
  296. } catch (SQLException e) {
  297. e.printStackTrace();
  298. }
  299. }
  300. }
  301. /*
  302. * Обратная связь для переменной главного класса
  303. */
  304. public void setMainApp(Main mainApp) {
  305. this.mainApp = mainApp;
  306. }
  307. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement