/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package dom;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Bilal
*/
public class DataBaseManager {
//---Declaration------------------------------------------------
//---Initialization---------------------------------------------
conn
= DriverManager.
getConnection("jdbc:ucanaccess://C:/Users/Bilal/Desktop/testCode.accdb");
return conn;
}
@SuppressWarnings("empty-statement")
try {
conn = getConnection();
statement = conn.createStatement();
query = "INSERT INTO User (Hash,Name,AccountNumber,Amount,coin,PrivateKey,PublicKey,DigitalSignature, CurrencyType) VALUES ('" + u.getHash() + "','" + u.getName() + "','" + u.getAccountNumber() + "','" + u.getAmount() + "','" + u.getCoin() + "','" + u.getPrivateKey() + "','" + u.getPublicKey() + "','" + u.getDigitalSignature() + "','" + u.getCurrencyType() + "')";
statement.executeUpdate(query);
Logger.getLogger(DataBaseManager.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
statement.close();
conn.close();
};
}
}
public User getUserByHash
(String hash
) {
User u = new User();
try {
conn = getConnection();
statement = conn.createStatement();
query = "SELECT * FROM User WHERE Hash=" + hash;
rs = statement.executeQuery(query);
while (rs.next()) {
u.setAccountNumber(rs.getString("AccountNumber"));
u.setAmount(rs.getDouble("Amount"));
u.setCoin(rs.getDouble("Coin"));
u.setDigitalSignature(rs.getString("DigitalSignature"));
u.setHash(rs.getString("Hash"));
u.setName(rs.getString("Name"));
u.setPrivateKey(rs.getString("PrivateKey"));
u.setPublicKey(rs.getString("PublicKey"));
}
Logger.getLogger(DataBaseManager.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
statement.close();
conn.close();
};
}
return u;
}
conn = getConnection();
statement = conn.createStatement();
query = "SELECT * FROM User;";
rs = statement.executeQuery(query);
ArrayList<User> uList = new ArrayList<>();
while (rs.next()) {
User u = new User();
u.setAccountNumber(rs.getString("AccountNumber"));
u.setAmount(rs.getDouble("Amount"));
u.setCoin(rs.getDouble("Coin"));
u.setDigitalSignature(rs.getString("DigitalSignature"));
u.setHash(rs.getString("Hash"));
u.setName(rs.getString("Name"));
u.setPrivateKey(rs.getString("PrivateKey"));
u.setPublicKey(rs.getString("PublicKey"));
u.setCurrencyType(rs.getString("CurrencyType"));
uList.add(u);
}
rs.close();
statement.close();
conn.close();
return uList;
}
public void updateAccountNumber(User u) {
try {
conn = getConnection();
statement = conn.createStatement();
query = "UPDATE User SET AccountNumber='" + u.getAccountNumber() + "' WHERE Hash ='" + u.getHash() + "'";
int c = statement.executeUpdate(query);
//System.out.println(c);
Logger.getLogger(DataBaseManager.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
statement.close();
conn.close();
};
}
}
public void updateAccountAmount(User u) {
try {
conn = getConnection();
statement = conn.createStatement();
query = "UPDATE User SET Amount='" + u.getAmount() + "' WHERE Hash ='" + u.getHash() + "'";
int c = statement.executeUpdate(query);
//System.out.println(c);
Logger.getLogger(DataBaseManager.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
statement.close();
conn.close();
};
}
}
public void updateAccountCoin(User u) {
try {
conn = getConnection();
statement = conn.createStatement();
query = "UPDATE User SET coin='" + u.getCoin() + "' WHERE Hash ='" + u.getHash() + "'";
int c = statement.executeUpdate(query);
//System.out.println(c);
Logger.getLogger(DataBaseManager.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
statement.close();
conn.close();
};
}
}
public void insertInLedger
(String leadger
) {
try {
conn = getConnection();
statement = conn.createStatement();
query = "INSERT INTO Ledger (Transfer) VALUES" + "('" + leadger + "')";
statement.executeUpdate(query);
Logger.getLogger(DataBaseManager.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
statement.close();
conn.close();
};
}
}
public ArrayList
<String
> getFromLedger
() throws SQLException {
conn = getConnection();
statement = conn.createStatement();
query = "SELECT * FROM Ledger;";
rs = statement.executeQuery(query);
ArrayList<String> L = new ArrayList<>();
while (rs.next()) {
User u = new User();
str = (rs.getString("Transfer"));
L.add(str);
}
rs.close();
statement.close();
conn.close();
return L;
}
public void insertDistributor
(Distributor dis
) throws SQLException {
try {
conn = getConnection();
statement = conn.createStatement();
query = "INSERT INTO Distributor (Hash,distributorName,coins,PrivateKey,PublicKey,DigitalSignature) VALUES ('" + dis.getHash() + "','" + dis.getName() + "','" + dis.getCoin() + "','" + dis.getPrivateKey() + "','" + dis.getPublicKey() + "','" + dis.getDigitalSignature() + "')";
statement.executeUpdate(query);
Logger.getLogger(DataBaseManager.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
statement.close();
conn.close();
};
}
}
/**
*
* @param hash
* @return
* @throws java.sql.SQLException
*/
Distributor d=new Distributor();
try {
conn = getConnection();
statement = conn.createStatement();
query = "SELECT * FROM Distributor WHERE Hash=" + "'"+hash+"'";
rs = statement.executeQuery(query);
while (rs.next()) {
d.setCoin(rs.getDouble("Coins"));
d.setDigitalSignature(rs.getString("DigitalSignature"));
d.setHash(rs.getString("Hash"));
d.setName(rs.getString("distributorName"));
d.setPrivateKey(rs.getString("PrivateKey"));
d.setPublicKey(rs.getString("PublicKey"));
}
Logger.getLogger(DataBaseManager.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
statement.close();
conn.close();
};
}
return d;
}
}