Skip to main content

Q) Develop a multithread application that allows to current withdrawals?



A)
class bankAccount
{
       int accno;
       float balance;
       bankAccount( int accno, float balance)
       {
              this.accno=accno;
              this.balance=balance;
       }
       void setbalance(float balance)
       {
              this.balance=balance;
       }
       float getbalance()
       {
              return this.balance;
       }
       void withdraw(float amount)
       {
              System.out.println("trying to withdraw RS:"+amount +"from A/C"+accno);
              System.out.println("try to get the balance info from A/c"+accno);
              for(int i=1;i<20;i++)
                     System.out.println(i);
              float bal=getbalance();
              System.out.println("balance in the A/c"+accno+"is Rs."+bal);
              if(bal>amount)
              {
                     bal=bal-amount;
                     setbalance(bal);
                     System.out.println("please collect Rs: "+amount);
                     System.out.println("balance of A/c"+accno+"ipdate to Rs:"+bal);
              }
              else
              {
                     System.out.println("insufficient funds");
              }
       }
}

class accountthread extends Thread
{
       bankAccount acc;
       float amt;
       accountthread(bankAccount acc, float amt)
       {
              this.acc=acc;
              this.amt=amt;
       }
       public void run()
       {
              acc.withdraw(amt);
       }
}

classmultithreadbankingapplication {

       public static void main(String[] args) throws Exception {
              bankAccount a1= newbankAccount(1001,3000);
              bankAccount a2= newbankAccount(1002,9000);
              accountthread t1= newaccountthread(a1,3000);
              accountthread t2=newaccountthread(a2,5000);
              t1.start();
              t2.start();
              t1.join();
              t2.join();
              System.out.println("final balance in the 1st account Rs"+a1.getbalance());
              System.out.println("final balance in the 2nd account"+a2.getbalance());
       }
}

Comments

Popular posts from this blog

Q) Retrieving data from database?

A)   ->to retrieve the data from database we need to submit SELECT statement from JDBC application. -> executeQuery() method of statement object is used for this purpose. This method has the fallowing ResultSet executeQuery(String sql) throws SQLException Ex: ResultSet rs = st.executeQuery(“SELECT * FROM ACCOUNT”); ->objectoriented representation of tables formate data is called ResultSet object. Ao the driver created one object i.e. ResultSet object. ->object orientation representation of a table of records returned from db is nothing but “ ResultSet ” object.  

Q) Explain repeated deletion of records.

A) //RepeatedDeletion.java import java.util.Scanner; import java.sql.*; class RepeatedDeletion {        public static void main(String[] args) {               Connection con= DriverManager. getConnection ( "jdbc:odbc:prince" , "scott" , "tiger" );               PreparedStatement ps=con.PreparedStatement( "DELETE FROM ACCOUNT WHERE ACCNO=?" );               Scanner s= new Scanner(System. in );               while ( true )               {                      System. out .println( "Enter accno : " );      ...

Q) What is JDBC driver? What is its role in java database connection?

A) ->A translation software written in java according o JDBC specification is nothing but “JDBC driver”. -> JDBC driver implements JDBC API. Use single API. JDBC driver role: They are 4 roles   1)       Establishing connection between JDBC client and database server. 2)       Receiving JDBC method calls made by JDBC client while performing database (CRUD) operations. 3)       Translating java method calls into DBMS understandable calls and forwarding them to database server. 4)       Receiving the results from database server. Translating them into java format and handling over the same to the JDBC client.