Distributed Systems LabLecture -1-
It is extremely simplified application will be realized with the aid of various middleware technologies. It allows the retrieval of information on
market prices and exchange rate developments, as well as managing the stock deposit.
The application will also allows the user to play a game during observing the prices of the stock market.▪ such Sudoku, Zuma or else.
April 19, 2023 2Distributed Systems Lab
It will be MySQL database stores the companies prices in the market and users login and balance details.
The database tables will be: CO_Name
▪ CO_ID (primary key): ID of the limited company and it is an integer.
▪ CO_NAME: String, name of the company. CO_Data:
▪ ID (primary key): it is an integer.▪ C_ID: ID of the company, which is integer also.▪ DAY: we will assume that has taken place every working
day trade and day as an integer number (1 .. 31).▪ SHARE_VALUE: Current share price that day and it is a
double number (0.01 to 9999.99 EUR).
April 19, 2023 3Distributed Systems Lab
Application Database Cont. USER
▪ U_ID (primary key): ID of the limited company and it is an integer.
▪ U_NAME: String, name of the company.▪ U_PSWD:
USER_TRANS: // user transaction history▪ ID (primary key): it is an integer.▪ C_ID: ID of the company, which is integer also.▪ U_ID:▪ DAY: we will assume that has taken place every working
day trade and day as an integer number (1 .. 31).▪ TRANS_TYPE:▪ AMOUNT: Current share price that day and it is a double
number (0.01 to 9999.99 EUR).
April 19, 2023 4Distributed Systems Lab
Application will be implemented as following: ConnectDB Class exchangeClient Class GameClass
Note: Interface or abstract class. Which one
should you use on the project.April 19, 2023 5Distributed Systems Lab
/ / Constructor, loads the DB driverpublic ConnectDB () MySql DB url: jdbc:mysql://host_name:port/dbname MySql Driver: com.mysql.jdbc.Driver Class.forName("com.mysql.jdbc.Driver").newInstance(); /
/load the driver Connection dcon = DriverManager.getConnection(DB url,
“username", “password");//start a connection
/ / Opens a connection to the databasepublic boolean OpenDB () if(!dcon.isClosed()) // check if the connection is open
/ / Closes an existing connection to the databasepublic boolean CloseDB () dcon.close();
April 19, 2023 6Distributed Systems Lab
/ / Takes the SQL string from the open DB and return ResultSet. on error SQLException is thrown public ResultSet executeDB (String SQL)//define statement object to execute sql queryStatement stat = dcon.createStatement(); //results of sql query returns in a ResultSet objectResultSet rs = stat.executeQuery("select * from table where
“); if (!rs.next()) { //if no results found rs.close(); stat.close(); dcon.close();} else { // action code }
/ / Returns the error message of the last executed SQL command. if the command was successful, "OK" would be returned public String getStatus ()
April 19, 2023 7Distributed Systems Lab
exchangeClient Class
public String CreateUser(String name, String pwrd) It returns string on success like “your account is
created successfully ” , or if there is any problem during the creation such as the duplication of the user name, empty field it returns message of that problem.
public String Login (String name, String pwrd) If there is any problem during the login process such
as the name is not exist in the DB it returns message of it . Otherwise it returns welcoming message.
April 19, 2023 Distributed Systems Lab 8
exchangeClient Class Cont.
public String [] GetAllCompanies () Returns a list of all Company names in an
array of strings.public double GetValue (int x,
String Company) It returns the price of the share of the
Company on day X (1 .. 31). When entering an invalid date and / or Company-name is not exist will return "-1.0".
April 19, 2023 Distributed Systems Lab 9
exchangeClient Class Cont.
public double BigWinnerGain (int X, int Y) Investigated the stock during the period
between the 2 days X (1 .. 30) and Y (X. .. 31) the largest percentage gain
With Y > X and K (X) = price at the date X has generated. The output is the percentage value of the price.
April 19, 2023 Distributed Systems Lab 10
exchangeClient Class Cont.
public String BigWinnerCompany (int X, int Y) As the previous method, but the name of the concerned Company is returned.
April 19, 2023 Distributed Systems Lab 11
These guides to help you implementing your project.
You can add or edit if you think it convenient to your project in which you will mention it in your report.
April 19, 2023 12Distributed Systems Lab
http://www.roseindia.net/jdbc/jdbc.shtml
http://www.stardeveloper.com/articles/display.html?article=2003090401&page=1
April 19, 2023 13Distributed Systems Lab