网络知识 娱乐 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.Driver
url=jdbc:mysql://rm-bp1zq3879r28p726lco.mysql.rds.aliyuncs.com:3306/test?characterEncoding=utf8
username=qwe8403000
password=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 = '用户信息表rnrn这个表是用来记录用户的基础信息rnrn' 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;

@Service
public 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
@CrossOrigin
public 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】,点击一下【测试】按钮即可看到数据。

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