Step(1):
Create Dynamic web project and add following libraries
Step(2):
Add the following files
Student.java
package
com.kamal.model;
public
class
Student {
private
String name;
private
String address;
private
Integer age;
private
String phone;
private
Integer id;
public
Integer getId() {
return
id;
}
public
void
setId(Integer id) {
this.id
= id;
}
public
String getName() {
return
name;
}
public
void
setName(String name) {
this.name
= name;
}
public
String getAddress() {
return
address;
}
public
void
setAddress(String address) {
this.address
= address;
}
public
Integer getAge() {
return
age;
}
public
void
setAge(Integer age) {
this.age
= age;
}
public
String getPhone() {
return
phone;
}
public
void
setPhone(String phone) {
this.phone
= phone;
}
}
StudentService.java
package
com.kamal.service;
import
java.util.List;
import org.springframework.transaction.annotation.Transactional;
import
com.kamal.model.Student;
public
interface
StudentService {
@Transactional
public
Student getStudent(int
id);
public
void
delete(int
id);
public
void
update(int
id, Student s);
public
void
create(Student s);
@Transactional
public
List<Student> getAll();
}
StudentServiceImpl.java
package
com.kamal.service;
import
java.sql.ResultSet;
import
java.sql.SQLException;
import
java.util.List;
import
org.springframework.jdbc.core.RowMapper;
import
org.springframework.stereotype.Service;
import
com.kamal.model.Student;
@Service("studentService")
public
class StudentServiceImpl extends
org.springframework.jdbc.core.JdbcTemplate
implements
StudentService {
//returns
the list of students
@Override
public
List<Student> getAll() {
String
sql = "SELECT * FROM Student";
List<Student>
std = query(sql, new RowMapper<Student>() {
@Override
public
Student mapRow(ResultSet rs, int rowNum)
throws SQLException {
Student
s = new Student();
s.setAddress(rs.getString("address"));
s.setName(rs.getString("name"));
s.setAge(rs.getInt("age"));
s.setId(rs.getInt("id"));
s.setPhone(rs.getString("phone"));
return
s;
}
});
return
std;
}
//create
student
@Override
public
void create(Student s) {
String sql = "INSERT INTO Student (name, address, age, phone)
VALUES(?,?,?,?)";
update(sql, new Object[] { s.getName(), s.getAddress(),
s.getAge(), s.getPhone() });
}
//update
student with given id
@Override
public void
update(int id, Student s) {
String sql
= "UPDATE Student SET name=?, address=?, age=?, phone=? WHERE
id=?";
update(sql,
new Object[] { s.getName(), s.getAddress(), s.getAge(),
s.getPhone(),
id });
}
//delete
student with given id
@Override
public void
delete(int id) {
String sql
= "DELETE FROM Student WHERE id=?";
update(sql,
id);
}
//returns
student with given id
@Override
public
Student getStudent(int id) {
String
sql = "SELECT * FROM Student where id=?";
Student
std = queryForObject(sql, new Object[] { id },
new
RowMapper<Student>() {
public
Student mapRow(ResultSet rs, int rowNum)
throws
SQLException {
Student
s = new Student();
s.setAddress(rs.getString("address"));
s.setName(rs.getString("name"));
s.setAge(rs.getInt("age"));
s.setId(rs.getInt("id"));
s.setPhone(rs.getString("phone"));
return
s;
}
});
return
std;
}
}
MainController.java
package
com.kamal.controller;
import
java.util.List;
import
org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Controller;
import
org.springframework.ui.Model;
import
org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestMethod;
import
org.springframework.web.bind.annotation.RequestParam;
import
org.springframework.web.servlet.ModelAndView;
import
com.kamal.model.Student;
import
com.kamal.service.StudentService;
@Controller
@RequestMapping(value
= "/student")
public
class
MainController {
@Autowired
private
StudentService studentService;
@RequestMapping(value
= "/add",
method = RequestMethod.GET)
public
ModelAndView showForm(Model model) {
return
new
ModelAndView("form",
"command",
new
Student());
}
@RequestMapping(value="/add",
method = RequestMethod.POST)
public
String getFromForm(@RequestParam(value
= "name")
String name, @RequestParam(value="address")
String address,
@RequestParam(value
= "phone")
String phone,
@RequestParam(value
= "age")
int
age, Model model) {
Student
std = new
Student();
std.setAddress(address);
std.setAge(age);
std.setName(name);
std.setPhone(phone);
studentService.create(std);
List<Student>
students = studentService.getAll();
model.addAttribute("student",
students);
return
"redirect:view";
}
@RequestMapping(value="/edit",
method = RequestMethod.GET)
public
String editForm(Model model,@RequestParam("id")int
id) {
Student
student = studentService.getStudent(id);
model.addAttribute("student",
student);
return
"edit";
}
@RequestMapping(value="/edit",
method = RequestMethod.POST)
public
String editFormPost(Model model, @RequestParam("id")
int
id,
@RequestParam(value
= "name",
required = true)
String name,
@RequestParam(value
= "address",
required = true)
String address,
@RequestParam(value
= "phone",
required = true)
String phone,
@RequestParam(value
= "age",
required = true)
int
age) {
Student
student = new
Student();
student.setId(id);
student.setName(name);
student.setAddress(address);
student.setPhone(phone);
student.setAge(age);
studentService.update(id,
student);
List<Student>
students = studentService.getAll();
model.addAttribute("student",
students);
return
"redirect:view";
}
@RequestMapping(value
= "/view")
public
String dispResult( Model model) {
List<Student>
listOfStudent = studentService.getAll();
model.addAttribute("student",
listOfStudent);
return
"view";
}
@RequestMapping(value="/delete",method = RequestMethod.GET)
public
String editFormPost(Model model, @RequestParam("id")
Integer id) {
studentService.delete(id);
List<Student>
students = studentService.getAll();
model.addAttribute("student",
students);
return
"redirect:view";
}
}
form.jsp
<%@
page
language="java"
contentType="text/html;
charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib
prefix="form"
uri="http://www.springframework.org/tags/form"%>
<!DOCTYPE
html PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta
http-equiv="Content-Type"
content="text/html;
charset=UTF-8">
<title>Add
Student Form</title>
</head>
<body>
<table>
<form:form
method="post"
action="add">
<tr>
<td><form:label
path="name">Name</form:label></td>
<td><form:input
path="name"></form:input></td>
</tr>
<tr>
<td><form:label
path="address">Address</form:label></td>
<td><form:input
path="address"></form:input></td>
</tr>
<tr>
<td><form:label
path="age">Age</form:label></td>
<td><form:input
path="age"></form:input></td>
</tr>
<tr>
<td><form:label
path="phone">Phone</form:label></td>
<td><form:input
path="phone"></form:input></td>
</tr>
<tr>
<td><input
type="submit"
value="add"></td>
</tr>
</form:form>
</table>
</body>
</html>
edit.jsp
<%@
page
language="java"
contentType="text/html;
charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib
prefix="c"
uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE
html PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta
http-equiv="Content-Type"
content="text/html;
charset=UTF-8">
<title>Edit
Form</title>
</head>
<body>
<form
method="post"
action="edit">
<table>
<tr>
<td><input
name="id"
type="hidden"value="${student.id}"></td>
</tr>
<tr>
<td>Name</td>
<td><input
type="text"
name="name" value="${student.name}"></td>
</tr>
<tr>
<td>Address</td>
<td><input
type="text"
name="address"
id="address"
value="${student.address}"></td>
</tr>
<tr>
<td>Phone</td>
<td><input
type="text"
name="phone"
value="${student.phone}"></td>
</tr>
<tr>
<td>Age</td>
<td><input
type="text"
name="age"
value="${student.age}"></td>
</tr>
<tr>
<td><input
type="submit"
value="update"></td>
</tr>
</table>
</form>
</body>
</html>
view.jsp
<%@
page
language="java"
contentType="text/html;
charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib
prefix="c"
uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE
html PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta
http-equiv="Content-Type"
content="text/html;
charset=UTF-8">
<title>Student
List</title>
</head>
<body>
<a
href="add">Add</a>
<table>
<thead>
<tr>
<td>Id</td>
<td>Name</td>
<td>Address</td>
<td>Age</td>
<td>Phone</td>
</tr>
</thead>
<tbody>
<c:forEach
var="student"
items="${student}">
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.address}</td>
<td>${student.age}</td>
<td>${student.phone}</td>
<td><a
href="edit?id=${student.id}">Edit</a></td>
<td><a
href="delete?id=${student.id}">Delete</a></td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
Web.xml
<?xml
version="1.0"
encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID"
version="3.0">
<display-name>SpringTutorial</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</context-param>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
spring-servlet.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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<context:component-scan
base-package="com.kamal"></context:component-scan>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property
name="prefix"
value="/WEB-INF/jsp/"></property>
<property
name="suffix"
value=".jsp"></property>
</bean>
<bean
id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property
name="driverClassName"
value="com.mysql.jdbc.Driver"></property>
<property
name="url">
<value>jdbc:mysql://localhost:3306/studentdb</value>
</property>
<property
name="username"><value>root</value></property>
<property
name="password"><value></value> </property>
</bean>
<bean
id="studentService"
class="com.kamal.service.StudentServiceImpl">
<property
name="dataSource"
ref="dataSource"></property>
</bean>
<bean
id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property
name="dataSource"
ref="dataSource"
/>
</bean>
<tx:annotation-driven
transaction-manager="txManager"
/>
</beans>