Maven+SSM框架,实现单表简单的增删改查
发布日期:2021-05-07 16:37:35 浏览次数:26 分类:精选文章

本文共 14878 字,大约阅读时间需要 49 分钟。

创建一个基于Maven的Spring Boot项目并实现用户管理功能

随着Maven的学习,搭建一个小项目来实践是非常好的选择。本文将详细介绍如何通过Maven构建一个基于Spring Boot的用户管理系统,实现增删改查等基本功能。

项目介绍

功能需求

  • 实现用户信息的增删改查
  • 使用MySQL作为数据库
  • 前后端分离设计
  • 使用Spring Boot框架
  • 集成MyBatis进行数据库操作
  • 提供RESTful API接口

工具环境

  • IDE: IntelliJ IDEA
  • JDK: 1.8
  • 数据库: MySQL
  • Maven

项目结构

project
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── demo
│ │ │ ├── controller
│ │ │ ├── service
│ │ │ └── dao
│ │ └── resources
│ │ ├── application.properties
│ │ ├── jdbc.properties
│ │ └── mapper
│ ├── test
│ └── webapp
│ └── WEB-INF
│ └── view
└── pom.xml

项目配置

pom.xml

4.0.0
com.example
user-manage
1.0.0
jar
4.2.4.RELEASE
5.1.46
1.1.10
3.4.1
1.3.0
org.springframework
spring-context
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-webmvc
${spring.version}
mysql
mysql-connector-java
com.alibaba
druid
${druid.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
${mybatis-spring.version}
org.springframework
spring-jdbc
${spring.version}
junit
junit
4.12
test
javax.servlet
jstl
1.2
com.sun
taglibs
1.1.2
org.apache.maven.plugins
maven-compiler-plugin
2.6.1
org.apache.maven.plugins
maven-surefire-plugin
2.22.2

application.properties

# 数据库配置
db.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
db.username=root
db.password=root
# MyBatis配置
mybatis.typeAliasesPackage=com.demo.pojo
mybatis.dataSource_ref=dataSource
mybatis.mapperLocations=classpath:mapper/*.xml
# Spring配置
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true
# Druid配置
spring.datasource.url=${db.url}
spring.datasource.username=${db.username}
spring.datasource.password=${db.password}
spring.datasource.driverClassName=com.mysql.jdbc.Driver
druid.initializer.enabled=true
druid.filter.config=druid-complementary-filter
# 其他配置
jpa.hibernate.ddl-auto=update
# jpa.hibernate.format_sql=true
# ViewResolver配置
view.prefix=/WEB-INF/view/
view.viewClass=org.springframework.web.servlet.view.JstlView
view.defaultSuffix=.jsp

##数据库设计

CREATE TABLE `user` (
`id` int(11) PRIMARY KEY AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL,
`password` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL
);

用户管理接口

RESTful API接口

// UserController.java
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/list")
public ResponseEntity
> list() {
List
users = userService.list();
return ResponseEntity.ok(users);
}
@RequestMapping("/add")
public ResponseEntity
add(@RequestBody User user) {
userService.add(user);
return ResponseEntity.ok(user);
}
@RequestMapping("/delete")
public ResponseEntity
delete(@PathVariable Integer id) {
userService.del(id);
return ResponseEntity.ok(null);
}
@RequestMapping("/edit")
public ResponseEntity
edit(@PathVariable Integer id) {
User user = userService.get(id);
return ResponseEntity.ok(user);
}
@RequestMapping("/update")
public ResponseEntity
update(@RequestBody User user) {
userService.update(user);
return ResponseEntity.ok(null);
}
}

功能实现

1. 创建Maven项目

通过Maven Archetype创建项目,选择Web模板。项目结构如下:

project
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── demo
│ │ │ ├── controller
│ │ │ ├── service
│ │ │ └── dao
│ │ └── resources
│ │ ├── application.properties
│ │ ├── jdbc.properties
│ │ └── mapper
│ ├── test
│ └── webapp
│ └── WEB-INF
│ └── view
└── pom.xml

2. 添加依赖

pom.xml中添加必要的依赖:

org.springframework
spring-context
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-webmvc
${spring.version}
mysql
mysql-connector-java
${mysql.version}
com.alibaba
druid
${druid.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
${mybatis-spring.version}
org.springframework
spring-jdbc
${spring.version}
junit
junit
4.12
test
javax.servlet
jstl
1.2
com.sun
taglibs
1.1.2

3. 创建数据库配置文件

resources/jdbc.properties中添加:

# 数据库配置文件
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=root

4. 创建Spring配置文件

resources/applicationContext.xml中添加:

5. 创建Spring MVC配置文件

resources/springMVC.xml中添加:

6. 修改web.xml

webapp/WEB-INF/web.xml中添加:

contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
CharacterEncodingFilter
/*
mvc-dispatcher
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springMVC.xml
1
mvc-dispatcher
/

7. 数据库表创建

执行SQL脚本:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- 创建用户表
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL,
`password` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 9 CHARACTER SET = gbk COLLATE = gbk_chinese_ci ROW_FORMAT = Dynamic;
-- 插入数据
INSERT INTO `user` VALUES (1, 'cheng', '128946');
INSERT INTO `user` VALUES (3, 'eff', 'f');
INSERT INTO `user` VALUES (4, 'fwefw', 'wef');
INSERT INTO `user` VALUES (8, 'fwef', '13');
SET FOREIGN_KEY_CHECKS = 1;

8. 创建POJO类

com/demo/pojo/User.java中添加:

package com.demo.pojo;
import java.io.Serializable;
import org.springframework.stereotype.Component;
@Component("user")
public class User implements Serializable {
private Integer id;
private String name;
private String password;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
}

9. 编写DAO接口和XML映射文件

com/demo/dao/UserMapper.java中添加:

package com.demo.dao;
import com.demo.pojo.User;
import java.util.List;
public interface UserMapper {
List
list();
void del(int id);
void update(User user);
void add(User user);
User get(int id);
}

resources/mapper/UserMapper.xml中添加:

update user set name=#{name}, password=#{password} where id=#{id}
insert into user values (null, #{name}, #{password})
delete from user where id=#{id}

10. 编写Service接口和实现类

com/demo/service/UserService.java中添加:

package com.demo.service;
import com.demo.pojo.User;
import java.util.List;
public interface UserService {
List
list();
void del(int id);
void update(User user);
void add(User user);
User get(int id);
}

com/demo/service/impl/UserServiceImpl.java中添加:

package com.demo.service.impl;
import com.demo.dao.UserMapper;
import com.demo.pojo.User;
import com.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
public List
list() {
return userMapper.list();
}
public void add(User user) {
userMapper.add(user);
}
public void del(int id) {
userMapper.del(id);
}
public void update(User user) {
userMapper.update(user);
}
public User get(int id) {
return userMapper.get(id);
}
}

11. 编写Controller

com/demo/controller/UserController.java中添加:

package com.demo.controller;
import com.demo.pojo.User;
import com.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Controller
@RequestMapping("")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("list")
public String list(Model model) {
List
users = userService.list();
model.addAttribute("users", users);
return "view";
}
@RequestMapping("add")
public String add(User user, Model model) {
userService.add(user);
return "redirect:list";
}
@RequestMapping("del")
public String del(int id) {
userService.del(id);
return "redirect:list";
}
@RequestMapping("editUI")
public String editUI(int id, Model model) {
User user = userService.get(id);
model.addAttribute("user", user);
return "edit";
}
@RequestMapping("update")
public String update(User user) {
userService.update(user);
return "redirect:list";
}
}

12. 创建JSP页面

webapp/WEB-INF/view中创建edit.jspview.jsp

edit.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
Edit User
姓名:
密码:

view.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
用户列表
id 名字 密码 修改 删除
${user.id} ${user.name} ${user.password} edit delete
姓名:
密码:

13. 启动项目

在Tomcat中部署项目,访问http://localhost:8080/user/list查看效果。

项目总结

通过以上步骤,我们成功创建了一个基于Maven的Spring Boot项目,实现了用户管理功能。系统使用MyBatis进行数据库操作,提供了RESTful API接口,前后端分离设计,适合进行进一步的功能扩展和项目实战。

上一篇:Linux(Centos7)搭建LAMP(Apache+PHP+Mysql环境)
下一篇:Python的爬虫利器之urllib

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月09日 11时16分39秒