accountdaoinf.java
----------------------------
package com.nit.spring.dao;
public interface AccountDAOInf {
float getBalance(int ano);
}
accountdao.java
----------------------------
package com.nit.spring.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.sql.DataSource;
public class AccountDAO implements AccountDAOInf {
DataSource ds;
public AccountDAO(DataSource ds) {
super();
this.ds = ds;
}
public float getBalance(int ano) {
float bal=0;
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try{
con=ds.getConnection();
ps=con.prepareStatement("select balance from account where accno=?");
ps.setInt(1,ano);
rs=ps.executeQuery();
if(rs.next())
bal=rs.getFloat(1);
}
catch(Exception e){
e.printStackTrace();
}
finally{
try{
if(rs!=null)
rs.close();
if(ps!=null)
ps.close();
if(con!=null)
con.close();
}
catch(Exception e){
e.printStackTrace();
}
}
return bal;
}
}
daolayer.java
----------------------
package com.nit.spring.dao;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
public class DAOLayer {
public static void main(String[] args) {
BeanFactory factory=new XmlBeanFactory(new FileSystemResource("src/applicationContext.xml"));
AccountDAOInf dao=(AccountDAOInf)factory.getBean("acc");
System.out.println("balance in the account is :rs" +dao.getBalance(1001));
}
}
applicationContext.xml
-------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean name="ds" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:server"/>
<property name="username" value="scott"/>
<property name="password" value="tiger"/>
</bean>
<bean name="acc" class="com.nit.spring.dao.AccountDAO">
<constructor-arg ref="ds"></constructor-arg>
</bean>
</beans>
output
---------
i got this exception
log4j:WARN No appenders could be found for logger (org.springframework.util.ClassUtils).
log4j:WARN Please initialize the log4j system properly.
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io exception: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=168821248)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))))
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at com.nit.spring.dao.AccountDAO.getBalance(AccountDAO.java:24)
at com.nit.spring.dao.DAOLayer.main(DAOLayer.java:13)
Caused by: java.sql.SQLException: Io exception: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=168821248)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:323)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:260)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:365)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:260)
at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
... 3 more
balance in the account is :rs0.0