update dao

This commit is contained in:
GME 2019-04-17 23:22:05 +02:00
parent 58f866fef0
commit f526853722
5 changed files with 60 additions and 72 deletions

View file

@ -10,6 +10,7 @@ public class DatabaseHelper {
private static final String DATABASE_PWD = "vHEQszGXcJ6;/)}z!V"; private static final String DATABASE_PWD = "vHEQszGXcJ6;/)}z!V";
private final static String DATABASE_URL = "jdbc:postgresql://37.187.101.44:5432/"+DATABASE_NAME; private final static String DATABASE_URL = "jdbc:postgresql://37.187.101.44:5432/"+DATABASE_NAME;
public ConnectionSource setupDatabaseConnection(){ public ConnectionSource setupDatabaseConnection(){
try{ try{
return new JdbcConnectionSource(DATABASE_URL, DATABASE_USER, DATABASE_PWD); return new JdbcConnectionSource(DATABASE_URL, DATABASE_USER, DATABASE_PWD);

View file

@ -16,23 +16,26 @@ import java.util.List;
public class WalletDao { public class WalletDao {
private DatabaseHelper dbh = new DatabaseHelper(); private DatabaseHelper dbh = new DatabaseHelper();
private Dao<Wallet, String> walletDao; private Dao<Wallet, String> walletDao;
private boolean sessionOpen = false;
private Dao createWalletDaoConnection(){ private void createWalletDaoConnection(){
try { try {
return DaoManager.createDao(dbh.setupDatabaseConnection(),Wallet.class); if(!sessionOpen){
walletDao = DaoManager.createDao(dbh.setupDatabaseConnection(),Wallet.class);
sessionOpen=true;
}
}catch (Exception e){ }catch (Exception e){
System.out.println(e.getMessage()); e.printStackTrace();
return null;
} }
} }
public void addWallet(Wallet wallet)throws Exception { public void addWallet(Wallet wallet)throws Exception {
walletDao = createWalletDaoConnection(); createWalletDaoConnection();
walletDao.create(wallet); walletDao.create(wallet);
} }
public Wallet getWallet(String walletHash) throws Exception { public Wallet getWallet(String walletHash) throws Exception {
walletDao = createWalletDaoConnection(); createWalletDaoConnection();
QueryBuilder<Wallet, String> queryBuilder = walletDao.queryBuilder(); QueryBuilder<Wallet, String> queryBuilder = walletDao.queryBuilder();
queryBuilder.where().eq("wallet_hash",walletHash).and().eq("is_active",true); queryBuilder.where().eq("wallet_hash",walletHash).and().eq("is_active",true);
PreparedQuery<Wallet> preparedQuery = queryBuilder.prepare(); PreparedQuery<Wallet> preparedQuery = queryBuilder.prepare();
@ -40,8 +43,7 @@ public class WalletDao {
} }
public void updateWalletBalance(String walletHash, double newBalance) throws Exception { public void updateWalletBalance(String walletHash, double newBalance) throws Exception {
createWalletDaoConnection();
walletDao = createWalletDaoConnection();
UpdateBuilder<Wallet, String> updateBuilder = walletDao.updateBuilder(); UpdateBuilder<Wallet, String> updateBuilder = walletDao.updateBuilder();
long now = Instant.now().toEpochMilli(); long now = Instant.now().toEpochMilli();
updateBuilder.updateColumnValue("balance",newBalance); updateBuilder.updateColumnValue("balance",newBalance);
@ -51,7 +53,7 @@ public class WalletDao {
} }
public List<Wallet> getUserWallet(String userHash) throws Exception { public List<Wallet> getUserWallet(String userHash) throws Exception {
walletDao = createWalletDaoConnection(); createWalletDaoConnection();
QueryBuilder<Wallet, String> queryBuilder = walletDao.queryBuilder(); QueryBuilder<Wallet, String> queryBuilder = walletDao.queryBuilder();
queryBuilder.where().eq("user_hash",userHash).and().eq("is_active",true); queryBuilder.where().eq("user_hash",userHash).and().eq("is_active",true);
PreparedQuery<Wallet> preparedQuery = queryBuilder.prepare(); PreparedQuery<Wallet> preparedQuery = queryBuilder.prepare();
@ -59,7 +61,7 @@ public class WalletDao {
} }
public List<Wallet> getUserOldWallets(String userHash) throws Exception{ public List<Wallet> getUserOldWallets(String userHash) throws Exception{
walletDao = createWalletDaoConnection(); createWalletDaoConnection();
QueryBuilder<Wallet, String> queryBuilder = walletDao.queryBuilder(); QueryBuilder<Wallet, String> queryBuilder = walletDao.queryBuilder();
queryBuilder.where().eq("user_hash",userHash).and().eq("is_active",false); queryBuilder.where().eq("user_hash",userHash).and().eq("is_active",false);
PreparedQuery<Wallet> preparedQuery = queryBuilder.prepare(); PreparedQuery<Wallet> preparedQuery = queryBuilder.prepare();
@ -67,7 +69,7 @@ public class WalletDao {
} }
public void transferWallet(String walletHash, String newUserHash) throws Exception{ public void transferWallet(String walletHash, String newUserHash) throws Exception{
walletDao = createWalletDaoConnection(); createWalletDaoConnection();
UpdateBuilder<Wallet, String> updateBuilder = walletDao.updateBuilder(); UpdateBuilder<Wallet, String> updateBuilder = walletDao.updateBuilder();
updateBuilder.updateColumnValue("user_hash",newUserHash); updateBuilder.updateColumnValue("user_hash",newUserHash);
long now = Instant.now().toEpochMilli(); long now = Instant.now().toEpochMilli();
@ -77,7 +79,7 @@ public class WalletDao {
} }
public void deleteWallet(String walletHash, String userHash) throws Exception{ public void deleteWallet(String walletHash, String userHash) throws Exception{
walletDao = createWalletDaoConnection(); createWalletDaoConnection();
UpdateBuilder<Wallet, String> updateBuilder = walletDao.updateBuilder(); UpdateBuilder<Wallet, String> updateBuilder = walletDao.updateBuilder();
updateBuilder.updateColumnValue("is_active",false); updateBuilder.updateColumnValue("is_active",false);
long now = Instant.now().toEpochMilli(); long now = Instant.now().toEpochMilli();

View file

@ -9,24 +9,27 @@ import java.time.Instant;
public class SessionDao { public class SessionDao {
private DatabaseHelper dbh = new DatabaseHelper(); private DatabaseHelper dbh = new DatabaseHelper();
private Dao<Session, String> sessionDao; private Dao<Session, String> sessionDao;
private boolean sessionOpen = false;
private Dao createSessionDaoConnection(){ private void createSessionDaoConnection(){
try { try {
return DaoManager.createDao(dbh.setupDatabaseConnection(),Session.class); if(!sessionOpen){
sessionDao = DaoManager.createDao(dbh.setupDatabaseConnection(),Session.class);
sessionOpen=true;
}
}catch (Exception e){ }catch (Exception e){
System.out.println(e.getMessage()); e.printStackTrace();
return null;
} }
} }
public int setStartSession(Session session) throws Exception { public int setStartSession(Session session) throws Exception {
sessionDao = createSessionDaoConnection(); createSessionDaoConnection();
sessionDao.create(session); sessionDao.create(session);
return session.getSession_id(); return session.getSession_id();
} }
public void setEndSession(int session_id) throws Exception { public void setEndSession(int session_id) throws Exception {
sessionDao = createSessionDaoConnection(); createSessionDaoConnection();
UpdateBuilder<Session,String> updateBuilder = sessionDao.updateBuilder(); UpdateBuilder<Session,String> updateBuilder = sessionDao.updateBuilder();
long now = Instant.now().toEpochMilli(); long now = Instant.now().toEpochMilli();
updateBuilder.updateColumnValue("end_session",now); updateBuilder.updateColumnValue("end_session",now);

View file

@ -11,33 +11,25 @@ import java.util.List;
public class TransactionDao { public class TransactionDao {
private DatabaseHelper dbh = new DatabaseHelper(); private DatabaseHelper dbh = new DatabaseHelper();
private Dao<Transaction, String> transactionDao; private Dao<Transaction, String> transactionDao;
private boolean sessionOpen = false;
private Dao createTransactionDaoConnection(){ private void createTransactionDaoConnection(){
try { try {
return DaoManager.createDao(dbh.setupDatabaseConnection(),Transaction.class); if(!sessionOpen){
transactionDao = DaoManager.createDao(dbh.setupDatabaseConnection(),Transaction.class);
sessionOpen=true;
}
}catch (Exception e){ }catch (Exception e){
System.out.println(e.getMessage()); e.printStackTrace();
return null;
} }
} }
public void addTransaction(Transaction transaction)throws Exception{ public void addTransaction(Transaction transaction)throws Exception{
transactionDao = createTransactionDaoConnection(); createTransactionDaoConnection();
transactionDao.create(transaction); transactionDao.create(transaction);
} }
public List<Transaction> getWalletTransactions(String wallet_hash)throws Exception{ public List<Transaction> getWalletTransactions(String wallet_hash)throws Exception{
transactionDao = createTransactionDaoConnection(); createTransactionDaoConnection();
QueryBuilder<Transaction, String> queryBuilder = transactionDao.queryBuilder();
queryBuilder.where().eq("transaction_from",wallet_hash).or().eq("transaction_to",wallet_hash);
queryBuilder.orderBy("transaction_date",false);
PreparedQuery<Transaction> preparedQuery = queryBuilder.prepare();
return transactionDao.query(preparedQuery);
}
/*
public List<Transaction> getTenLastUserTransactions(String wallet_hash)throws Exception{
transactionDao = createTransactionDaoConnection();
QueryBuilder<Transaction, String> queryBuilder = transactionDao.queryBuilder(); QueryBuilder<Transaction, String> queryBuilder = transactionDao.queryBuilder();
queryBuilder.where().eq("transaction_from",wallet_hash).or().eq("transaction_to",wallet_hash); queryBuilder.where().eq("transaction_from",wallet_hash).or().eq("transaction_to",wallet_hash);
queryBuilder.limit(new Long(10)); queryBuilder.limit(new Long(10));
@ -45,10 +37,9 @@ public class TransactionDao {
PreparedQuery<Transaction> preparedQuery = queryBuilder.prepare(); PreparedQuery<Transaction> preparedQuery = queryBuilder.prepare();
return transactionDao.query(preparedQuery); return transactionDao.query(preparedQuery);
} }
*/
public Transaction getTransaction(String wallet_hash, String transaction_hash)throws Exception{ public Transaction getTransaction(String wallet_hash, String transaction_hash)throws Exception{
transactionDao = createTransactionDaoConnection(); createTransactionDaoConnection();
QueryBuilder<Transaction, String> queryBuilder = transactionDao.queryBuilder(); QueryBuilder<Transaction, String> queryBuilder = transactionDao.queryBuilder();
queryBuilder.where().eq("transaction_to",wallet_hash).or().eq("transaction_from",wallet_hash).and().eq("transaction_hash",transaction_hash); queryBuilder.where().eq("transaction_to",wallet_hash).or().eq("transaction_from",wallet_hash).and().eq("transaction_hash",transaction_hash);
PreparedQuery<Transaction> preparedQuery = queryBuilder.prepare(); PreparedQuery<Transaction> preparedQuery = queryBuilder.prepare();
@ -56,7 +47,7 @@ public class TransactionDao {
} }
public List<Transaction> getUserSentTransaction(String wallet_hash)throws Exception{ public List<Transaction> getUserSentTransaction(String wallet_hash)throws Exception{
transactionDao = createTransactionDaoConnection(); createTransactionDaoConnection();
QueryBuilder<Transaction, String> queryBuilder = transactionDao.queryBuilder(); QueryBuilder<Transaction, String> queryBuilder = transactionDao.queryBuilder();
queryBuilder.where().eq("transaction_from",wallet_hash); queryBuilder.where().eq("transaction_from",wallet_hash);
queryBuilder.orderBy("transaction_date",false); queryBuilder.orderBy("transaction_date",false);
@ -65,7 +56,7 @@ public class TransactionDao {
} }
public List<Transaction> getUserReceivedTransaction(String wallet_hash)throws Exception{ public List<Transaction> getUserReceivedTransaction(String wallet_hash)throws Exception{
transactionDao = createTransactionDaoConnection(); createTransactionDaoConnection();
QueryBuilder<Transaction, String> queryBuilder = transactionDao.queryBuilder(); QueryBuilder<Transaction, String> queryBuilder = transactionDao.queryBuilder();
queryBuilder.where().eq("transaction_to",wallet_hash); queryBuilder.where().eq("transaction_to",wallet_hash);
queryBuilder.orderBy("transaction_date",false); queryBuilder.orderBy("transaction_date",false);
@ -73,5 +64,4 @@ public class TransactionDao {
return transactionDao.query(preparedQuery); return transactionDao.query(preparedQuery);
} }
} }

View file

@ -12,24 +12,26 @@ import java.time.Instant;
//Class to communicate with database with ORMLite //Class to communicate with database with ORMLite
public class UserDao { public class UserDao {
private DatabaseHelper dbh = new DatabaseHelper(); private DatabaseHelper dbh = new DatabaseHelper();
private Dao createUserDaoConnection(){ private boolean sessionOpen = false;
private Dao<User, String> userDao ;
private void createUserDaoConnection(){
try { try {
return DaoManager.createDao(dbh.setupDatabaseConnection(),User.class); if(!sessionOpen){
userDao = DaoManager.createDao(dbh.setupDatabaseConnection(),User.class);
sessionOpen = true;
}
}catch (Exception e){ }catch (Exception e){
System.out.println(e.getMessage()); e.printStackTrace();
return null;
} }
} }
public void addUser(User user)throws Exception { public void addUser(User user)throws Exception {
Dao<User, String> userDao; createUserDaoConnection();
userDao = createUserDaoConnection();
userDao.create(user); userDao.create(user);
} }
public boolean checkApprovedUser(String email) throws Exception { public boolean checkApprovedUser(String email) throws Exception {
Dao<User, String> userDao; createUserDaoConnection();
userDao = createUserDaoConnection();
QueryBuilder<User, String> queryBuilder = userDao.queryBuilder(); QueryBuilder<User, String> queryBuilder = userDao.queryBuilder();
queryBuilder.where().eq("email",email); queryBuilder.where().eq("email",email);
PreparedQuery<User> preparedQuery = queryBuilder.prepare(); PreparedQuery<User> preparedQuery = queryBuilder.prepare();
@ -38,8 +40,7 @@ public class UserDao {
} }
public boolean checkVerifiedUser(String email) throws Exception { public boolean checkVerifiedUser(String email) throws Exception {
Dao<User, String> userDao; createUserDaoConnection();
userDao = createUserDaoConnection();
QueryBuilder<User, String> queryBuilder = userDao.queryBuilder(); QueryBuilder<User, String> queryBuilder = userDao.queryBuilder();
queryBuilder.where().eq("email",email); queryBuilder.where().eq("email",email);
PreparedQuery<User> preparedQuery = queryBuilder.prepare(); PreparedQuery<User> preparedQuery = queryBuilder.prepare();
@ -48,8 +49,7 @@ public class UserDao {
} }
public boolean updateUserPassword(String email, String password) throws Exception { public boolean updateUserPassword(String email, String password) throws Exception {
Dao<User, String> userDao; createUserDaoConnection();
userDao = createUserDaoConnection();
UpdateBuilder<User, String> updateBuilder = userDao.updateBuilder(); UpdateBuilder<User, String> updateBuilder = userDao.updateBuilder();
updateBuilder.updateColumnValue("password",password); updateBuilder.updateColumnValue("password",password);
long now = Instant.now().toEpochMilli(); long now = Instant.now().toEpochMilli();
@ -65,16 +65,14 @@ public class UserDao {
} }
public void deleteUser(String email) throws Exception { public void deleteUser(String email) throws Exception {
Dao<User, String> userDao; createUserDaoConnection();
userDao = createUserDaoConnection();
DeleteBuilder<User, String> deleteBuilder = userDao.deleteBuilder(); DeleteBuilder<User, String> deleteBuilder = userDao.deleteBuilder();
deleteBuilder.where().eq("email",email); deleteBuilder.where().eq("email",email);
deleteBuilder.delete(); deleteBuilder.delete();
} }
public boolean verifyUserExist(String email) throws Exception { public boolean verifyUserExist(String email) throws Exception {
Dao<User, String> userDao; createUserDaoConnection();
userDao = createUserDaoConnection();
QueryBuilder<User, String> queryBuilder = userDao.queryBuilder(); QueryBuilder<User, String> queryBuilder = userDao.queryBuilder();
queryBuilder.where().eq("email",email); queryBuilder.where().eq("email",email);
PreparedQuery<User> preparedQuery = queryBuilder.prepare(); PreparedQuery<User> preparedQuery = queryBuilder.prepare();
@ -88,6 +86,7 @@ public class UserDao {
} }
public boolean checkUserPassword(String email, String password) throws Exception { public boolean checkUserPassword(String email, String password) throws Exception {
createUserDaoConnection();
User user = getUserWithEmail(email); User user = getUserWithEmail(email);
if(password.equals(user.getPassword())){ if(password.equals(user.getPassword())){
return true; return true;
@ -97,11 +96,10 @@ public class UserDao {
} }
public User getUserWithEmail(String email) throws Exception { public User getUserWithEmail(String email) throws Exception {
Dao<User, String> userDao; createUserDaoConnection();
if(!verifyUserExist(email)){ if(!verifyUserExist(email)){
return null; return null;
}else{ }else{
userDao = createUserDaoConnection();
QueryBuilder<User, String> queryBuilder = userDao.queryBuilder(); QueryBuilder<User, String> queryBuilder = userDao.queryBuilder();
queryBuilder.where().eq("email",email); queryBuilder.where().eq("email",email);
PreparedQuery<User> preparedQuery = queryBuilder.prepare(); PreparedQuery<User> preparedQuery = queryBuilder.prepare();
@ -110,8 +108,7 @@ public class UserDao {
} }
public User getUserWithPhone(String phone) throws Exception { public User getUserWithPhone(String phone) throws Exception {
Dao<User, String> userDao; createUserDaoConnection();
userDao = createUserDaoConnection();
QueryBuilder<User, String> queryBuilder = userDao.queryBuilder(); QueryBuilder<User, String> queryBuilder = userDao.queryBuilder();
queryBuilder.where().eq("phone",phone); queryBuilder.where().eq("phone",phone);
PreparedQuery<User> preparedQuery = queryBuilder.prepare(); PreparedQuery<User> preparedQuery = queryBuilder.prepare();
@ -119,8 +116,7 @@ public class UserDao {
} }
public User getUserWithMailAndPhone(String email, String phone) throws Exception { public User getUserWithMailAndPhone(String email, String phone) throws Exception {
Dao<User, String> userDao; createUserDaoConnection();
userDao = createUserDaoConnection();
QueryBuilder<User, String> queryBuilder = userDao.queryBuilder(); QueryBuilder<User, String> queryBuilder = userDao.queryBuilder();
queryBuilder.where().eq("email",email).and().eq("phone",phone); queryBuilder.where().eq("email",email).and().eq("phone",phone);
PreparedQuery<User> preparedQuery = queryBuilder.prepare(); PreparedQuery<User> preparedQuery = queryBuilder.prepare();
@ -128,8 +124,7 @@ public class UserDao {
} }
public User getUserWithHash(String userHash) throws Exception { public User getUserWithHash(String userHash) throws Exception {
Dao<User, String> userDao; createUserDaoConnection();
userDao = createUserDaoConnection();
QueryBuilder<User,String> queryBuilder = userDao.queryBuilder(); QueryBuilder<User,String> queryBuilder = userDao.queryBuilder();
queryBuilder.where().eq("user_hash",userHash); queryBuilder.where().eq("user_hash",userHash);
PreparedQuery<User> preparedQuery = queryBuilder.prepare(); PreparedQuery<User> preparedQuery = queryBuilder.prepare();
@ -137,8 +132,7 @@ public class UserDao {
} }
public int getUserIdWithHashAndEmail(String userHash, String userEmail) throws Exception { public int getUserIdWithHashAndEmail(String userHash, String userEmail) throws Exception {
Dao<User, String> userDao; createUserDaoConnection();
userDao = createUserDaoConnection();
QueryBuilder<User,String> queryBuilder = userDao.queryBuilder(); QueryBuilder<User,String> queryBuilder = userDao.queryBuilder();
queryBuilder.where().eq("user_hash",userHash).and().eq("email",userEmail); queryBuilder.where().eq("user_hash",userHash).and().eq("email",userEmail);
PreparedQuery<User> preparedQuery = queryBuilder.prepare(); PreparedQuery<User> preparedQuery = queryBuilder.prepare();
@ -147,8 +141,7 @@ public class UserDao {
} }
public void approveUser (String email) throws Exception { public void approveUser (String email) throws Exception {
Dao<User, String> userDao; createUserDaoConnection();
userDao = createUserDaoConnection();
UpdateBuilder<User, String> updateBuilder = userDao.updateBuilder(); UpdateBuilder<User, String> updateBuilder = userDao.updateBuilder();
updateBuilder.updateColumnValue("approved",true); updateBuilder.updateColumnValue("approved",true);
long now = Instant.now().toEpochMilli(); long now = Instant.now().toEpochMilli();
@ -158,8 +151,7 @@ public class UserDao {
} }
public void verifyUser (String email) throws Exception{ public void verifyUser (String email) throws Exception{
Dao<User, String> userDao; createUserDaoConnection();
userDao = createUserDaoConnection();
UpdateBuilder<User, String> updateBuilder = userDao.updateBuilder(); UpdateBuilder<User, String> updateBuilder = userDao.updateBuilder();
updateBuilder.updateColumnValue("verified",true); updateBuilder.updateColumnValue("verified",true);
long now = Instant.now().toEpochMilli(); long now = Instant.now().toEpochMilli();