1. Create a Maven project with the name of the project (spring demo13), as shown in the figure.
2. Configure Maven and modify the pom.xml file as follows
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi=" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>1.0.0</modelVersion>
<groupId>shequ</groupId>
<artifactId>springdemo13</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<java.version>1.7</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<repositories>
<repository>
<id>codelds</id>
<url>https://code.lds.org/nexus/content/groups/main-repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
</dependency>
</dependencies>
<build/>
</project>
3. Create an entity Bean Forum under src/main/java with a package name (com.mycompany.shequ.bean), as shown in the figure
4. Entity Bean Forum is as follows
package com.mycompany.shequ.bean;
public class Forum {
private int fid;
private String name;
public int getFid() {
return fid;
}
public void setFid(int fid) {
this.fid = fid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
5. Create the interface ForumDao under src/main/java with the package name (com.mycompany.shequ.dao), as shown in the figure.
6. The content of interface ForumDao is as follows
package com.mycompany.shequ.dao;
import java.util.List;
import com.mycompany.shequ.bean.Forum;
public interface ForumDao {
public List<Forum> query() throws Exception ;
}
7. Create the implementation class ForumDaoImpl, package name (com.mycompany.shequ.dao.impl) of interface ForumDao under src/main/java, as shown in the figure.
8. The implementation class ForumDaoImpl of interface ForumDao is as follows
package com.mycompany.shequ.dao.impl;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.sql.DataSource;
import com.mycompany.shequ.bean.Forum;
import com.mycompany.shequ.dao.ForumDao;
public class ForumDaoImpl implements ForumDao{
private DataSource dataSource;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
public List<Forum> query() throws Exception {
Connection conn = dataSource.getConnection();
String sql = "select * from hnsq_forum";
Statement smt = conn.createStatement();
ResultSet rs = smt.executeQuery(sql);
List<Forum> forumList = new ArrayList<Forum>();
while(rs.next()){
Forum forum = new Forum();
forum.setFid(rs.getInt("fid"));
forum.setName(rs.getString("name"));
forumList.add(forum);
}
return forumList;
}
}
9. Create a database directory under src/main/resources to store spring-datasource.xml file, as shown in the figure
10. The data source spring-databsource.xml file is as follows
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/b_shequ_two" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
</beans>
11. Create a dao directory under src/main/resources to store the corresponding bean files with the file name spring-forum.xml, as shown in the figure
12.spring-forum.xml is as follows
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="forumDao"
class="com.mycompany.shequ.dao.impl.ForumDaoImpl">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
13. Create spring core configuration file spring-module.xml under src/main/resources, as shown in the figure
14.spring core configuration file spring-module.xml is as follows
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Using mysql datasource -->
<import resource="database/spring-datasource-mysql.xml" />
<import resource="dao/spring-forum.xml" />
</beans>
15. Create the test class ForumDaoImplTest under the src/test/java directory with the package name (com.mycompany.shequ.dao.impl), as shown in the figure.
16. The test class ForumDaoImplTest reads as follows
package com.mycompany.shequ.dao.impl;
import java.util.List;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.mycompany.shequ.bean.Forum;
import com.mycompany.shequ.dao.ForumDao;
public class ForumDaoImplTest {
@Test
public void queryTest(){
ApplicationContext context = new ClassPathXmlApplicationContext("spring-module.xml");
ForumDao forumDao = (ForumDao) context.getBean("forumDao");
try {
List<Forum> forumList = forumDao.queryDepartment();
for (Forum forum : forumList) {
System.out.println(forum.getFid());
System.out.println(forum.getName());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
17. Right-click on the queryTest method of the test class ForumDaoImplTest, and the output is shown in the figure.