Friday, August 3, 2018

spring - codes - 3

dao.xml =>>

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>

<!-- di for DriverManagerDataSourceMDS -->
<bean name="dm" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/navadb"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>

<!-- di or JdbcTemplate -->
<bean name="jtemp" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dm"/> 
</bean>

<!-- di for SimpleJdbcInsert -->
<bean name="sji" class="org.springframework.jdbc.core.simple.SimpleJdbcInsert">
<constructor-arg ref="dm"/>
</bean>

<!-- di for implementation of dao -->
<bean name="dao" class="dao.BookDAOImpl">
<property name="tmp" ref="jtemp"/>
<property name="insert" ref="sji"/>
</bean>

</beans>

Book.java =>>

package beans;

public class Book
{
private int id;
private String topic, author;
private float cost;

public int getId()
{
return id;
}

public void setId(int id)
{
this.id = id;
}

public String getTopic()
{
return topic;
}

public void setTopic(String topic)
{
this.topic = topic;
}

public String getAuthor()
{
return author;
}

public void setAuthor(String author)
{
this.author = author;
}

public float getCost()
{
return cost;
}

public void setCost(float cost)
{
this.cost = cost;
}

public Book()
{
}

public Book(int id, String topic, String author, float cost)
{
this.id = id;
this.topic = topic;
this.author = author;
this.cost = cost;
}

}


BookDao.java =>>

package dao;

import java.util.List;

import beans.Book;

public interface BookDAO
{
// this method will fetch a single book from the
// database
public abstract Book findBookById(int id);

// this method will fetch all the books from the
// database
public abstract List<Book> getAllBooks();
// this method will be used to store object of 
// book inside database using simple-jdbc-insert
// class
public abstract void insertBookInDB(Book book);
}


BookDAOImpl.java =>>

package dao;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.simple.SimpleJdbcInsert;

import beans.Book;

public class BookDAOImpl implements BookDAO
{
private JdbcTemplate tmp;

private SimpleJdbcInsert insert;

public JdbcTemplate getTmp()
{
return tmp;
}

public void setTmp(JdbcTemplate tmp)
{
this.tmp = tmp;
}

public SimpleJdbcInsert getInsert()
{
return insert;
}

public void setInsert(SimpleJdbcInsert insert)
{
this.insert = insert;
}

@Override
public Book findBookById(int id)
{
System.out.println("method of dao");
// create sql query
String sql = "SELECT * FROM BOOK WHERE id = ?";

// create query args
Object[] args =
{ id };

// create object of RowMapper
RowMapperImpl rm = new RowMapperImpl();

return tmp.queryForObject(sql, args, rm);
}

@Override
public List<Book> getAllBooks()
{
// create sql query
String sql = "select * from book";

// create object of row-mapper
RowMapperImpl impl = new RowMapperImpl();

//
return tmp.query(sql, impl);
}
@Override
public void insertBookInDB(Book book)
{
insert.setTableName("book");
// create a map to specify the column name
// and their recpective value
Map<String,Object> map = new 
LinkedHashMap<String,Object>();
map.put("id",book.getId());
map.put("topic",book.getTopic());
map.put("author",book.getAuthor());
map.put("cost",book.getCost());
insert.execute(map);
}
}


RowMapperImpl.java =>>

package dao;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.springframework.jdbc.core.RowMapper;

import beans.Book;


public class RowMapperImpl implements RowMapper<Book>
{
@Override
public Book mapRow(ResultSet resultSet, int records) 
throws SQLException
{
System.out.println("mapRow()");
System.out.println("Total records are "+records);
// create object of Book (book is a bean)
Book book = new Book();
// fetch data of column from the ResultSet and store
// it inside object of Book using setters
book.setId(resultSet.getInt("id"));
book.setTopic(resultSet.getString("topic"));
book.setAuthor(resultSet.getString("author"));
book.setCost(resultSet.getFloat("cost"));

// return the object of bean to the DAO
return book;
}
}


FetchObject.java =>>

package tests;

import java.util.List;

import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.dao.EmptyResultDataAccessException;

import beans.Book;
import dao.BookDAOImpl;

public class FetchObject
{
public static void main(String[] args)
{
try
{
ClassPathXmlApplicationContext ctx = new 
ClassPathXmlApplicationContext("dao.xml");
BookDAOImpl dao = (BookDAOImpl) ctx.getBean("dao");

// fetch the list of books from database using
// dao
List<Book> books = dao.getAllBooks();
// 
for(Book book : books)
{
System.out.println(book.getId());
System.out.println(book.getTopic());
System.out.println(book.getAuthor());
System.out.println(book.getCost());
System.out.println();
}
}
catch(Exception e)
{
if(e instanceof EmptyResultDataAccessException)
{
System.out.println("invalid id");
}
}
}
}

1 comment: