package database.transaction; import com.j256.ormlite.dao.Dao; import com.j256.ormlite.dao.DaoManager; import com.j256.ormlite.stmt.PreparedQuery; import com.j256.ormlite.stmt.QueryBuilder; import database.DatabaseHelper; import java.util.List; public class TransactionDao { private DatabaseHelper dbh = new DatabaseHelper(); private Dao transactionDao; private Dao createTransactionDaoConnection(){ try { return DaoManager.createDao(dbh.setupDatabaseConnection(),Transaction.class); }catch (Exception e){ System.out.println(e.getMessage()); return null; } } public void addTransaction(Transaction transaction)throws Exception{ transactionDao = createTransactionDaoConnection(); transactionDao.create(transaction); } public List getUserTransactions(String userHash)throws Exception{ transactionDao = createTransactionDaoConnection(); QueryBuilder queryBuilder = transactionDao.queryBuilder(); queryBuilder.where().eq("transaction_from",userHash).or().eq("transaction_to",userHash); queryBuilder.orderBy("transaction_date",false); PreparedQuery preparedQuery = queryBuilder.prepare(); return transactionDao.query(preparedQuery); } public List getTenLastUserTransactions(String userHash)throws Exception{ transactionDao = createTransactionDaoConnection(); QueryBuilder queryBuilder = transactionDao.queryBuilder(); queryBuilder.where().eq("transaction_from",userHash).or().eq("transaction_to",userHash); queryBuilder.limit(new Long(10)); queryBuilder.orderBy("transaction_date",false); PreparedQuery preparedQuery = queryBuilder.prepare(); return transactionDao.query(preparedQuery); } public Transaction getTransaction(String userHash, String transactionHash)throws Exception{ transactionDao = createTransactionDaoConnection(); QueryBuilder queryBuilder = transactionDao.queryBuilder(); queryBuilder.where().eq("transaction_to",userHash).or().eq("transaction_from",userHash).and().eq("transaction_hash",transactionHash); PreparedQuery preparedQuery = queryBuilder.prepare(); return transactionDao.queryForFirst(preparedQuery); } public List getUserSentTransaction(String userHash)throws Exception{ transactionDao = createTransactionDaoConnection(); QueryBuilder queryBuilder = transactionDao.queryBuilder(); queryBuilder.where().eq("transaction_from",userHash); queryBuilder.orderBy("transaction_date",false); PreparedQuery preparedQuery = queryBuilder.prepare(); return transactionDao.query(preparedQuery); } public List getUserReceivedTransaction(String userHash)throws Exception{ transactionDao = createTransactionDaoConnection(); QueryBuilder queryBuilder = transactionDao.queryBuilder(); queryBuilder.where().eq("transaction_to",userHash); queryBuilder.orderBy("transaction_date",false); PreparedQuery preparedQuery = queryBuilder.prepare(); return transactionDao.query(preparedQuery); } }