GETTING EXCEPTION ON JDBC TRANSACTION MGMT --->java.sql.SQLException: Invalid column index:at LINE 8 & 12
-
-----------------------------------DATABASE------------------------------------------------------------- CREATE TABLE ACCOUNTS(ACCNO INT PRIMARY KEY,BAL PRIMARY KEY); insert into accounts values(77,10000); insert into accounts values(88,10000); ---------------------------------HERE IS JDBC CODE---------------------------------------------------- import A.JDBCUtil; // ****JDBCUtil is the class having connection code import java.sql.*; public class Test12 { public static void main(String[] args) { Account acc=new Account(); acc.transfer(77,88,5000); //******LINE 8****** } } class InvalidAccountNumberException extends Exception{ int accno; public InvalidAccountNumberException() { } public InvalidAccountNumberException(int accno){ this.accno=accno; } @Override public String toString() { return "Accno"+accno+"not found"; } } class InsufficientFundsException extends Exception{ public InsufficientFundsException() { } @Override public String toString() { return "sufficent funds are not available"; } } class Account{ int bal; int sab,dab,danb,sanb; public void transfer(int sa,int da,int amt){ Connection con=null; PreparedStatement ps1=null; PreparedStatement ps2=null; try{ con=JDBCUtil.getOracleConnection(); con.setAutoCommit(false); ps1=con.prepareStatement("select bal from accounts where accno='?'"); ps1.setInt(1,da); ******//LINE 12****** ResultSet rs1=ps1.executeQuery(); if(rs1.next()) dab=rs1.getInt(1); else throw new InvalidAccountNumberException(da); danb=dab+amt; //updating destination account balance ps2=con.prepareStatement("update accounts set bal='?' where accno='?' "); ps2.setInt(1,danb); ps2.setInt(2,da); ps2.executeUpdate(); System.out.println("**"+da+"*updated*"); //checking source account ps1.setInt(1,sa); rs1=ps1.executeQuery(); if(rs1.next()){ sanb=rs1.getInt(1); }else{ throw new InvalidAccountNumberException(); } if(sab>=amt){ sanb=sab-amt; }else{ throw new InsufficientFundsException(); } //updating Source account ps2.setInt(1,sanb); ps2.setInt(2,sa); ps2.executeUpdate(); con.commit(); System.out.println("**"+sa+"updated"); System.out.println("funds transferred"); }catch(Exception e){ e.printS
-
-----------------------------------DATABASE------------------------------------------------------------- CREATE TABLE ACCOUNTS(ACCNO INT PRIMARY KEY,BAL PRIMARY KEY); insert into accounts values(77,10000); insert into accounts values(88,10000); ---------------------------------HERE IS JDBC CODE---------------------------------------------------- import A.JDBCUtil; // ****JDBCUtil is the class having connection code import java.sql.*; public class Test12 { public static void main(String[] args) { Account acc=new Account(); acc.transfer(77,88,5000); //******LINE 8****** } } class InvalidAccountNumberException extends Exception{ int accno; public InvalidAccountNumberException() { } public InvalidAccountNumberException(int accno){ this.accno=accno; } @Override public String toString() { return "Accno"+accno+"not found"; } } class InsufficientFundsException extends Exception{ public InsufficientFundsException() { } @Override public String toString() { return "sufficent funds are not available"; } } class Account{ int bal; int sab,dab,danb,sanb; public void transfer(int sa,int da,int amt){ Connection con=null; PreparedStatement ps1=null; PreparedStatement ps2=null; try{ con=JDBCUtil.getOracleConnection(); con.setAutoCommit(false); ps1=con.prepareStatement("select bal from accounts where accno='?'"); ps1.setInt(1,da); ******//LINE 12****** ResultSet rs1=ps1.executeQuery(); if(rs1.next()) dab=rs1.getInt(1); else throw new InvalidAccountNumberException(da); danb=dab+amt; //updating destination account balance ps2=con.prepareStatement("update accounts set bal='?' where accno='?' "); ps2.setInt(1,danb); ps2.setInt(2,da); ps2.executeUpdate(); System.out.println("**"+da+"*updated*"); //checking source account ps1.setInt(1,sa); rs1=ps1.executeQuery(); if(rs1.next()){ sanb=rs1.getInt(1); }else{ throw new InvalidAccountNumberException(); } if(sab>=amt){ sanb=sab-amt; }else{ throw new InsufficientFundsException(); } //updating Source account ps2.setInt(1,sanb); ps2.setInt(2,sa); ps2.executeUpdate(); con.commit(); System.out.println("**"+sa+"updated"); System.out.println("funds transferred"); }catch(Exception e){ e.printS
-
CHECK THE CODE I HAVE WRITTEN THE LINE NO ON THE CODE
-
-----------------------------------DATABASE------------------------------------------------------------- CREATE TABLE ACCOUNTS(ACCNO INT PRIMARY KEY,BAL PRIMARY KEY); insert into accounts values(77,10000); insert into accounts values(88,10000); ---------------------------------HERE IS JDBC CODE---------------------------------------------------- import A.JDBCUtil; // ****JDBCUtil is the class having connection code import java.sql.*; public class Test12 { public static void main(String[] args) { Account acc=new Account(); acc.transfer(77,88,5000); //******LINE 8****** } } class InvalidAccountNumberException extends Exception{ int accno; public InvalidAccountNumberException() { } public InvalidAccountNumberException(int accno){ this.accno=accno; } @Override public String toString() { return "Accno"+accno+"not found"; } } class InsufficientFundsException extends Exception{ public InsufficientFundsException() { } @Override public String toString() { return "sufficent funds are not available"; } } class Account{ int bal; int sab,dab,danb,sanb; public void transfer(int sa,int da,int amt){ Connection con=null; PreparedStatement ps1=null; PreparedStatement ps2=null; try{ con=JDBCUtil.getOracleConnection(); con.setAutoCommit(false); ps1=con.prepareStatement("select bal from accounts where accno='?'"); ps1.setInt(1,da); //**************//LINE 12******************// ResultSet rs1=ps1.executeQuery(); if(rs1.next()) dab=rs1.getInt(1); else throw new InvalidAccountNumberException(da); danb=dab+amt; //updating destination account balance ps2=con.prepareStatement("update accounts set bal='?' where accno='?' "); ps2.setInt(1,danb); ps2.setInt(2,da); ps2.executeUpdate(); System.out.println("**"+da+"*updated*"); //checking source account ps1.setInt(1,sa); rs1=ps1.executeQuery(); if(rs1.next()){ sanb=rs1.getInt(1); }else{ throw new InvalidAccountNumberException(); } if(sab>=amt){ sanb=sab-amt; }else{ throw new InsufficientFundsException(); } //updating Source account ps2.setInt(1,sanb); ps2.setInt(2,sa); ps2.executeUpdate(); con.commit(); System.out.println("**"+sa+"updated"); System.out.println("funds transferred"); }catch(Exception e){ e.printStackTrace(); try{ con.rollback(); }catch(Exception e1){ } }finally{ JDBCUtil.cleanup(ps1, con); JDBCUtil.c
-
-----------------------------------DATABASE------------------------------------------------------------- CREATE TABLE ACCOUNTS(ACCNO INT PRIMARY KEY,BAL PRIMARY KEY); insert into accounts values(77,10000); insert into accounts values(88,10000); ---------------------------------HERE IS JDBC CODE---------------------------------------------------- import A.JDBCUtil; // ****JDBCUtil is the class having connection code import java.sql.*; public class Test12 { public static void main(String[] args) { Account acc=new Account(); acc.transfer(77,88,5000); //******LINE 8****** } } class InvalidAccountNumberException extends Exception{ int accno; public InvalidAccountNumberException() { } public InvalidAccountNumberException(int accno){ this.accno=accno; } @Override public String toString() { return "Accno"+accno+"not found"; } } class InsufficientFundsException extends Exception{ public InsufficientFundsException() { } @Override public String toString() { return "sufficent funds are not available"; } } class Account{ int bal; int sab,dab,danb,sanb; public void transfer(int sa,int da,int amt){ Connection con=null; PreparedStatement ps1=null; PreparedStatement ps2=null; try{ con=JDBCUtil.getOracleConnection(); con.setAutoCommit(false); ps1=con.prepareStatement("select bal from accounts where accno='?'"); ps1.setInt(1,da); //**************//LINE 12******************// ResultSet rs1=ps1.executeQuery(); if(rs1.next()) dab=rs1.getInt(1); else throw new InvalidAccountNumberException(da); danb=dab+amt; //updating destination account balance ps2=con.prepareStatement("update accounts set bal='?' where accno='?' "); ps2.setInt(1,danb); ps2.setInt(2,da); ps2.executeUpdate(); System.out.println("**"+da+"*updated*"); //checking source account ps1.setInt(1,sa); rs1=ps1.executeQuery(); if(rs1.next()){ sanb=rs1.getInt(1); }else{ throw new InvalidAccountNumberException(); } if(sab>=amt){ sanb=sab-amt; }else{ throw new InsufficientFundsException(); } //updating Source account ps2.setInt(1,sanb); ps2.setInt(2,sa); ps2.executeUpdate(); con.commit(); System.out.println("**"+sa+"updated"); System.out.println("funds transferred"); }catch(Exception e){ e.printStackTrace(); try{ con.rollback(); }catch(Exception e1){ } }finally{ JDBCUtil.cleanup(ps1, con); JDBCUtil.c