package com.mytutorial.dao;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.mytutorial.model.Account;
import com.mytutorial.util.ConnectionUtil;
public class AccountDaoImpl implements AccountDao {
public List<Account> getAccounts() {
Connection conn = null;
Statement stmnt = null;
ResultSet rs = null;
List<Account> accounts = new ArrayList<Account>();
try {
conn = ConnectionUtil.getConnection();
stmnt = conn.createStatement();
rs = stmnt.executeQuery("SELECT * FROM Account");
while (rs.next()) {
Account account = new Account();
account.setId(rs.getString("id"));
account.setName(rs.getString("name"));
float balance = rs.getFloat("balance");
account.setBalance(BigDecimal.valueOf(balance));
accounts.add(account);
}
} catch (SQLException sqle) {
sqle.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmnt != null) {
stmnt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
return accounts;
}
@Override
public boolean saveAccount(Account account) {
Connection conn = null;
PreparedStatement pStmnt = null;
try {
conn = ConnectionUtil.getConnection();
pStmnt = conn.prepareStatement("insert into account values (?,?,?)");
pStmnt.setString(1, account.getId());
pStmnt.setString(2, account.getName());
pStmnt.setFloat(3, account.getBalance().floatValue());
return pStmnt.execute();
} catch (SQLException sqle) {
sqle.printStackTrace();
} finally {
try {
if (pStmnt != null) {
pStmnt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
return false;
}
}