> 文档中心 > Spring+SpringMVC+Mybatis(开发必备技能)01、基础idea环境配置

Spring+SpringMVC+Mybatis(开发必备技能)01、基础idea环境配置

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.springframework      spring-context      4.3.18.RELEASE                  org.springframework      spring-core      4.3.18.RELEASE                  org.springframework      spring-beans      4.3.18.RELEASE                  org.springframework      spring-web      4.3.18.RELEASE                  org.springframework      spring-webmvc      4.3.18.RELEASE                      org.mybatis      mybatis      3.4.6                  mysql      mysql-connector-java      5.1.38                      org.springframework      spring-jdbc      4.3.18.RELEASE                  org.springframework      spring-tx      4.3.18.RELEASE                  org.mybatis      mybatis-spring      1.3.2                      javax.servlet      jstl      1.2                  javax.servlet      javax.servlet-api      3.1.0      provided                  commons-dbcp      commons-dbcp      1.4                      com.alibaba      fastjson      1.2.47                  com.fasterxml.jackson.core      jackson-databind      2.12.2                  com.fasterxml.jackson.core      jackson-core      2.12.2                  com.fasterxml.jackson.core      jackson-annotations      2.12.2                  com.alibaba      druid      1.1.10                  com.alibaba      druid-spring-boot-starter      1.1.10                  com.github.pagehelper      pagehelper      5.2.0                  com.github.jsqlparser      jsqlparser      4.0    

粘贴位置: 

3、包解释:

Spring需要的包:

        org.springframework      spring-context      4.3.18.RELEASE                  org.springframework      spring-core      4.3.18.RELEASE                  org.springframework      spring-beans      4.3.18.RELEASE                  org.springframework      spring-web      4.3.18.RELEASE                  org.springframework      spring-webmvc      4.3.18.RELEASE    

Mybatis需要的包: 

  org.mybatis  mybatis  3.4.6  mysql  mysql-connector-java  5.1.38  org.springframework  spring-jdbc  4.3.18.RELEASE  org.springframework  spring-tx  4.3.18.RELEASE  org.mybatis  mybatis-spring  1.3.2

jsp与servlet需要的包:

  javax.servlet  jstl  1.2  javax.servlet  javax.servlet-api  3.1.0  provided

数据库连接池DBCP:

  commons-dbcp  commons-dbcp  1.4

Json:

  com.alibaba  fastjson  1.2.47  com.fasterxml.jackson.core  jackson-databind  2.12.2  com.fasterxml.jackson.core  jackson-core  2.12.2  com.fasterxml.jackson.core  jackson-annotations  2.12.2

JDBC组件:

  com.alibaba  druid  1.1.10  com.alibaba  druid-spring-boot-starter  1.1.10

分页:

  com.github.pagehelper</groupI  pagehelper  5.2.0

复杂sql处理:

  com.github.jsqlparser  jsqlparser  4.0

4、创建资源文件夹:

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

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

全选并回车创建

 项目层级:

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

driver=com.mysql.jdbc.Driverurl=jdbc:mysql://rm-bp1zq3879r28p726lco.mysql.rds.aliyuncs.com:3306/test?characterEncoding=utf8username=qwe8403000password=Qwe8403000#下面在有需要配置就行,没有需要不用记那么多,用的话过来复制#初始化链接数量initialSize=0#最大连接数,一般20够测试了maxActive=20#最多多少空闲在maxIdle=20#最少多少空闲在minIdle=1#最大等待时间maxWait=60000

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

         select * from users             select * 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_515        index.jsp          org.springframework.web.context.ContextLoaderListener          contextConfigLocation    classpath:applicationContext.xml          CharacterEncodingFilter    org.springframework.web.filter.CharacterEncodingFilter          encoding      utf-8              forceEncoding      true            CharacterEncodingFilter    /*          springmvc    org.springframework.web.servlet.DispatcherServlet          contextConfigLocation      classpath:spring-mvc.xml        1    true        springmvc    /  

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

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;    }    @Override    public 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 {    @Autowired    private UsersMapper usersMapper;    @Override    public List GetInfo() { return usersMapper.GetInfo();    }    @Override    public 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 {    @Autowired    private UsersService usersService;    @RequestMapping("/GetInfoApi")    @ResponseBody    public 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】

跨域测试(编码如下):

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

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

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

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