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】,点击一下【测试】按钮即可看到数据。
希望能给大家带来帮助,欢迎一键三连哦。