Advertisement
Guest User

DBManager

a guest
Oct 31st, 2016
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.13 KB | None | 0 0
  1. package com.unibet.worktest.processing;
  2. import java.math.BigDecimal;
  3. import java.sql.*;
  4.  
  5. import com.unibet.worktest.bank.Money;
  6. public class DBManager {
  7.         public static Connection connection;
  8.         public DBManager()
  9.                 throws Exception {
  10.             Class.forName("org.h2.Driver");
  11.             connection= DriverManager.
  12.                 getConnection("jdbc:h2:mem:test;mode=MySQL", "sa", "");
  13.                 //getConnection("jdbc:h2:~/test", "sa", "");
  14.             // Create the table
  15.             String sql = "CREATE TABLE ACCOUNTS " +
  16.                     "(accountref VARCHAR(20) , " +
  17.                     " balance DECIMAL(20, 2))";
  18.             createTable(sql);
  19.             sql = "CREATE TABLE TRANSACTIONS " +
  20.                     "(txref VARCHAR(20), " +
  21.                     " accref VARCHAR(20), " +
  22.                     " type VARCHAR(20), "+
  23.                     " amount DECIMAL(20, 2), "+
  24.                     " date TIMESTAMP)";
  25.             createTable(sql);
  26.         }
  27.        
  28.         public void createTable(String sql){
  29.             Statement stmt = null;
  30.  
  31.             try {
  32.                 stmt = connection.createStatement();
  33.                 stmt.executeUpdate(sql);
  34.                 System.out.println("Created table in given database...");
  35.             } catch (SQLException se) {
  36.                 //Handle errors for JDBC
  37.                 se.printStackTrace();
  38.             } catch (Exception e) {
  39.                 //Handle errors for Class.forName
  40.                 e.printStackTrace();
  41.             }
  42.         }
  43.        
  44.         public void insertAccount(String accountRef, BigDecimal balance){
  45.             ResultSet rs;
  46.             Statement stmt = null;
  47.              try {
  48.                  stmt = connection.createStatement();
  49.                  String sql = String.format( "INSERT INTO ACCOUNTS " + "VALUES ('%s' , %s) ", accountRef,balance);
  50.                  
  51.                  stmt.executeUpdate(sql);
  52.  
  53.              } catch (SQLException se) {
  54.                  //Handle errors for JDBC
  55.                  se.printStackTrace();
  56.              } catch (Exception e) {
  57.                  //Handle errors for Class.forName
  58.                  e.printStackTrace();
  59.              }
  60.         }
  61.        
  62.        
  63.         public ResultSet retriveBalance(String accountRef){
  64.             ResultSet rs=null;
  65.             Statement stmt = null;
  66.             try {
  67.                 stmt = connection.createStatement();
  68.                  String sql = String.format( "SELECT * FROM ACCOUNTS WHERE accountref= '%s'",accountRef);
  69.                  rs = stmt.executeQuery(sql);
  70.                
  71.             } catch (SQLException se) {
  72.                 se.printStackTrace();
  73.             } catch (Exception e) {
  74.                  //Handle errors for Class.forName
  75.                  e.printStackTrace();
  76.              }
  77.             return rs;
  78.         }
  79.        
  80.         public void changeBalance(String accountRef, BigDecimal amount){
  81.             Statement stmt = null;
  82.              try {
  83.                  stmt = connection.createStatement();
  84.                  BigDecimal currentBal=new BigDecimal(0.0);
  85.                  ResultSet rs=retriveBalance( accountRef);
  86.                  while (rs.next()) {
  87.                     currentBal= new BigDecimal(rs.getString("balance"));
  88.                  }
  89.                  String sql = String.format( "UPDATE ACCOUNTS SET balance=%s WHERE accountref='%s' ",currentBal.add(amount),accountRef);
  90.                  stmt.executeUpdate(sql);
  91.  
  92.              } catch (SQLException se) {
  93.                  //Handle errors for JDBC
  94.                  se.printStackTrace();
  95.              } catch (Exception e) {
  96.                  //Handle errors for Class.forName
  97.                  e.printStackTrace();
  98.              }
  99.         }
  100.         public void insertTransaction(String transactionRef, String accountRef, String type, BigDecimal amount){
  101.             Statement stmt = null;
  102.              try {
  103.                  stmt = connection.createStatement();
  104.  
  105.                  String sql = String.format( "INSERT INTO TRANSACTIONS " + "VALUES ('%s', '%s', '%S', %s , CURRENT_TIMESTAMP())", transactionRef, accountRef, type, amount.toString());
  106.                  stmt.executeUpdate(sql);
  107.  
  108.              } catch (SQLException se) {
  109.                  //Handle errors for JDBC
  110.                  se.printStackTrace();
  111.              } catch (Exception e) {
  112.                  //Handle errors for Class.forName
  113.                  e.printStackTrace();
  114.              }
  115.         }
  116.        
  117.         public ResultSet getAccountLegs(String accountRef){
  118.             ResultSet rs=null;
  119.             Statement stmt = null;
  120.             try {
  121.                 stmt = connection.createStatement();
  122.                  String sql = String.format( "SELECT * FROM TRANSACTIONS WHERE accref= '%s'",accountRef);
  123.                  rs = stmt.executeQuery(sql);
  124.                 return rs;
  125.             } catch (SQLException se) {
  126.                 se.printStackTrace();
  127.             } catch (Exception e) {
  128.                  //Handle errors for Class.forName
  129.                  e.printStackTrace();
  130.              }
  131.             return rs;
  132.         }
  133.         public ResultSet getTransactionLegs(String txRef){
  134.             ResultSet rs=null;
  135.             Statement stmt = null;
  136.             try {
  137.                 stmt = connection.createStatement();
  138.                  String sql = String.format( "SELECT * FROM TRANSACTIONS WHERE txRef= '%s'",txRef);
  139.                  rs = stmt.executeQuery(sql);
  140.                 return rs;
  141.             } catch (SQLException se) {
  142.                 se.printStackTrace();
  143.             } catch (Exception e) {
  144.                  //Handle errors for Class.forName
  145.                  e.printStackTrace();
  146.              }
  147.             return rs;
  148.         }
  149.  
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement