springMVC+ibatis数据持久化入门级学习例子

时间:2023-03-09 03:38:06
springMVC+ibatis数据持久化入门级学习例子

1.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet>
<servlet-name>spring-mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
</servlet> <servlet-mapping>
<servlet-name>spring-mvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>

2.application.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="handler" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="test.do">testControllerAction</prop>
</props>
</property>
</bean> <bean id="testControllerAction" class="org.ue.action.TestControllerAction">
<property name="pageSize">
<value>20</value>
</property>
<property name="successView">
<value>list.jsp</value>
</property>
</bean> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:db-properties.properties</value>
</property>
</bean>
<bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>${jdbc.driverClassName}</value>
</property>
<property name="url">
<value>${jdbc.url}</value>
</property>
<property name="username">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
</bean> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:sqlmap-config.xml</value>
</property>
</bean> <bean id="studentDao" class="org.ue.dao.impl.StudentDaoImpl">
<property name="dataSource" ref="ds"></property>
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean> </beans>

3.db-properties.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=utf-8
jdbc.username=test
jdbc.password=test

4.sqlmap-config.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings cacheModelsEnabled="true" enhancementEnabled="true"
lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"
maxSessions="10" maxTransactions="5" useStatementNamespaces="false" /> <!--
Identify all SQL Map XML files to be loaded by this SQL map.
Notice the paths are relative to the classpath.
-->
<sqlMap resource="sqlmap-test.xml" /> </sqlMapConfig>

5.sqlmap-test.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd"> <sqlMap namespace="ts">
<typeAlias alias="stu" type="org.ue.po.Student" /> <select id="listStu" resultClass="stu">
select id, name from tbl_student
</select>
</sqlMap>

6.Action

public class TestControllerAction implements Controller {

    private String successView;
private String pageSize;
/* (non-Javadoc)
* @see org.springframework.web.servlet.mvc.Controller#handleRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
System.out.println("---pageSize---" + pageSize);
request.setAttribute("pageSize", pageSize);
return new ModelAndView(successView);
} public String getPageSize() {
return pageSize;
}
public void setPageSize(String pageSize) {
this.pageSize = pageSize;
}
public String getSuccessView() {
return successView;
}
public void setSuccessView(String successView) {
this.successView = successView;
} }

7.dao

public interface StudentDao {
public List getStudent() throws Exception;
}
public class StudentDaoImpl extends SqlMapClientDaoSupport implements StudentDao { /* (non-Javadoc)
* @see org.ue.dao.StudentDao#getStudent()
*/
public List getStudent() throws Exception{
// TODO Auto-generated method stub
return getSqlMapClientTemplate().queryForList("listStu",null);
} }

8.po

public class Student {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
} }

9.list.jsp

<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'list.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> <%
String pageSize = (String)request.getAttribute("pageSize");
out.println("pageSize:" + pageSize);
%>
</head> <body>
This is my JSP page. <br>
<%
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//DataSource ds = (DataSource) ac.getBean("ds");
//System.out.println(ds.getConnection().getMetaData().getDriverName()); StudentDao studentDao = (StudentDao) ac.getBean("studentDao");
List ls = studentDao.getStudent();
for (int i = 0; i < ls.size(); i++) {
Student stu = (Student)ls.get(i);
out.println("<strong>--id--"+stu.getId()+"--name--"+stu.getName()+"</strong><br/>");
}
%>
</body>
</html>

10.数据库脚本test.tbl_student

create database if not exists `test`;

USE `test`;

/*数据表 `tbl_student` 的表结构*/

CREATE TABLE `tbl_student` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(20) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk; /*数据表 `tbl_student` 的数据*/ insert into `tbl_student` values (1,'hnhj');
insert into `tbl_student` values (2,'zndx');
insert into `tbl_student` values (3,'steve');
insert into `tbl_student` values (4,'china');