Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package javaapplication4;
- import java.sql.*;
- import java.util.*;
- public class Main {
- static final String JDBC_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
- static final String DATABASE_URL = "jdbc:odbc:AnyName";
- static final String USER = "RATMIR";
- static final String PASSWORD = "0000";
- public static void main(String[] args) throws ClassNotFoundException, SQLException {
- Connection con = null;
- Class.forName(JDBC_DRIVER);
- try {
- con = DriverManager.getConnection(DATABASE_URL, USER, PASSWORD);
- //perevod(con); //переводит деньги от одного CEO другому
- //BuyCar(con); //в меняет имя компании соответственно цену за ее услуги
- } catch (SQLException e) {
- e.printStackTrace();
- con.rollback();
- con.close();
- }
- }
- //**********************************************************************
- //первая транзакция
- public static void perevod(Connection con) throws SQLException {
- int fortune1=0, fortune2=0; //бюджет 1 и 2 провайдера
- try {
- con.setAutoCommit(false); //отключаем автоматическую транзакцию
- Statement st=con.createStatement(); //создаем оператор отсоединения
- System.out.println("Enter name s babki");
- Scanner s = new Scanner(System.in); //надо для ввода с клавиатуры
- String namec_1 = s.nextLine(); //вводим название первого провайдера
- ResultSet CEO=st.executeQuery("select fortune from CEO where namec='"+namec_1+"'"); //получаем его бюджет
- if(CEO.next())
- fortune1=CEO.getInt(1); //записываем в переменную бюджет первого
- System.out.println("Enter name kuda babki");
- String namec_2 = s.nextLine(); //ввод названия второго провайдера
- CEO=st.executeQuery("select fortune from CEO where namec='"+namec_2+"'"); //получаем бюджет второго
- if(CEO.next())
- fortune2=CEO.getInt(1); //записываем
- System.out.println(namec_2+"\t"+fortune2);
- System.out.println("Enter transfer amount"); //вывод просьбы ввести сумму перевода
- int babki = s.nextInt(); //записывает в переменную
- if(babki<=fortune1) { //если у первого провайдера достаточно денег для перевода
- fortune1=fortune1-babki; //тогда списываем с его счета эти деньги
- st.executeUpdate("update CEO set fortune="+fortune1+"where namec='"+namec_1+"'"); //обновляем об этом информацию в базе
- fortune2=fortune2+babki; //переводим на счет второго эти деньги
- st.executeUpdate("update CEO set fortune="+fortune2+"where namec='"+namec_2+"'"); //обновляем об этом информацию
- con.commit();
- CEO=st.executeQuery("select fortune from CEO where namec='"+namec_2+"'"); //получаем бюджет второго
- if(CEO.next())
- fortune2=CEO.getInt(1); //записываем
- System.out.println(namec_2+"\t"+fortune2);
- }
- } catch (SQLException e) { //если вылетело исключение связанное с работой с базой данных
- e.printStackTrace(); //печатаем что не так
- con.rollback(); //откатываем все изменения
- con.close(); //закрываем соединение
- }
- }
- //**********************************************************************
- //вторая транзакция
- public static void BuyCar(Connection con) throws SQLException {
- String belongsto="LRGF", newbuyer="Artem Ivanov", new_pass="7313", model=null; //название компании и юин
- int price=0, money=200000;
- try{
- con.setAutoCommit(false); //отключили автоматическую транзакцию
- con.setTransactionIsolation(8); //включили уровень изоляции, в данном случае самый высокий, SERIALIZABLE
- Statement st=con.createStatement();
- ResultSet res=st.executeQuery("select Price, Model from Cars where belongsto='"+belongsto+"'");
- if (res.next()) {
- price=res.getInt(1);
- model=res.getString(2);
- }
- // записали что получили в переменную price
- System.out.println(model+"\t "+price+"\t "+belongsto); //вывели на экран
- if(money>=price) //если он правильный, то
- {
- st.executeUpdate("insert into Buyer values ('"+newbuyer+"','12-01-1999','"+new_pass+"','Engineer','m')"); //обновили в базе данных информацию
- st.executeUpdate("update Cars set belongsto='"+new_pass+"' where belongsto='"+belongsto+"'"); //по этому поводу
- }
- con.commit(); //зафиксировали
- res=st.executeQuery("select belongsto, Price from Cars where Model='"+model+"'");
- if (res.next()) {
- belongsto=res.getString(1);
- price=res.getInt(2);
- }
- System.out.println(model+"\t "+price+"\t "+belongsto);
- }catch(SQLException e) //если исключение
- {
- e.printStackTrace(); //печатаем что не так
- con.rollback(); //откатили
- con.close(); //и отключились
- }
- }
- }
Add Comment
Please, Sign In to add comment