做任何一个项目都以一个需求,这里先定义一下需求:利用三大框架查询酒店列表。

一、搭建开发环境

1、创建一个web项目

我这里用的是 jdk1.8+tomact7.0

2、创建hotel表

CREATE TABLE `hotel` (`id` int(11) NOT NULL,`hotel_name` varchar(20) NOT NULL,`hotel_address` varchar(20) DEFAULT NULL,`city_code` int(3) DEFAULT NULL,`price` int(11) NOT NULL,`creat_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

添加一些数据

3、添加Springmvc+Spring+mybatis+sql的jar包,新建一个lib目录

二、编写配置文件

主要有以下配置文件web.xml,Springmvc的配置文件,mybatis的配置文件,数据源配置文件

这里没使用maven,不然还有pom.xml文件

1、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"version="3.0"><!-- 加载spring容器 --><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/classes/config/root-context.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- spring mvc --><servlet><!--前端控制器配置 --><servlet-name>ssm</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><!-- springmvc配置文件地址 --><param-value>classpath:config/springmvc-context.xml</param-value></init-param><!-- 启动优先级配置 --><load-on-startup>1</load-on-startup><async-supported>true</async-supported></servlet><servlet-mapping><servlet-name>ssm</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

2、springmvc-context.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:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task"xmlns:jee="http://www.springframework.org/schema/jee" xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/mvc  http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsdhttp://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.3.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.3.xsd"><!--扫描controller组件 --><context:component-scan base-package="com.pjf.ssm.controller" /><!-- 视图解析器配置 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver" /><!-- 控制器映射器控制器适配器配置 --><mvc:annotation-driven></mvc:annotation-driven>
</beans>

3、mybatis-context.xml

因为是和spring的结合,这里大部分的配置都省略了,在Spring配置文件中配置。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!-- 配置mapper 使用spring和mybatis的整合包进行扫描,这里不需要配置 必须遵循mapper.xml文件和mapper.java同名 --><!-- 全局的setting配置 比如二级缓存的时候这里就需要配置 --><!-- 别名的配置 --><typeAliases><package name="com.tuniu.ssm.po" /></typeAliases></configuration>

4、db.properties配置

在Spring配置文件之前,必须先要配置数据源

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring_mybatis
jdbc.name=root
jdbc.password=pjf520

5、spring配置文件 root-context.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:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task"xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jee="http://www.springframework.org/schema/jee"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/mvc  http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsdhttp://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.3.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.3.xsd"><!-- 配置组件扫描器 --><context:component-scan base-package="com.pjf.ssm.service"></context:component-scan><context:property-placeholder location="classpath:db.properties" /><!-- 配置数据源 dbcp --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.name}" /><property name="password" value="${jdbc.password}" /><property name="maxActive" value="30" /><property name="maxIdle" value="5" /></bean><!-- 配置sqlSessionFactory dataSource  数据源配置configLocation  mybatis配置文件地址--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"></property><property name="configLocation" value="classpath:config/mybatis-context.xml"></property></bean><!-- 配置mapper扫描器   basePackage  mapper接口和mapper.xml文件的类全名sqlSessionFactoryBeanName  sqlsession工厂--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- s扫描包的路径,如果有多个,中间用逗号隔开 --><property name="basePackage" value="com.pjf.ssm.dao"></property><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property></bean><!-- 事物管理器 对mybatis操作数据库的事物控制,spring使用jdbc的事物控制 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!-- 数据源的配置 dataSource在orm-context.xml中配置了 --><property name="dataSource" ref="dataSource"></property></bean><!-- 配置通知 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="query*" propagation="REQUIRED" /><tx:method name="add" propagation="REQUIRED" /><tx:method name="update" propagation="REQUIRED" /><tx:method name="insert*" propagation="REQUIRED" /><tx:method name="delete*" propagation="REQUIRED" /><tx:method name="find*" propagation="SUPPORTS" read-only="true" /><tx:method name="get*" propagation="SUPPORTS" read-only="true" /><tx:method name="set*" propagation="SUPPORTS" read-only="true" /></tx:attributes></tx:advice><!-- 配置aop --><aop:config><aop:advisor advice-ref="txAdvice"pointcut="execution(* com.pjf.ssm.service.impl.*.*(..))" /></aop:config></beans>

三、编写代码

1、hotel.java

package com.pjf.ssm.po;public class Hotel {private int hotelId;private String hotelName;private String hotelAddress;private int price;public int getHotelId() {return hotelId;}public void setHotelId(int hotelId) {this.hotelId = hotelId;}public String getHotelName() {return hotelName;}public void setHotelName(String hotelName) {this.hotelName = hotelName;}public String getHotelAddress() {return hotelAddress;}public void setHotelAddress(String hotelAddress) {this.hotelAddress = hotelAddress;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}}

2、hotel.service接口和实现类

通过@Service("hotelService")在Spring工厂中注册,就不需要编写xml文件配置了

通过@Autowired注入hotelMapper类

package com.pjf.ssm.service;import java.util.List;import com.pjf.ssm.po.Hotel;public interface HotelService {public List<Hotel> queryHotelList();}

package com.pjf.ssm.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import com.pjf.ssm.dao.HotelMapper;
import com.pjf.ssm.po.Hotel;
import com.pjf.ssm.service.HotelService;//注册组件
@Service("hotelService")
public class HotelServiceImpl implements HotelService {// 自动注入
    @Autowiredprivate HotelMapper hotelMapper;public List<Hotel> queryHotelList() {return hotelMapper.queryHotelList();}
}

3、hotelMapper接口和hotelMapper.xml文件

写了个简单的查询语句,这两个文件必须保吃同名,且在同一个目录下。

package com.pjf.ssm.dao;import java.util.List;import com.pjf.ssm.po.Hotel;public interface HotelMapper {public List<Hotel> queryHotelList();}

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.pjf.ssm.dao.HotelMapper"><resultMap id="HotelMap" type="com.pjf.ssm.po.Hotel"><id column="id" property="hotelId" jdbcType="INTEGER" /><result column="hotel_name" property="hotelName" jdbcType="VARCHAR" /><result column="hotel_address" property="hotelAddress" jdbcType="VARCHAR" /><result column="price" property="price" jdbcType="INTEGER" /></resultMap><select id="queryHotelList" resultMap="HotelMap">select id,hotel_name,hotel_address,price from hotel</select>    </mapper>

4、QueryHotelController .java

package com.pjf.ssm.controller;import java.util.ArrayList;
import java.util.List;import com.pjf.ssm.po.Hotel;
import com.pjf.ssm.service.HotelService;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
//使用Controller这个注解来标识这是一个控制器
@Controller
public class QueryHotelController {@Autowiredprivate HotelService hotelService;//酒店列表查询//@RequestMapping实现queryHotelList方法和url进行映射//建议将url和方法名一样,一个方法对应一个url@RequestMapping(value = "/queryHotelList", method = RequestMethod.GET)public ModelAndView queryHotelList()throws Exception{List<Hotel> hotelList = hotelService.queryHotelList();            ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("hotelList",hotelList);modelAndView.setViewName("/WEB-INF/jsp/hotel/hotelList.jsp");return modelAndView;}
}

5、jsp文件编写

主要是前端的展示,不熟悉html的可以网上copy一份修改下就行了

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!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="${pageContext.request.contextPath }/queryHotelDetail.action" method="get">酒店列表:
<table border=1>
<tr><td>酒店id</td><td width=100>酒店名</td><td>酒店地址</td><td>起价</td><td ></td>
</tr>
<c:forEach items="${hotelList}" var="hotel">
<tr><td>${hotel.hotelId }</td><td>${hotel.hotelName }</td><td>${hotel.hotelAddress }</td><td>${hotel.price }</td><td ><input type="submit" value="查看详情"></td>
</tr>
</c:forEach>
</table>
</form></body>
</html>

四、在tomact中测试

在tomact中添加工程ssm,然后右键点击tomact,点击debug运行,debug模式下修改文件,不需要重启tomact就可以生效

然后在前端输入地址

http://localhost:8081/ssm/queryHotelList

这里之所以是8081端口,是因为我本地之前装了tomact8.0,避免冲突所以修改了默认的8080端口,大家测试可以使用8080.

结果:

转载于:https://www.cnblogs.com/pjfmeng/p/7753824.html

mybatis学习(十一)——springmvc++spring+mybatis整合相关推荐

  1. 通俗易懂-SSM三大框架整合案例(SpringMVC+Spring+Mybatis)

    前言: 学习B站UP狂神说视频笔记整理视频链接 相关代码已经上传至码云:码云链接 前期准备 项目介绍 demo项目是一个简单的图书管理系统,主要功能为表单数据的增删改查 Web端使用JSP+Boots ...

  2. idea springmvc_SSM三大框架使用Maven快速搭建整合(SpringMVC+Spring+Mybatis)

    本文介绍使用SpringMVC+Spring+MyBatis三大框架使用Maven快速搭建一个demo,实现数据从数据库中查询返回到页面进行展示的过程. 技术选型:SpringMVC+Spring+M ...

  3. springMVC+Spring+mybatis整合配置版与注解版

    springMVC+Spring+mybatis整合 , 使用配置版来完成: -----------------------------前端 1.创建web系统,导入jar包: spring的jar包 ...

  4. 孙宇java_[JAVA] 孙宇老师Struts2+Hibernate4+Maven+EasyUI+SpringMvc+Spring+Mybatis+Maven整合课程...

    资源介绍 孙宇老师Struts2+Hibernate4+Maven+EasyUI+SpringMvc+Spring+Mybatis+Maven整合课程 ===============课程目录===== ...

  5. SSM整合(springMVC+spring+Mybatis)

    目录 前言 (一)三个框架的应用 SpringMVC Spring Mybatis (二)整合步骤 包结构 1.pom..xml导入依赖 2.配置web.xml文件 3.创建springmvc.xml ...

  6. 手把手教你整合 SpringMvc+Spring+MyBatis+Maven

    注:该教程是参考孙宇老师的<SpringMvc+Spring+Mybatis+Maven整合视频教程1>整理的,花了我六个多小时,边复习视频边调代码边写教程,保证该教程每一步都能正确执行, ...

  7. 基于IDEA的SpringMVC+Spring+Mybatis的web项目环境搭建、目录解析、代码整合

    目的作用 希望可以通过记录一下自己一个基于IDEA的SpringMVC+Spring+Mybatis完整项目的代码框架,里边的代码实现了从界面操作数据对数据库实现了基本的语句,给自己留一个备份给需要里 ...

  8. 第04项目:淘淘商城(SpringMvc+Spring+Mybatis) 的个人学习实践总结【第三天】

    本人做过一年的MATLAB编程和简单维护过VB和C++的项目.是跟着网上获得的IT培训机构的Java视频课来自学入门Java知识和常用框架的使用. 淘淘商城(SpringMvc+Spring+Myba ...

  9. spring+websocket综合(springMVC+spring+MyBatis这是SSM框架和websocket集成技术)

    java-websocket该建筑是easy.儿童无用的框架可以在这里下载主线和个人教学好java-websocket计划: Apach Tomcat 8.0.3+MyEclipse+maven+JD ...

最新文章

  1. 创新方法系列 如何找联系 符号化就是找数学中的等于==关系,遇到等号请留意
  2. python编程基础课后答案-中国大学慕课moocPython编程基础课后答案
  3. Web Components 入门实例教程
  4. 【计算机网络笔记】计算机网络体系与参考模型
  5. Scala类的继承和抽象类
  6. c语言不定长数组_学习C语言这三块“硬骨头”不搞定学了也是白学
  7. linux内核那些事之mmap_region流程梳理
  8. idea jdk编译报错解决办法
  9. 笔记本电脑键盘切换_有哪些好用的办公键盘
  10. 第四章 Linux命令
  11. ftp服务器文件上传代码,Java上传文件FTP服务器代码
  12. python权重矩阵_生成空间权重矩阵
  13. ZigBee Z-Stack 2.04 IAR软件版本
  14. 矩阵按层级内容排序——Power BI
  15. 浪潮服务器管理口地址linux系统,浪潮服务器管理口BMC通用设置
  16. Asterisk入门教程
  17. 学霸是怎样炼成的?学了那么多还一无是处?如何克服学习阻力?一件枯燥讨厌的事但必须要做?内心强大的主观改造 自我加速(学以致用)与环境加速(学习型组织)
  18. 效率神器----WOX
  19. 超好看的3D烟花代码
  20. 软件设计师2022记录

热门文章

  1. C++对象模型详解(上)
  2. 修改 SQL Server 服务器的 IP 地址
  3. __cdecl __stdcall区别-转
  4. 简单的OSPF多区配置
  5. 七、106页第40题(类的继承)
  6. 『中级篇』docker之虚拟机创建vagrant技巧(番外篇)(81)
  7. Thrift RPC 系列教程(3)——模块化
  8. 从零开始学习hadoop之发行版选择
  9. python 程序1【登录接口】
  10. Exchange2010之资源邮箱