@(关键字)[Spring|SpringMVC|Mybatis]
一、写在前面
在上篇的文章中总结了搭建SSM框架的详细步骤,本章将对此框架进行测试。通过搭建一个权限管理系统,来证明使用框架的优越性。
项目地址:sombie007/SpringRain
二、动手干起来
1.搭建数据库以下为建数据库及建表脚本:
/*
Navicat MySQL Data Transfer
Source Server : 127.0.0.1
Source Server Version : 50714
Source Host : localhost:3306
Source Database : springrain
Target Server Type : MYSQL
Target Server Version : 50714
File Encoding : 65001
Date: 2016-10-18 19:42:03
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for permission
-- ----------------------------
DROP TABLE IF EXISTS `permission`;
CREATE TABLE `permission` (
`id` bigint(20) NOT NULL COMMENT '主键',
`pid` bigint(20) NOT NULL DEFAULT '0' COMMENT '上级ID',
`title` varchar(30) COLLATE utf8_bin NOT NULL COMMENT '标题',
`type` smallint(6) NOT NULL DEFAULT '0' COMMENT '类型 0、菜单 1、功能',
`state` smallint(6) NOT NULL DEFAULT '0' COMMENT '状态 0、正常 1、禁用',
`sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序',
`url` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '地址',
`permCode` varchar(30) COLLATE utf8_bin DEFAULT NULL COMMENT '权限编码',
`icon` varchar(30) COLLATE utf8_bin DEFAULT NULL COMMENT '图标',
`description` varchar(80) COLLATE utf8_bin NOT NULL COMMENT '描述',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='权限表';
-- ----------------------------
-- Table structure for role
-- ----------------------------
DROP TABLE IF EXISTS `role`;
CREATE TABLE `role` (
`id` bigint(20) NOT NULL COMMENT '主键',
`name` varchar(30) NOT NULL COMMENT '角色',
`sort` smallint(6) NOT NULL DEFAULT '0' COMMENT '排序',
`description` varchar(60) NOT NULL COMMENT '描述',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色表';
-- ----------------------------
-- Table structure for role_permission
-- ----------------------------
DROP TABLE IF EXISTS `role_permission`;
CREATE TABLE `role_permission` (
`id` bigint(20) NOT NULL COMMENT '主键',
`rid` bigint(20) NOT NULL COMMENT '角色ID',
`pid` bigint(20) NOT NULL COMMENT '权限ID',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='角色权限表';
-- ----------------------------
-- Table structure for sys_log
-- ----------------------------
DROP TABLE IF EXISTS `sys_log`;
CREATE TABLE `sys_log` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`uid` bigint(20) unsigned DEFAULT NULL COMMENT '用户ID',
`content` varchar(600) NOT NULL DEFAULT '' COMMENT '日志内容',
`operation` varchar(250) DEFAULT NULL COMMENT '用户操作',
`crTime` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=479615319648763905 DEFAULT CHARSET=utf8 COMMENT='操作日志表';
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`loginName` varchar(30) NOT NULL COMMENT '登录名称',
`password` varchar(32) NOT NULL COMMENT '密码',
`email` varchar(60) DEFAULT NULL COMMENT '邮箱',
`type` smallint(6) NOT NULL DEFAULT '0' COMMENT '0、普通用户 1、管理员',
`status` smallint(6) NOT NULL DEFAULT '1' COMMENT '0、禁用 1、正常',
`crTime` datetime NOT NULL COMMENT '创建时间',
`lastTime` datetime NOT NULL COMMENT '最后登录时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
-- ----------------------------
-- Table structure for user_role
-- ----------------------------
DROP TABLE IF EXISTS `user_role`;
CREATE TABLE `user_role` (
`id` bigint(20) NOT NULL COMMENT '主键',
`uid` bigint(20) NOT NULL COMMENT '用户ID',
`rid` bigint(20) NOT NULL COMMENT '角色ID',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户角色表';
2.使用generatorConfig.xml生成model(entity)和dao层代码
此不可能会出现一些问题,请参考文末踩过的坑;
- 配置generatorConfig.xml文件中数据库相关的信息,如下:
- 配置model的生成路径
- 配置xml Mapper的生成路径
- 配置dao层接口生成路径
- 将数据表和Entity映射起来,可同时配置多个
- 在项目名生点击右键,选择
Run as->Maven build,在Golds中输入mybatis-generator:generate,然后点击Run。
3.在src/main/java/service包中建立Service接口,并建立其实现类;
/**
* @ClassName: UserService.java
* @Description: UserService接口
*
* @version: v1.1.0
* @author: She Xiangdong
* @date: Oct 19, 2016 11:19:13 PM
*
* Modification History:
* Date Author Version Description
*------------------------------------------------------------
* Oct 19, 2016 She Xiangdong v1.1.0 修改原因
*/
public interface UserService extends BaseService {
User findUser(User user);
}
4.在src/main/java/controller包中加入Controller层;
/**
*
* @ClassName: UserController.java
* @Description:User
*
* @version: v1.1.0
* @author: She Xiangdong
* @date: Oct 19, 2016 11:59:46 PM
*
* Modification History:
* Date Author Version Description
*------------------------------------------------------------
* Oct 19, 2016 She Xiangdong v1.1.0 修改原因
*/
@Controller
@RequestMapping("/userAction")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/login", method = RequestMethod.POST)
@ResponseBody
public String login(HttpServletRequest req, User user) {
System.out.println(user.toString());
User user1=new User();
user1=userService.findUser(user);
if (user1==null) {
return "fail";
}
return "success";
}
}
5.在项目名上点击右键,选择Run as->Run on Server,将项目部署在tomcat中,之后在浏览器中访问http://localhost:8080/SpringRain/,即可看到如下页面。
第二弹_测试页面.png
6.事先在数据库中插入一条数据,如下:
第二弹_数据库数据.png
7.在浏览器页面中输入数据,若和数据库中匹配则会跳转到"success.jsp"页面,若失败,则跳转"fail.jsp"页面;
三、总结
经过上一篇(手刃SSM--第一弹),和本篇的讲解,最终实现了SSM框架的搭建,并完成了框架的测试。在之后,可能会搭建一个权限管理系统,敬请关注。。。。。
四、踩过的坑
错误 1: 在执行
mybatis-generator:generate时,出现以下错误:The POM for org.apache.maven:maven-plugin-api:jar:3.0.4 is missing, no dependency information available [WARNING] The POM for org.mybatis.generator:mybatis-generator-core:jar:1.3.2 is missing, no dependency information available [WARNING] The POM for org.apache.maven:maven-project:jar:3.0-alpha-2 is missing, no dependency information available原因:maven不能找到相关的依赖包
解决:手动将jar包安装到本地。执行下面命令即可.-Dfile代表jar存在路径.mvn install:install-file -DgroupId=org.apache.maven -DartifactId=maven-project -Dversion=3.0-alpha-2 -Dpackaging=jar -Dfile=C:\Users\shexd\Downloads\maven-project-3.0-alpha-2.jar
五、反馈与建议
- 微博:[@SombieFF]
- 邮箱:shexd1001@gmail.com
- 微信:WeChatId:wxxdong2102
非常感谢您阅读这份帮助文档。点击分享按钮,分享给更多的人呗。

wechat.jpg
wechat.jpg