1. Project structure
C:.
├───.settings
├───src
│ └───main
│ ├───java
│ │ └───com
│ │ └───xyz
│ │ └───persistence
│ ├───resources --> where Status.hbm.xml and web-application-config.xml are
│ └───webapp
│ ├───META-INF
│ └───WEB-INF
└───target
2.Status.java POJO code - This represents a row in the mapped table
3. StatusDAO.java interface code
4. StatusDAOImpl.java code
5. TestDriver.java code for running CRUD test cases
6. Status.hbm.xml file
7. Spring bean configuration file - web-application-config.xml
8. index.jsp code to call test driver
9. maven po.xml dependencies
C:.
├───.settings
├───src
│ └───main
│ ├───java
│ │ └───com
│ │ └───xyz
│ │ └───persistence
│ ├───resources --> where Status.hbm.xml and web-application-config.xml are
│ └───webapp
│ ├───META-INF
│ └───WEB-INF
└───target
2.Status.java POJO code - This represents a row in the mapped table
public class Status implements Serializable {
private static final long serialVersionUID = 1L;
public Status() {
super();
}
private String statusCode;
private String statusDescr;
private Integer severity;
private Date createTimestamp;
private String createUserId;
private String updUserId;
private Date updTimestamp;
3. StatusDAO.java interface code
public interface StatusDAO {
void save(Status status);
void update(Status status);
void delete(Status status);
Status findByStatusCode(String statusCode);
}
4. StatusDAOImpl.java code
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class StatusDAOImpl extends HibernateDaoSupport implements StatusDAO {
public void save(Status status) {
getHibernateTemplate().save( status );
}
public void update(Status status) {
getHibernateTemplate().update(status);
}
public void delete(Status status) {
getHibernateTemplate().delete(status);
}
public Status findByStatusCode(String statusCode) {
List list = getHibernateTemplate().find(
"from Status where statusCode=?",statusCode
);
return (Status)list.get(0);
}
}
5. TestDriver.java code for running CRUD test cases
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestDriver {
private StatusDAO statusDAO;
public static void main(String[] args) {
TestDriver driver = new TestDriver();
try {
driver.create();
driver.retrieve();
driver.update();
driver.delete();
} catch (Exception e) {
e.printStackTrace();
}
}
public TestDriver() {
super();
ApplicationContext appContext =
new ClassPathXmlApplicationContext("/web-application-config.xml");
statusDAO = (StatusDAO)appContext.getBean("statusDAO");
}
public void create() throws Exception {
Status status = createStatus();
// create a new status in db
createStatus(status);
// retrieve a status from db
Status retrievedStatus = statusDAO.findByStatusCode("RR");
// delete a status
deleteStatus(retrievedStatus);
}
public void retrieve() throws Exception {
create();
}
public void update() throws Exception {
Status status = createStatus();
// create a new status in db
createStatus(status);
// retrieve a status
Status retrievedStatus = statusDAO.findByStatusCode("RR");
// update a status
updateStatus();
// delete a status
deleteStatus(retrievedStatus);
}
public void delete() throws Exception {
Status status = createStatus();
createStatus(status);
// retrieve a status
Status retrievedStatus = statusDAO.findByStatusCode("RR");
// update a status
updateStatus();
// delete a status
deleteStatus(retrievedStatus);
}
private Status createStatus() {
Status status = new Status();
status.setStatusCode("RR");
status.setCreateTimestamp(new Date());
status.setCreateUserId("sssss");
status.setSeverity(new Integer(22));
status.setStatusDescr("testing-sss");
status.setUpdTimestamp(new Date());
status.setUpdUserId("sssss");
return status;
}
private void createStatus(Status status) {
statusDAO.save(status);
}
private void updateStatus() {
Status retrievedStatus = statusDAO.findByStatusCode("RR");
retrievedStatus.setStatusDescr("updated description");
statusDAO.update(retrievedStatus);
}
private void deleteStatus(Status retrievedStatus) {
statusDAO.delete(retrievedStatus);
}
6. Status.hbm.xml file
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.xyz.persistence">
<class name="Status" table="AUTH_STAT" mutable="false">
<id name="statusCode" column="AUTH_STAT_CD" type="string"/>
<property name="statusDescr" column="AUTH_STAT_DSC" type="string"/>
<property name="severity" column="AUTH_SEREVITY_ID" type="integer"/>
<property name="createTimestamp" column="CREATE_TS" type="timestamp"/>
<property name="createUserId" column="CREATE_USER_ID" type="string"/>
<property name="updUserId" column="UPD_USER_ID" type="string"/>
<property name="updTimestamp" column="UPD_TS" type="timestamp"/>
</class>
</hibernate-mapping>
7. Spring bean configuration file - web-application-config.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:p="http://www.springframework.org/schema/p"
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">
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url"
value="jdbc:oracle:thin:@dbhost:20009:sid" />
<property name="username" value="ddd" />
<property name="password" value="ddd" />
</bean>
<!-- Hibernate session factory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.default_schema">SchemaName</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>/Status.hbm.xml</value>
</list>
</property>
</bean>
<!-- Status Data Access Object -->
<bean id="statusDAO" class="com.xyz.persistence.StatusDAOImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
</beans>
8. index.jsp code to call test driver
<?xml version="1.0" encoding="UTF-8" ?>
<%@ page import="com.xyz.persistence.TestDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Hibernate + Oracle 11g DB CRUD test page</title>
</head>
<body>
<%
try {
TestDriver driver = new TestDriver();
driver.create();
out.println("Create Status succeeded");
out.println("<br>");
driver.retrieve();
out.println("Retrieve Status succeeded");
out.println("<br>");
driver.update();
out.println("Update Status succeeded");
out.println("<br>");
driver.delete();
out.println("Delete Status succeeded");
out.println("<br>");
out.println("All CRUD operations succeeded");
} catch (Exception e) {
out.println("An exception occurred: " + e.getMessage());
}
%>
</body>
</html>
9. maven po.xml dependencies
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.3.2.GA</version>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.12.1.GA</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
No comments:
Post a Comment