Advertisement
package decodejava;
public class Customer_Account
{
int id;
String name;
int amount;
int age;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
}
package decodejava;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.ResultSetExtractor;
public class CustomerDAO
{
private JdbcTemplate jdbcTemplate;
//Creating a table
public void createTable()
{
String query = "create table Customer_Account"
+ "("
+ "id int,"
+ "name varchar(40),"
+ "amount int,"
+ "age int"
+ ")";
jdbcTemplate.execute(query);
}
//Getter for JdbcTemplate
public JdbcTemplate getJdbcTemplate()
{
return jdbcTemplate;
}
//Setter for JdbcTemplate
public void setJdbcTemplate(JdbcTemplate jdbcTemplate)
{
this.jdbcTemplate = jdbcTemplate;
}
//Adding a customer
public void addCustomer(int id, String name, int amount, int age)
{
String query ="insert into Customer_Account values(" + id + ",'" + name + "','" + amount + "'," + age + ")";
jdbcTemplate.execute(query);
}
//Deleting a customer
public void deleteCustomer(int id)
{
String query = "delete from Customer_Account where id =" + id ;
jdbcTemplate.execute(query);
}
//Extracting a count of all the customers
public int countCustomer()
{
String query = "select count(*) from Customer_Account";
return jdbcTemplate.queryForObject(query, Integer.class);
}
//Getting a List of all customers from database
public List<Customer_Account> getAllCustomer()
{
String query ="select * from Customer_Account";
return jdbcTemplate.query(query, new ResultSetExtractor<List<Customer_Account>>()
//Anonymous Inner Class
{
@Override
public List<Customer_Account> extractData(ResultSet rs) throws SQLException, DataAccessException
{
List<Customer_Account> customers = new ArrayList<Customer_Account>();
while(rs.next())
{
Customer_Account customer = new Customer_Account();
customer.setId(rs.getInt("id"));
customer.setName(rs.getString("name"));
customer.setAmount(rs.getInt("amount"));
customer.setAge(rs.getInt("age"));
customers.add(customer);
}
return customers;
}
});
}
//Transaction method i.e. depositing an amount in an account
public void depositAmount(int id, int amount)
{
getJdbcTemplate().update("update Customer_Account set amount=amount+? where id=?", amount, id);
}
//Transaction method i.e. withdrawing an amount from an account
public void withdrawAmount(int id, int amount)
{
getJdbcTemplate().update("update Customer_Account set amount=amount-? where id=?", amount, id);
}
}
Advertisement
package decodejava;
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class Utility {
public static void main(String[] args)
{
ApplicationContext context = new FileSystemXmlApplicationContext("classpath:config.beans.xml");
CustomerDAO customerDAO = context.getBean("CustomerDAOBean",CustomerDAO.class);
System.out.println("Creating a table in database");
customerDAO.createTable();
System.out.println("Adding the customers");
customerDAO.addCustomer(1, "First Customer", 1000, 23);
customerDAO.addCustomer(2, "Second Customer", 2000, 27);
customerDAO.addCustomer(3, "Third Customer", 3000, 21);
System.out.println("Getting all the customers from the database");
List<Customer_Account> allCustomers = customerDAO.getAllCustomer();
for(Customer_Account cust : allCustomers)
{
System.out.println("Customer ID : " + cust.getId());
System.out.println("Customer Name : " + cust.getName());
System.out.println("Customer Balance Amount : " + cust.getAmount());
System.out.println("Customer Age : " + cust.getAge());
}
System.out.println("Getting the total count of all the Customers");
System.out.println("Total Customers : " + customerDAO.countCustomer());
System.out.println("Deleting a Customer with id = 2");
customerDAO.deleteCustomer(2);
System.out.println("Getting the new total count of all the Customers after deleting a customer");
System.out.println("Total Customers : " + customerDAO.countCustomer());
System.out.println("A customer with id = 1, is depositing an amount of 20000");
customerDAO.depositAmount(1, 20000);
System.out.println("A customer with id = 3, is withdrawing an amount of 500");
customerDAO.withdrawAmount(3, 500);
System.out.println("Getting all the customers from the database and their updated amount :");
List<Customer_Account> allCustomers2 = customerDAO.getAllCustomer();
for(Customer_Account cust : allCustomers2)
{
System.out.println("Customer ID : " + cust.getId());
System.out.println("Customer Name : " + cust.getName());
System.out.println("Customer Balance Amount : " + cust.getAmount());
System.out.println("Customer Age : " + cust.getAge());
}
}
}
<?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:util="springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
https://www.springframework.org/tx/spring-tx.xsd
">
<aop:config proxy-target-class="true">
<aop:advisor advice-ref="txnAdvice" pointcut="execution(*decodejava.CustomerDAO.*(..))"/>
</aop:config>
<tx:advice transaction-manager="txManagerBean" id="txnAdvice">
<tx:attributes>
<tx:method name="withdrawAmount" propagation="REQUIRES_NEW" isolation="DEFAULT" rollback-for="Exception"/>
<tx:method name="depositAmount" propagation="REQUIRES_NEW" isolation="DEFAULT" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<bean id="CustomerDAOBean" class="decodejava.CustomerDAO">
<property name="jdbcTemplate" ref="jdbcTemplateBean"></property>
</bean>
<bean id="jdbcTemplateBean" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSourceBean"></property>
</bean>
<bean id="txManagerBean" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSourceBean"></property>
</bean>
<bean id="dataSourceBean" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url" value="jdbc:oracle:thin:@localhost:1521:XE"></property>
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="username" value="scott"></property>
<property name="password" value="tiger"></property>
</bean>
</beans>
JAug 10, 2018 12:29:26 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.FileSystemXmlApplicationContext@5e91993f: startup date [Fri Aug 10 12:29:26 2018]; root of context hierarchy
Aug 10, 2018 12:29:26 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [config.beans.xml]
Aug 10, 2018 12:29:31 PM org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassName
INFO: Loaded JDBC driver: oracle.jdbc.driver.OracleDriver
Creating a table in database
Adding the customers
Getting all the customers from the database
Customer ID : 1
Customer Name : First Customer
Customer Balance Amount : 1000
Customer Age : 23
Customer ID : 2
Customer Name : Second Customer
Customer Balance Amount : 2000
Customer Age : 27
Customer ID : 3
Customer Name : Third Customer
Customer Balance Amount : 3000
Customer Age : 21
Getting the total count of all the Customers
Total Customers : 3
Deleting a Customer with id = 2
Getting the new total count of all the Customers after deleting a customer
Total Customers : 2
A customer with id = 1, is depositing an amount of 20000
A customer with id = 3, is withdrawing an amount of 500
Getting all the customers from the database and their updated amount :
Customer ID : 1
Customer Name : First Customer
Customer Balance Amount : 21000
Customer Age : 23
Customer ID : 3
Customer Name : Third Customer
Customer Balance Amount : 2500
Customer Age : 21
Advertisement
Advertisement
Please check our latest addition
C#, PYTHON and DJANGO
Advertisement