第一步:首先创建两张表,并给表中添加值
第二步:然后创建一个动态工程(注意:不是Java工程)
第三步:接下来创建一个默认的index.jsp文件,该文件中我们写入form表单来提交值(注意:action属性的路径必须要与Controller类路径相对应)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>会员表——消费记录</title>
</head>
<body>
<!-- 使用表单来提交值 -->
<form action="member/consume">
用户ID:<input type="text" name="mid">
<input type="submit" value="确定提交"/>
</form>
</body>
</html>
第三步:其次创建一个Controller类
package com.zhiyuan.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.zhiyuan.mapper.MemberMapper;
import com.zhiyuan.pojo.Consume;
//使用@Controller来注释这是一个Controller类
@Controller
// 使用@RequestMapping处理地址映射的注解,表示类中的方法
@RequestMapping("/member")
public class MemberController {
// 使用@Autowired来进行自动装配
@Autowired
// 实例化接口
MemberMapper imember;
// 使用@RequestMapping处理地址映射的注解,表示类中的方法
@RequestMapping("/consume")
// 定义一个ModelAndView类型的方法并给他参数类型
public ModelAndView getConsumeList(HttpServletRequest request) {
// 使用参数名调用getParameter方法获取页面值,该方法中的值要与index.jsp中的页面name属性值保持一致
//将获取的值转换为int类型
int res = Integer.parseInt(request.getParameter("mid"));
//使用List集合来装对应的实体类,并调用接口中的方法
List<Consume> list = imember.consume(res);
//实例化ModelAndView,并给他一个参数跳转到所创建的JSP文件中去
ModelAndView mv = new ModelAndView("consume_list");
//对象名调用addObject方法一键对应一值
mv.addObject("consume", list);
//返回一个ModelAndView对象
return mv;
}
}
第四步:创建一个对应的接口,并在接口中定义一个要使用的方法(注意:接口中只能定义方法)
package com.zhiyuan.mapper;
import java.util.List;
import com.zhiyuan.pojo.Consume;
public interface MemberMapper {
public List<Consume> consume(int id);
}
第五步:创建两个相对应的实体类文件
package com.zhiyuan.pojo;
public class Member {
private int id;
private String name;
private int phone;
private int money;
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;
}
public int getPhone() {
return phone;
}
public void setPhone(int phone) {
this.phone = phone;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
package com.zhiyuan.pojo;
public class Consume {
private int c_id;
private String c_name;
private int money;
private String goods;
private String servers;
private String content;
private int m_id;
private Member member;
public int getC_id() {
return c_id;
}
public void setC_id(int c_id) {
this.c_id = c_id;
}
public String getC_name() {
return c_name;
}
public void setC_name(String c_name) {
this.c_name = c_name;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public String getGoods() {
return goods;
}
public void setGoods(String goods) {
this.goods = goods;
}
public String getServers() {
return servers;
}
public void setServers(String servers) {
this.servers = servers;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getM_id() {
return m_id;
}
public void setM_id(int m_id) {
this.m_id = m_id;
}
public Member getMember() {
return member;
}
public void setMember(Member member) {
this.member = member;
}
}
第六步:配置xxx-xxx-servlet.xml配置文件(注意:前缀,value的值必须与你的文件名路径相对应)
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<context:component-scan base-package="com.zhiyuan.controller"/>
<bean id="viewResolve" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
第七步:配置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" 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>Spring-mvc-mybatis</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置Spring主配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:conf/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>spring-mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>spring-mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
第八步:配置Mybatis主配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "mybatis-3-config.dtd" >
<configuration>
<typeAliases>
<typeAlias type="com.zhiyuan.pojo.Member" alias="member"/>
<typeAlias type="com.zhiyuan.pojo.Consume" alias="consume"/>
</typeAliases>
</configuration>
第九步:配置Spring主配置文件
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"
default-autowire="byName" default-lazy-init="false">
<!-- 配置JDBC数据库连接 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/tests"></property>
<property name="username" value="root"></property>
<property name="password" value="liuxi"></property>
</bean>
<!-- 事务管理,管理数据库 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 配置映射文件和Mybatis主配置文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:conf/config.xml"></property>
<property name="mapperLocations" value="classpath*:com/zhiyuan/mapper/*.xml"></property>
</bean>
<!-- 加載映射文件 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.zhiyuan.mapper"></property>
</bean>
</beans>
第十步:创建一个JSP文件获取值,该JSP文件名必须与Controller类中实例化ModelAndView给他的参数名一样<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page import="com.zhiyuan.pojo.*" %>
<%@ page import="java.util.*" %>
<!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>获取信息</title>
</head>
<body>
<h1 style="font-family:华文行楷">用户信息表</h1>
<table border="1px" style="border-collapse:collapse;width:400px;height:200px;text-align:center">
<tr>
<td>用戶名</td>
<td>消费金额</td>
<td>消费类型</td>
<td>服务项目</td>
<td>保修时间</td>
</tr>
<%
List<Consume> consume=(List<Consume>)request.getAttribute("consume");
for(Consume cs:consume){
String name=cs.getC_name();
int money=cs.getMoney();
String goods=cs.getGoods();
String servers=cs.getServers();
String content=cs.getContent();
%>
<tr>
<td><%=name %></td>
<td><%=money %></td>
<td><%=goods %></td>
<td><%=servers %></td>
<td><%=content %></td>
</tr>
<%
}
%>
</table>
</body>
</html>
最后结果: