Advertisement
Guest User

Untitled

a guest
Jul 11th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.01 KB | None | 0 0
  1. public class Server implements Runnable{
  2.  
  3.  
  4. Socket connection;
  5. String input;
  6. DbHelper dbHelper = new DbHelper();
  7. List<Integer> list = new ArrayList<>();
  8.  
  9. public Server(Socket socket){
  10. this.connection = socket;
  11. }
  12.  
  13. public static void main(String[] args) throws IOException {
  14. System.out.println("Welcome to Server!");
  15. int i=1;
  16. ServerSocket servers = null;
  17.  
  18. try{
  19. servers = new ServerSocket(4444);
  20. }catch(IOException e){
  21. System.out.println("Can't connect to port");
  22. System.exit(-1);
  23. }
  24. //Ждем подключения клиента, запускаем поток на каждое подключение
  25. while(true){
  26. try{
  27. System.out.println("Waiting for a client...");
  28. Socket connection = servers.accept();
  29. Runnable runnable = new Server(connection);
  30. Thread thread = new Thread(runnable);
  31. thread.start();
  32. System.out.println("Client connected");
  33. }catch(IOException e){
  34. System.out.println("");
  35. System.exit(-1);
  36. }
  37. }
  38. }
  39.  
  40. @Override
  41. public void run() {
  42.  
  43. try {
  44. BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
  45. PrintWriter out = new PrintWriter(new OutputStreamWriter(connection.getOutputStream()), true);
  46. System.out.println("Waiting for messages...");
  47. try {
  48. if ((input = in.readLine()) != null) {
  49.  
  50. System.out.println("S: " + input);
  51. List<AccountpayE> result = dbHelper.readAccount(Integer.parseInt(input));
  52. for (AccountpayE accountpayEnt : result) {
  53. out.println(accountpayEnt.getName());
  54. out.println(accountpayEnt.getMoney());
  55.  
  56. }
  57.  
  58. List<AccountpayE> result1 = dbHelper.payAccount(Integer.parseInt(input));
  59. for (AccountpayE accountpayEnt : result1) {
  60. out.println(accountpayEnt.getNumber());
  61. out.println(accountpayEnt.getMoney());
  62. }
  63. }
  64. for (int i = 0; i < 3; i++) {
  65. if ((input = in.readLine()) != null) {
  66. list.add(Integer.parseInt(input));
  67. System.out.println(list.get(i));
  68. }
  69. }
  70. dbHelper.incertAccount(list.get(0),list.get(1),list.get(2));
  71. List<AccountpayE> result2 = dbHelper.readAccount(Integer.parseInt(input));
  72. for (AccountpayE accountpayEnt : result2) {
  73. out.println(accountpayEnt.getMoney());
  74. System.out.println(accountpayEnt.getMoney());
  75. }
  76. } catch (Exception e) {
  77. out.println("Error");
  78. }
  79.  
  80. } catch (IOException e) {
  81. e.printStackTrace();
  82. }
  83. }
  84. }
  85.  
  86. public class Client {
  87. public String fuser;
  88. public String fserver;
  89. PrintWriter out;
  90. BufferedReader in;
  91. BankViewAccount bankViewAccount = new BankViewAccount();
  92. BankView bankView = new BankView();
  93. List list = new ArrayList();
  94. private String userName;
  95.  
  96. public void setName(String name) {
  97. this.userName = name;
  98. }
  99.  
  100. public String getName() {
  101. return userName;
  102. }
  103.  
  104. Client() {
  105.  
  106. Socket fromserver = null;
  107. try {
  108. fromserver = new Socket("localhost", 4444);
  109. System.out.println("Welcome to Client!");
  110.  
  111. in = new BufferedReader(new InputStreamReader(fromserver.getInputStream()));
  112. out = new PrintWriter(new OutputStreamWriter(fromserver.getOutputStream()), true);
  113.  
  114. System.out.println("Set name: ");
  115. bankView.pack();
  116. bankView.setVisible(true);
  117. System.out.println(bankView.getNumber());
  118.  
  119.  
  120. if (bankView.getNumber() != null) {
  121. System.out.println("Account: " + bankView.getNumber());
  122. out.println(bankView.getNumber());
  123. }
  124.  
  125. if ((fserver = in.readLine()) != null) {
  126. if (fserver.equals("Error")) {
  127. JOptionPane.showMessageDialog(null, "Not Acoount", "Ошибка", JOptionPane.OK_OPTION);
  128. new Client();
  129. } else {
  130. bankViewAccount.label.setText(bankView.getNumber());
  131. bankViewAccount.textField1.setText(fserver);
  132. }
  133. }
  134. if ((fserver = in.readLine()) != null) {
  135. bankViewAccount.label.setText(bankView.getNumber());
  136. bankViewAccount.textField2.setText(fserver);
  137. bankViewAccount.pack();
  138. bankViewAccount.setVisible(true);
  139.  
  140. System.out.println("Transfer to account " + bankViewAccount.getNumberTo());
  141. out.println(bankView.getNumber());
  142. out.println(bankViewAccount.getNumberTo());
  143. out.println(bankViewAccount.getMoney());
  144.  
  145. }
  146. if ((fserver = in.readLine()) != null) {
  147. bankViewAccount.textField2.setText(fserver);
  148. System.out.println(fserver);
  149. }
  150.  
  151. } catch (IOException e) {
  152. JOptionPane.showMessageDialog(null, e.getMessage(), "Error", JOptionPane.OK_OPTION);
  153. } finally {
  154. try {
  155.  
  156. in.close();
  157. out.close();
  158. fromserver.close();
  159. } catch (IOException ex) {
  160. JOptionPane.showMessageDialog(null, ex.getMessage(), "Error", JOptionPane.OK_OPTION);
  161. }
  162. }
  163. }
  164. }
  165.  
  166. public class DbHelper {
  167. static Connection conn;
  168. private static DbHelper instance;
  169. private static String userName = "root";
  170. private static String password = "";
  171. private static String url = "jdbc:mysql://localhost/account";
  172. private Statement stmt = null;
  173. private ResultSet rs = null;
  174. private int sr;
  175. static Connection[] connections;
  176.  
  177. public static DbHelper getInstance() {
  178. if (instance == null) {
  179. instance = new DbHelper();
  180. }
  181. return instance;
  182. }
  183.  
  184. DbHelper() {
  185. try {
  186. Class.forName("com.mysql.jdbc.Driver").newInstance();
  187. conn = DriverManager.getConnection(url, userName, password);
  188. System.out.println("Database connection established");
  189. stmt = conn.createStatement();
  190.  
  191. } catch (Exception e) {
  192. e.printStackTrace();
  193. System.exit(0);
  194. } finally {
  195. {
  196. if (conn != null) {
  197. try {
  198. conn.close();
  199. System.out.println("Database connection terminated");
  200. } catch (Exception e) {
  201. }
  202. }
  203. }
  204. }
  205. }
  206.  
  207. public Connection getConn() {
  208. if (conn == null) {
  209. try {
  210. conn = DriverManager.getConnection(url);
  211. } catch (SQLException e) {
  212. e.printStackTrace();
  213. }
  214. }
  215. return conn;
  216. }
  217. public List<AccountpayE> listAccount() {
  218. Session session = HibernateUtil.getSessionFactory().getCurrentSession();
  219. session.beginTransaction();
  220. List<AccountpayE> result = session.createQuery("from AccountpayE").list();
  221. session.getTransaction().commit();
  222. session.close();
  223. return result;
  224. }
  225.  
  226. public List<AccountpayE> readAccount(Integer number) {
  227. Session session = HibernateUtil.getSessionFactory().getCurrentSession();
  228. session.beginTransaction();
  229. List<AccountpayE> result;
  230. result = session.createQuery("from AccountpayE where number="+number).list();
  231. session.getTransaction().commit();
  232. session.close();
  233.  
  234. return result;
  235. }
  236.  
  237. public List<AccountpayE> payAccount(Integer number) throws Exception {
  238. Session session = HibernateUtil.getSessionFactory().getCurrentSession();
  239. session.beginTransaction();
  240. List<AccountpayE> result1;
  241. result1 = session.createQuery("select number from AccountpayE where name=(select name from AccountpayE where number="+number).list();
  242. session.getTransaction().commit();
  243. session.close();
  244. // HibernateUtil.shutdown();
  245. return result1;
  246. }
  247. public void incertAccount(Integer number1, Integer number2, Integer money) throws Exception {
  248. Session session = HibernateUtil.getSessionFactory().getCurrentSession();
  249. session.beginTransaction();
  250. AccountpayE op = session.get(AccountpayE.class, number1);
  251. op.setMoney(op.getMoney()-money);
  252. session.update(op);
  253. AccountpayE op1 = session.get(AccountpayE.class, number2);
  254. op1.setMoney(op1.getMoney()+money);
  255. session.update(op);
  256. session.getTransaction().commit();
  257. session.close();
  258.  
  259. }
  260. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement