Spring+SpringMVC+Mybatis(开发必备技能)

01、基础idea环境配置

环境:

数据库:MySQL

开发工具:IntelliJ IDEA 2020.1.3 x64

框架:SSM(Spring+SpringMVC+Mybatis)

目录

1、创建idea的maven项目

2、引入maven所需要的所有包

3、包解释:

Spring需要的包:

Mybatis需要的包: 

jsp与servlet需要的包:

数据库连接池DBCP:

Json:

JDBC组件:

分页:

复杂sql处理:

4、创建资源文件夹:

5、创建数据库链接在资源文件【jdbc.properties】

​编辑

6、在【resources】下创建【mapper】文件夹与【UsersMapper.xml】测试类文件

​编辑

7、Spring配置文件【applicationContext.xml】的创建

8、spring-mvc配置文件spring-mvc.xml配置

9、创建各层级【模型层model】、【数据层dao】、【控制器controller】、【业务逻辑接口层service】、【业务逻辑实现层serviceimpl】、【视图层resources/webapp/views】

10、webapp下【WEB-INF/web.xml】配置

11、创建测试数据库(也可以直接用我的,连接不变即可)

12、完成各层级编码(具体注解与逻辑下篇文章具体讲解)

【模型层Users】

【数据层UsersMapper】

【业务逻辑接口层UsersService】

【业务逻辑实现层UsersServiceImpl】

【控制层UsersController】

【视图层GetInfo.jsp】

13、配置Tomcat

14、启动测试

15、接口访问测试


1、创建idea的maven项目

写上项目名称,点击【Next】

选择maven路径

2、引入maven所需要的所有包

org.springframeworkspring-context4.3.18.RELEASEorg.springframeworkspring-core4.3.18.RELEASEorg.springframeworkspring-beans4.3.18.RELEASEorg.springframeworkspring-web4.3.18.RELEASEorg.springframeworkspring-webmvc4.3.18.RELEASEorg.mybatismybatis3.4.6mysqlmysql-connector-java5.1.38org.springframeworkspring-jdbc4.3.18.RELEASEorg.springframeworkspring-tx4.3.18.RELEASEorg.mybatismybatis-spring1.3.2javax.servletjstl1.2javax.servletjavax.servlet-api3.1.0providedcommons-dbcpcommons-dbcp1.4com.alibabafastjson1.2.47com.fasterxml.jackson.corejackson-databind2.12.2com.fasterxml.jackson.corejackson-core2.12.2com.fasterxml.jackson.corejackson-annotations2.12.2com.alibabadruid1.1.10com.alibabadruid-spring-boot-starter1.1.10com.github.pagehelperpagehelper5.2.0com.github.jsqlparserjsqlparser4.0

粘贴位置: 

3、包解释:

Spring需要的包:

org.springframeworkspring-context4.3.18.RELEASEorg.springframeworkspring-core4.3.18.RELEASEorg.springframeworkspring-beans4.3.18.RELEASEorg.springframeworkspring-web4.3.18.RELEASEorg.springframeworkspring-webmvc4.3.18.RELEASE

Mybatis需要的包: 

org.mybatismybatis3.4.6mysqlmysql-connector-java5.1.38org.springframeworkspring-jdbc4.3.18.RELEASEorg.springframeworkspring-tx4.3.18.RELEASEorg.mybatismybatis-spring1.3.2

jsp与servlet需要的包:

javax.servletjstl1.2javax.servletjavax.servlet-api3.1.0provided

数据库连接池DBCP:

commons-dbcpcommons-dbcp1.4

Json:

com.alibabafastjson1.2.47com.fasterxml.jackson.corejackson-databind2.12.2com.fasterxml.jackson.corejackson-core2.12.2com.fasterxml.jackson.corejackson-annotations2.12.2

JDBC组件:

com.alibabadruid1.1.10com.alibabadruid-spring-boot-starter1.1.10

分页:

com.github.pagehelper</groupIpagehelper5.2.0

复杂sql处理:

com.github.jsqlparserjsqlparser4.0

4、创建资源文件夹:

打开项目层级,看到包已经下载好了,并引入成功,但是【src】下只有webapp,所以需要鼠标右键创建需要的4个文件夹。

在【src】上点击鼠标右键,创建四个文件夹:

全选并回车创建

 项目层级:

5、创建数据库链接在资源文件【jdbc.properties】

driver=com.mysql.jdbc.Driverurl=jdbc:mysql://rm-bp1zq3879r28p726lco.mysql.rds.aliyuncs.com:3306/test" /> 

6、在【resources】下创建【mapper】文件夹与【UsersMapper.xml】测试类文件

select * from usersselect * from users where nickName like "%${nickName}%"

7、Spring配置文件【applicationContext.xml】的创建

配置文件: (有详细的注解)

8、spring-mvc配置文件spring-mvc.xml配置

配置编码: 

9、创建各层级【模型层model】、【数据层dao】、【控制器controller】、【业务逻辑接口层service】、【业务逻辑实现层serviceimpl】、【视图层resources/webapp/views】

当前所有的层级以及包名,还差一个webapp下【WEB-INF/web.xml】没配置。

10、webapp下【WEB-INF/web.xml】配置

替换配置

demo_515index.jsporg.springframework.web.context.ContextLoaderListenercontextConfigLocationclasspath:applicationContext.xmlCharacterEncodingFilterorg.springframework.web.filter.CharacterEncodingFilterencodingutf-8forceEncodingtrueCharacterEncodingFilter/*springmvcorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath:spring-mvc.xml1truespringmvc/

替换效果:(注释写在的相对好理解,不理解的留言) 

11、创建测试数据库(也可以直接用我的,连接不变即可)

/* Navicat Premium Data Transfer Source Server : myALi Source Server Type: MySQL Source Server Version : 50732 Source Host : rm-bp1zq3879r28p726lco.mysql.rds.aliyuncs.com:3306 Source Schema : test Target Server Type: MySQL Target Server Version : 50732 File Encoding : 65001 Date: 24/05/2022 21:59:06*/SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for users-- ----------------------------DROP TABLE IF EXISTS `users`;CREATE TABLE `users`(`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '序号',`userName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户账号',`pwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户密码',`nickName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户姓名',PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户信息表\r\n\r\n这个表是用来记录用户的基础信息\r\n\r\n' ROW_FORMAT = Dynamic;-- ------------------------------ Records of users-- ----------------------------INSERT INTO `users` VALUES (1, '文日红', '123456', '有一姑娘,清扬婉兮。');INSERT INTO `users` VALUES (2, '杨春红', '1234657', '灿如春华,皎若明月');INSERT INTO `users` VALUES (3, '顾容菲', '123', '二九年华,娉婷姌嫋。');INSERT INTO `users` VALUES (4, '韦文静', '1234', '明眸善睐,靥辅承权,瑰姿艳逸,仪静体闲。');INSERT INTO `users` VALUES (5, '卢雪', '12345', '落落大方,英姿飒爽。');SET FOREIGN_KEY_CHECKS = 1;

12、完成各层级编码(具体注解与逻辑下篇文章具体讲解)

需要5个文件,依次是【模型层Users】、【数据层UsersMapper】、【业务逻辑接口层UsersService】、【业务逻辑实现层UsersServiceImpl】、【控制层UsersController】、【视图层GetInfo.jsp】顺序如果错了回看到层层报错,将所有文件编写完才能不报红,所以建议按照顺序来。

【模型层Users】

package com.item.model;public class Users {public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public String getNickName() {return nickName;}public void setNickName(String nickName) {this.nickName = nickName;}@Overridepublic String toString() {return "Users{" +"id=" + id +", userName='" + userName + '\'' +", pwd='" + pwd + '\'' +", nickName='" + nickName + '\'' +'}';}private int id;private String userName;private String pwd;private String nickName;}

【数据层UsersMapper】

package com.item.dao;import com.item.model.Users;import org.apache.ibatis.annotations.Param;import java.util.List;public interface UsersMapper {List GetInfo();List SelectName(@Param("nickName") String nickName);}

【业务逻辑接口层UsersService】

package com.item.service;import com.item.model.Users;import java.util.List;public interface UsersService {List GetInfo();List SelectName(String nickName);}

【业务逻辑实现层UsersServiceImpl】

package com.item.serviceimpl;import com.item.dao.UsersMapper;import com.item.model.Users;import com.item.service.UsersService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;@Servicepublic class UsersServiceImpl implements UsersService {@Autowiredprivate UsersMapper usersMapper;@Overridepublic List GetInfo() {return usersMapper.GetInfo();}@Overridepublic List SelectName(String nickName) {return usersMapper.SelectName(nickName);}}

【控制层UsersController】

package com.item.controller;import com.item.model.Users;import com.item.service.UsersService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.CrossOrigin;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;import java.util.List;@Controller@CrossOriginpublic class UsersController {@Autowiredprivate UsersService usersService;@RequestMapping("/GetInfoApi")@ResponseBodypublic Object GetInfoApi(){List list=usersService.GetInfo();System.out.println(list);return list;}@RequestMapping("/GetInfo")public String GetInfo(HttpServletRequest request,Model model){List list=usersService.GetInfo();model.addAttribute("lists",list);return "GetInfo";}@RequestMapping("/GetName")public String GetName(HttpServletRequest request,Model model){String nickName = request.getParameter("nickName");List list=usersService.SelectName(nickName);model.addAttribute("lists",list);return "GetInfo";}}

【视图层GetInfo.jsp】

<%--Title<% List lists = (List) request.getAttribute("lists");%>
编号账号密码昵称

13、配置Tomcat

去掉麻烦的路径:

14、启动测试

看到successfully,并且启动中没有错误提示代表启动成功。

15、接口访问测试

基本路径:【http://localhost:8088/】

 api接口路径:【http://localhost:8088/GetInfoApi】

视图路径:【http://localhost:8088/GetInfo】

跨域测试(编码如下):

Documentfunction ontest() {$.ajax({url: "http://127.0.0.1:8088/GetInfoApi",type: "get",success: function(data) {console.log(data);}});}

自行创建一个【index.html】用作测试: 

打开后,F12,看控制台【Console】,点击一下【测试】按钮即可看到数据。

希望能给大家带来帮助,欢迎一键三连哦。