zoukankan      html  css  js  c++  java
  • 【从零开始学SpringMVC笔记】SSM框架整合

    整合思路

    Dao层:
    1、SqlMapConfig.xml,需要文件头并指定别名。
    2、applicationContext-dao.xml
    a) 数据库连接池
    b) SqlSessionFactory对象,需要spring和mybatis整合包下的。
    c) 配置mapper文件扫描器。

    Service层:
    1、applicationContext-service.xml包扫描器,扫描@service注解的类。
    2、applicationContext-trans.xml配置事务。

    Controller层:
    1、Springmvc.xml
    a) 包扫描器,扫描@Controller注解的类。
    b) 配置注解驱动
    c) 配置视图解析器

    Web.xml文件:
    1、配置spring
    2、配置前端控制器。

    创建数据库

    /*
    Navicat MySQL Data Transfer
    
    Source Server         : localhost_3306
    Source Server Version : 50611
    Source Host           : localhost:3306
    Source Database       : springmvc
    
    Target Server Type    : MYSQL
    Target Server Version : 50611
    File Encoding         : 65001
    
    Date: 2016-05-09 19:45:13
    */
    
    SET FOREIGN_KEY_CHECKS=0;
    
    -- ----------------------------
    -- Table structure for items
    -- ----------------------------
    DROP TABLE IF EXISTS `items`;
    CREATE TABLE `items` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(32) NOT NULL COMMENT '商品名称',
      `price` float(10,1) NOT NULL COMMENT '商品定价',
      `detail` text COMMENT '商品描述',
      `pic` varchar(64) DEFAULT NULL COMMENT '商品图片',
      `createtime` datetime NOT NULL COMMENT '生产日期',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of items
    -- ----------------------------
    INSERT INTO `items` VALUES ('1', '台式机', '3000.0', '该电脑质量非常好!!!!', null, '2016-02-03 13:22:53');
    INSERT INTO `items` VALUES ('2', '笔记本', '6000.0', '笔记本性能好,质量好!!!!!', null, '2015-02-09 13:22:57');
    INSERT INTO `items` VALUES ('3', '背包', '200.0', '名牌背包,容量大质量好!!!!', null, '2015-02-06 13:23:02');
    
    -- ----------------------------
    -- Table structure for user
    -- ----------------------------
    DROP TABLE IF EXISTS `user`;
    CREATE TABLE `user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `username` varchar(32) NOT NULL COMMENT '用户名称',
      `birthday` date DEFAULT NULL COMMENT '生日',
      `sex` char(1) DEFAULT NULL COMMENT '性别',
      `address` varchar(256) DEFAULT NULL COMMENT '地址',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of user
    -- ----------------------------
    INSERT INTO `user` VALUES ('1', '王五', null, '2', null);
    INSERT INTO `user` VALUES ('10', '张三', '2014-07-10', '1', '北京市');
    INSERT INTO `user` VALUES ('16', '张小明', null, '1', '河南郑州');
    INSERT INTO `user` VALUES ('22', '陈小明', null, '1', '河南郑州');
    INSERT INTO `user` VALUES ('24', '张三丰', null, '1', '河南郑州');
    INSERT INTO `user` VALUES ('25', '陈小明', null, '1', '河南郑州');
    INSERT INTO `user` VALUES ('26', '王五', null, null, null);
    

    逆向工程生成dao和pojo

    如何使用逆向工程参考【从零开始学Mybatis笔记】-逆向工程相关博客

    配置环境

    创建资源文件夹config
    在其下创建mybatis和spring文件夹,用来存放配置文件,如下图:

    sqlMapConfig.xml

    使用逆向工程来生成Mapper相关代码
    在config/mybatis下创建sqlMapConfig.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    	<!-- 设置别名 -->
    	<typeAliases>
    		<!-- 2. 指定扫描包,会把包内所有的类都设置别名,别名的名称就是类名,大小写不敏感 -->
    		<package name="com.tyust.springmvc.pojo" />
    	</typeAliases>
    	
    	
    </configuration>
    
    

    applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:p="http://www.springframework.org/schema/p"
    	xmlns:aop="http://www.springframework.org/schema/aop"
    	xmlns:tx="http://www.springframework.org/schema/tx"
    	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-4.0.xsd
    	http://www.springframework.org/schema/context
    	http://www.springframework.org/schema/context/spring-context-4.0.xsd
    	http://www.springframework.org/schema/aop 
    	http://www.springframework.org/schema/aop/spring-aop-4.0.xsd 
    	http://www.springframework.org/schema/tx 
    	http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
    	http://www.springframework.org/schema/util 
    	http://www.springframework.org/schema/util/spring-util-4.0.xsd">
    
    	<!-- 加载配置文件 -->
    	<context:property-placeholder
    		location="classpath:db.properties" />
    
    	<!-- 数据库连接池 -->
    	<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.username}" />
    		<property name="password" value="${jdbc.password}" />
    		<property name="maxActive" value="10" />
    		<property name="maxIdle" value="5" />
    	</bean>
    
    	<!-- 配置SqlSessionFactory -->
    	<bean id="sqlSessionFactory"
    		class="org.mybatis.spring.SqlSessionFactoryBean">
    		<!-- 数据库连接池 -->
    		<property name="dataSource" ref="dataSource" />
    		<!-- 加载mybatis的全局配置文件 -->
    		<property name="configLocation"
    			value="classpath:mybatis/sqlMapConfig.xml" />
    	</bean>
    
    
    
    	<!-- Mapper代理的方式开发方式二,扫描包方式配置代理 -->
    	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    		<!-- 配置Mapper接口 -->
    		<property name="basePackage" value="com.tyust.springmvc.dao" />
    	</bean>
    	
    	<!-- 事务管理器 -->
    	<bean id="transactionManager"
    		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    		<!-- 数据源 -->
    		<property name="dataSource" ref="dataSource" />
    	</bean>
    	<!-- 开启注解 -->
    	<tx:annotation-driven transaction-manager="transactionManager"/>
    	
    
    
    </beans>
    

    db.properties

    配置数据库相关信息

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/springmvc?characterEncoding=utf-8
    jdbc.username=root
    jdbc.password=root
    

    springmvc.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:p="http://www.springframework.org/schema/p"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:mvc="http://www.springframework.org/schema/mvc"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
    
    	<!-- 配置扫描所有包controller和service -->
    	<context:component-scan base-package="com.tyust.springmvc" />
    	
    	<!-- 注解驱动 -->
    	<mvc:annotation-driven />
    
    	<!-- Example: prefix="/WEB-INF/jsp/", suffix=".jsp", viewname="test" -> 
    		"/WEB-INF/jsp/test.jsp" -->
    	<!-- 配置视图解析器 -->
    	<bean
    	class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<!-- 配置逻辑视图的前缀 -->
    		<property name="prefix" value="/WEB-INF/jsp/" />
    		<!-- 配置逻辑视图的后缀 -->
    		<property name="suffix" value=".jsp" />
    	</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_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>springmvcday01</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>
      
      	<!-- 配置spring -->
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>classpath:spring/applicationContext*.xml</param-value>
    	</context-param>
    
    	<!-- 使用监听器加载Spring配置文件 -->
    	<listener>
    		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	</listener>
    
    	<!-- 配置SrpingMVC的前端控制器 -->
    	<servlet>
    		<servlet-name>springmvc-web</servlet-name>
    		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    		<init-param>
    			<param-name>contextConfigLocation</param-name>
    			<param-value>classpath:spring/springmvc.xml</param-value>
    		</init-param>
    	</servlet>
    
    	<servlet-mapping>
    		<servlet-name>springmvc-web</servlet-name>
    		<!-- 配置所有以action结尾的请求进入SpringMVC -->
    		<url-pattern>*.action</url-pattern>
    	</servlet-mapping>
    
    </web-app>
    
    

    加入jsp页面

    复制之前资料的itemList.jsp和itemEdit.jsp到工程中

    此处报错是编译器原因,表头报错,并不影响运行结果

    测试:实现商品列表显示

    需求
    实现商品查询列表,从mysql数据库查询商品信息。

    ItemService接口和实现类

    public interface ItemsService {
    	
    	
    		/**
    		 * 查询商品列表
    		 * 
    		 * @return
    		 */
    		List<Items> queryItemList();
    }
    
    
    @Service
    public class ItemsServiceImpl implements ItemsService {
    
    	@Autowired
    	private ItemsMapper itemsMapper;
    
    	@Override
    	public List<Items> queryItemList() {
    
    		List<Items> list = this.itemsMapper.selectByExample(null);
    
    		return list;
    
    	}
    
    }
    

    ItemController

    @Controller
    public class ItemController {
    
    	@Autowired
    	private ItemsService itemsService;
    
    	/**
    	 * 显示商品列表
    	 * 
    	 * @return
    	 */
    	@RequestMapping("/itemList.action")
    	public ModelAndView queryItemList() {
    		// 获取商品数据
    		List<Items> list = this.itemsService.queryItemList();
    
    		ModelAndView modelAndView = new ModelAndView();
    		// 把商品数据放到模型中
    		modelAndView.addObject("itemList", list);
    		// 设置逻辑视图
    		modelAndView.setViewName("itemList");
    
    		return modelAndView;
    	}
    
    }
    
    

    结果

    访问url:http://localhost:8080/springmvc-mybatis/itemList.action

  • 相关阅读:
    序列化与反序列化
    进程与线程
    winform基础
    MD5加密
    Docker安装Nextcloud+collabora office+ocdownloader
    Docker安装MariaDB
    Docker 安装 Nginx
    Docker命令大全
    Docker之镜像操作
    Linux入门-Docker安装
  • 原文地址:https://www.cnblogs.com/zllk/p/12793175.html
Copyright © 2011-2022 走看看