sergAccount

Untitled

Sep 27th, 2020
715
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package com.spec.service;
  7.  
  8. import com.spec.DBUtil;
  9. import com.spec.model.UserAccount;
  10. import java.sql.Connection;
  11. import java.sql.PreparedStatement;
  12. import java.sql.ResultSet;
  13. import java.sql.ResultSetMetaData;
  14. import java.sql.SQLException;
  15. import java.sql.Statement;
  16. import java.util.List;
  17.  
  18. public class UserAccountService implements IUserAccountService{
  19.  
  20.     @Override
  21.     public int createAccount(UserAccount user) throws Exception {        
  22.         //
  23.         int pk = 0;        
  24.         final String sql = "INSERT INTO accounts (username, password, email, created_on, last_login) " +
  25.                            "VALUES(?, ?, ?, now(), NULL)";
  26.        
  27.         try(Connection c = DBUtil.getConn();
  28.                 PreparedStatement ps = c.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);){              
  29.             // установка параметра userName
  30.             ps.setString(1, user.getUserName());
  31.             ps.setString(2, user.getPassword());
  32.             ps.setString(3, user.getEmail());
  33.             // выполнение запроса
  34.             int res = ps.executeUpdate();            
  35.             System.out.println("createAccount.res=" + res);
  36.             //
  37.             try(ResultSet rs = ps.getGeneratedKeys()){
  38.                 ResultSetMetaData meta = rs.getMetaData();
  39.                 System.out.println("meta.getColumnCount()=" + meta.getColumnCount());
  40.                 for (int i = 1; i <= meta.getColumnCount(); i++) {
  41.                     System.out.println("meta.colName=" + meta.getColumnName(i));                    
  42.                 }
  43.                 if(rs.next()){
  44.                     //pk = rs.getInt(1);
  45.                     pk = rs.getInt("user_id");
  46.                     System.out.println("createAccount.pk=" + pk);
  47.                 }
  48.             }
  49.         }catch(SQLException ex){
  50.             ex.printStackTrace();
  51.             throw new Exception("error while createAccount", ex);
  52.         }
  53.         return pk;
  54.     }
  55.  
  56.     @Override
  57.     public boolean setAccount(UserAccount user) throws Exception {
  58.         //
  59.         final String sql = "UPDATE accounts SET password=?, email=? WHERE username=?";
  60.         try(Connection c = DBUtil.getConn();
  61.                 PreparedStatement ps = c.prepareStatement(sql);){              
  62.             // установка параметра userName
  63.             ps.setString(1, user.getPassword());
  64.             ps.setString(2, user.getEmail());
  65.             ps.setString(3, user.getUserName());
  66.             //
  67.             int res = ps.executeUpdate();      
  68.             return res>0;
  69.         }catch(SQLException ex){
  70.             ex.printStackTrace();
  71.             throw new Exception("error while setAccount", ex);
  72.         }        
  73.     }
  74.  
  75.     @Override
  76.     public void removeAccount(String userName) throws Exception {
  77.         // -- DELETE        
  78.         final String sql = "DELETE FROM accounts WHERE username=?";
  79.         try(Connection c = DBUtil.getConn();
  80.                 PreparedStatement ps = c.prepareStatement(sql);){              
  81.             // установка параметра userName
  82.             ps.setString(1, userName);
  83.             // выполнение запроса
  84.             int res = ps.executeUpdate();            
  85.             System.out.println("removeAccount.res=" + res);
  86.         }catch(SQLException ex){
  87.             ex.printStackTrace();
  88.             throw new Exception("error while removeAccount", ex);
  89.         }
  90.     }
  91.  
  92.     @Override
  93.     public UserAccount getUserAccount(String userName) {
  94.         return null;
  95.     }
  96.  
  97.     @Override
  98.     public List<UserAccount> getAll() {
  99.         return null;
  100.     }
  101.  
  102.     @Override
  103.     public List<UserAccount> findAccounts(Object /*Filter*/ filter) {
  104.         return null;
  105.     }    
  106.     //
  107. }
  108.  
RAW Paste Data