Guest User

АРТЁМ ИВАНОВ + ХУЙЛУША И ГНИЛЬ

a guest
Dec 25th, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.61 KB | None | 0 0
  1. package javaapplication4;
  2.  
  3. import java.sql.*;
  4. import java.util.*;
  5.  
  6. public class Main {
  7.  
  8. static final String JDBC_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
  9. static final String DATABASE_URL = "jdbc:odbc:AnyName";
  10. static final String USER = "RATMIR";
  11. static final String PASSWORD = "0000";
  12.  
  13. public static void main(String[] args) throws ClassNotFoundException, SQLException {
  14. Connection con = null;
  15. Class.forName(JDBC_DRIVER);
  16. try {
  17. con = DriverManager.getConnection(DATABASE_URL, USER, PASSWORD);
  18. //perevod(con); //переводит деньги от одного CEO другому
  19. //BuyCar(con); //в меняет имя компании соответственно цену за ее услуги
  20. } catch (SQLException e) {
  21. e.printStackTrace();
  22. con.rollback();
  23. con.close();
  24. }
  25. }
  26. //**********************************************************************
  27. //первая транзакция
  28. public static void perevod(Connection con) throws SQLException {
  29. int fortune1=0, fortune2=0; //бюджет 1 и 2 провайдера
  30. try {
  31. con.setAutoCommit(false); //отключаем автоматическую транзакцию
  32. Statement st=con.createStatement(); //создаем оператор отсоединения
  33. System.out.println("Enter name s babki");
  34. Scanner s = new Scanner(System.in); //надо для ввода с клавиатуры
  35. String namec_1 = s.nextLine(); //вводим название первого провайдера
  36. ResultSet CEO=st.executeQuery("select fortune from CEO where namec='"+namec_1+"'"); //получаем его бюджет
  37. if(CEO.next())
  38. fortune1=CEO.getInt(1); //записываем в переменную бюджет первого
  39. System.out.println("Enter name kuda babki");
  40. String namec_2 = s.nextLine(); //ввод названия второго провайдера
  41. CEO=st.executeQuery("select fortune from CEO where namec='"+namec_2+"'"); //получаем бюджет второго
  42. if(CEO.next())
  43. fortune2=CEO.getInt(1); //записываем
  44. System.out.println(namec_2+"\t"+fortune2);
  45. System.out.println("Enter transfer amount"); //вывод просьбы ввести сумму перевода
  46. int babki = s.nextInt(); //записывает в переменную
  47. if(babki<=fortune1) { //если у первого провайдера достаточно денег для перевода
  48. fortune1=fortune1-babki; //тогда списываем с его счета эти деньги
  49. st.executeUpdate("update CEO set fortune="+fortune1+"where namec='"+namec_1+"'"); //обновляем об этом информацию в базе
  50. fortune2=fortune2+babki; //переводим на счет второго эти деньги
  51. st.executeUpdate("update CEO set fortune="+fortune2+"where namec='"+namec_2+"'"); //обновляем об этом информацию
  52. con.commit();
  53. CEO=st.executeQuery("select fortune from CEO where namec='"+namec_2+"'"); //получаем бюджет второго
  54. if(CEO.next())
  55. fortune2=CEO.getInt(1); //записываем
  56. System.out.println(namec_2+"\t"+fortune2);
  57. }
  58. } catch (SQLException e) { //если вылетело исключение связанное с работой с базой данных
  59. e.printStackTrace(); //печатаем что не так
  60. con.rollback(); //откатываем все изменения
  61. con.close(); //закрываем соединение
  62. }
  63. }
  64.  
  65. //**********************************************************************
  66. //вторая транзакция
  67. public static void BuyCar(Connection con) throws SQLException {
  68. String belongsto="LRGF", newbuyer="Artem Ivanov", new_pass="7313", model=null; //название компании и юин
  69. int price=0, money=200000;
  70. try{
  71. con.setAutoCommit(false); //отключили автоматическую транзакцию
  72. con.setTransactionIsolation(8); //включили уровень изоляции, в данном случае самый высокий, SERIALIZABLE
  73. Statement st=con.createStatement();
  74. ResultSet res=st.executeQuery("select Price, Model from Cars where belongsto='"+belongsto+"'");
  75. if (res.next()) {
  76. price=res.getInt(1);
  77. model=res.getString(2);
  78. }
  79. // записали что получили в переменную price
  80. System.out.println(model+"\t "+price+"\t "+belongsto); //вывели на экран
  81. if(money>=price) //если он правильный, то
  82. {
  83. st.executeUpdate("insert into Buyer values ('"+newbuyer+"','12-01-1999','"+new_pass+"','Engineer','m')"); //обновили в базе данных информацию
  84. st.executeUpdate("update Cars set belongsto='"+new_pass+"' where belongsto='"+belongsto+"'"); //по этому поводу
  85. }
  86. con.commit(); //зафиксировали
  87. res=st.executeQuery("select belongsto, Price from Cars where Model='"+model+"'");
  88. if (res.next()) {
  89. belongsto=res.getString(1);
  90. price=res.getInt(2);
  91. }
  92. System.out.println(model+"\t "+price+"\t "+belongsto);
  93. }catch(SQLException e) //если исключение
  94. {
  95. e.printStackTrace(); //печатаем что не так
  96. con.rollback(); //откатили
  97. con.close(); //и отключились
  98. }
  99. }
  100. }
Add Comment
Please, Sign In to add comment