SSM框架整合

17.1 整合环境搭建
17.1.1 整合思路

由于Spring MVC是 Spring 框架中的一个模块,所以Spring MVC与Spring之间不存在整合的问题,只要引入相应JAR包就可以直接使用。因此SSM框架的整合就涉及Spring与MyBatis 的整合,以及Spring MVC 与 MyBatis的整合。

17.1.2 准备所需jar包

1.数据库连接池

<dependency>
	<groupId>commons-codec</groupId>
	<artifactId>commons-codec</artifactId>
	<version>1.14</version>
</dependency>
		
  1. mysql驱动包
  <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.19</version>
    </dependency>
  1. MyBatis整合Spring的适配包
  <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.4</version>
    </dependency>

4.Spring mvcJAR包

  <dependency>
		  <groupId>org.springframework</groupId>
		  <artifactId>spring-webmvc</artifactId>
		  <version>4.3.9.RELEASE</version>
	  </dependency>
17.1.3 编写测试文件

在这里以我自己的项目为例:
1.创建WZNoteserver项目
2.在WZNoteserver项目下,创建名为conf的源文件夹,分别创建数据库常量配置文件(jdbc.properties),Spring配置文件(spring-mybatis.xml)以及MyBatis的配置文件(spring-service.xml)。
db.properties
 db.properties
spring-mybatis.xml
在这里插入图片描述
首先定义了读取db.properties文件的配置信息和数据源配置,然后配置了事务管理器并开启了事务注解。
接下来配置了用于整合MyBatis框架的MyBatis工厂信息。
最后定义了mapper扫描器来扫描Dao层以及扫描Service层的配置。
由于Spring已经配置了数据源信息以及mapper接口文件扫描器,所以在MyBatis的配置文件中只需要根据POJO类路径进行别名配置即可。
spring-service.xml

<context:component-scan base-package="com.whc.noteserver"></context:component-scan>
<!-- 启动注解版的MVC -->
<mvc:annotation-driven></mvc:annotation-driven>
17.2 整合应用测试

17.1节已经完成了SSM框架整合环境的搭建工作,可以说完成了这些配置之后,就已经完成了这三个框架大部分的整合工作。
接下来,以查询笔记本信息为例,来讲解SSN框架的整合开发。
1>在src目录下,创建一个com.whc.noteserver.entity包,并在包中创建持久化类Notebook.xml,编写后文件如下:

package com.whc.noteserver.entity;

import java.io.Serializable;
public class NoteBook implements Serializable {
	public static int DELETE_YES=1;
	public static int DELETE_NO=1;
 private String id;
 private String name;
 private long addtime;
 private int isdelete;  //0未删除 1删除
 private String userid;   //关联用户表的id
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public long getAddtime() {
		return addtime;
	}
	public void setAddtime(long addtime) {
		this.addtime = addtime;
	}
	public int getIsdelete() {
		return isdelete;
	}
	public void setIsdelete(int isdelete) {
		this.isdelete = isdelete;
	}
	public String getUserid() {
		return userid;
	}
	public void setUserid(String userid) {
		this.userid = userid;
	}
	@Override
	public String toString() {
		return "NoteBook [id=" + id + ", name=" + name + ", addtime=" + addtime + ", isdelete=" + isdelete + ", userid="
				+ userid + "]";
	}
}

在上面的文件中,编写了一个用于映射数据库表notebooks的客户持久化类,再类中分别定义了id,name,addtime,isdelete和userid属性。以及对应的getter/setter方法。
2>在src目录下,创建一个com.whc.noteserver.dao包,并在包中创建接口文件Notebook,dao以及对应的映射文件Notebook.xml,编辑后文件如下:

package com.whc.noteserver.dao;

import java.util.List;

import com.whc.noteserver.entity.NoteBook;
import com.whc.noteserver.param.NoteBookParam;

public interface NoteBookDao {
	/**
	 * 获取笔记本信息
	 * @return
	 */
	public List<NoteBook> getNoteBook(NoteBookParam param);
	
}
<?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.whc.noteserver.dao.NoteBookDao" >
  <select id="getNoteBook" resultType="com.whc.noteserver.entity.NoteBook">
		select id,name,addtime,isdelete,userid from note_t_notebooks where isdelete=0 and userid=#{userid} order by addtime desc limit #{page},#{limit}
  </select>
</mapper>  

3>在src目录下,创建package com.whc.noteserver.service;包,然后再包中创建NoteBookService接口文件,定义获取笔记本信息查询的方法,如下所示:

package com.whc.noteserver.service;

import java.util.List;

import com.whc.noteserver.entity.NoteBook;
import com.whc.noteserver.param.NoteBookParam;

public interface NoteBookService {
	/**
	 * 获取笔记本信息
	 * @return
	 */
	public List<NoteBook> getNoteBook(NoteBookParam param);
	}

4>在src目录下,创建package com.whc.noteserver.serviceimpl;包,然后再包中创建NoteBookService接口的实现类NoteBookImpl,如下所示:

package com.whc.noteserver.serviceimpl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.whc.noteserver.dao.NoteBookDao;
import com.whc.noteserver.entity.NoteBook;
import com.whc.noteserver.param.NoteBookParam;
import com.whc.noteserver.service.NoteBookService;
@Service
public class NoteBookImpl implements NoteBookService{

	/**
	 * 获取笔记本信息
	 * @return
	 */
	public List<NoteBook> getNoteBook(NoteBookParam param) {
		
		
		return noteBookDao.getNoteBook(param);
	}
	}

5>在src目录下,创建package com.whc.noteserver.controller;包,然后再包中创建用于处理页面请求的控制器类NotebookController,如下所示:

package com.whc.noteserver.controller;

import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
import java.util.UUID;

import javax.servlet.http.HttpSession;

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.ResponseBody;

import com.whc.noteserver.entity.NoteBook;
import com.whc.noteserver.param.NoteBookParam;
import com.whc.noteserver.result.LayPage;
import com.whc.noteserver.service.NoteBookService;
import com.whc.noteserver.util.JsonResult;

//注解,组建扫描,加入Spring容器中
@Controller
//类controller的映射路径
@RequestMapping("/notebook")
public class NotebookController {

	@Autowired
	NoteBookService noteBookService;
/**
	 * 获取笔记本信息
	 * @return
	 */
	@RequestMapping("/getnotebook")
	@ResponseBody
	public JsonResult getNoteBook(NoteBookParam param,HttpSession session) {
		/*
		 * //根据page和limit去数据库中取值 String
		 * userid=session.getAttribute("id")==null?"":session.getAttribute("id").
		 * toString(); param.setUserid(userid);
		 */
		if(param.getPage()!=0&&param.getLimit()!=0) {
			param.setPage((param.getPage()-1)*param.getLimit());
			
		}
		/* param.setPage((param.getPage()-1)*(param.getLimit())); */
		List<NoteBook> list=noteBookService.getNoteBook(param);
		
		int count=noteBookService.getCount(param);
		//构建对象
		LayPage lp=new LayPage();
		lp.setCount(count);
		lp.setList(list);
		//lp:
		return new JsonResult(JsonResult.STATE_SUCCESS,"",lp);
	}
	}

6>将项目发布到tomcat服务器并启动,在浏览器中访问地址,其显示效果如图所示:
在这里插入图片描述

17.3 本章小结

本章主要讲解了SSM框架的整合知识。首先对SSM框架整合的环境搭建进行了讲解,然后通过一个查询笔记本信息的案例讲解了具体的整合过程。通过本章的学习,读者能够了解了SSM框架整合的思路,掌握了SSM的整合过程以及如何使用。部分代码没有给,想要的话,可以私聊我。创作不易,点个赞再走吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值