ssm+element实现分页/条件查询+CRUD

项目整体构造


介绍: ssm框架+mybatis+element ui 实现

完成功能: CRUD + 分页查询 + 条件查询 + 图片上传阿里云OSS



 1/依赖加载 pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.wd</groupId>
    <artifactId>0614_ssm</artifactId>
    <version>1.0</version>
    <packaging>war</packaging>

    <dependencies>
        <!--spring-webmvc-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.15.RELEASE</version>
        </dependency>

        <!--mybatis依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>

        <!--mybatis和spring整合的依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.6</version>
        </dependency>

        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>

        <!--druid连接池依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.10</version>
        </dependency>

        <!--lombok依赖-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
        </dependency>
        <!--jackson java对象转换为json对象 @ResponseBody-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.13.2.2</version>
        </dependency>
        <!--servlet-api依赖-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.18</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.7</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/log4j/log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.21</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>3.10.2</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.3.0</version>
        </dependency>
    </dependencies>


</project>

测试类来使用 Mybatis generator

package cn.wd;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 * @author DouZi
 * @Blog areone.top
 */
public class Tesst01 {
    public static void main(String[] args) throws XMLParserException, IOException, SQLException, InterruptedException, InvalidConfigurationException {
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        File configFile = new File("generator.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
    }
}

 

项目完整源代码(gitee):element_ssm01_demo01整合 分页查询+模糊查询 

 

2.分页/条件查询

package cn.wd.controller;

import cn.wd.entity.User;
import cn.wd.service.UserService;
import cn.wd.until.CommonResult;
import cn.wd.until.OSSUntil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * @author DouZi
 * @Blog areone.top
 */
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    //查询一个
//    @RequestMapping("/getById")
//    public User getByid(Integer userid) {
//        User user = userService.findId(userid);
//        return user;
//    }

    //获取全部
    @RequestMapping("/getAll")
    public CommonResult getAll(Integer currentPage, Integer pageSize,@RequestBody Map map) {
        System.out.println(currentPage+"-----"+pageSize);
        PageInfo<User> all = userService.findAll(currentPage,pageSize,map);
        return new CommonResult(2000,"查询成功",all);
    }

    //删除
    @RequestMapping("/delete")
    public int getAll(Integer userid) {
        int a = userService.del(userid);
        return a;
    }

    //添加
    @RequestMapping("/insert")
    public int ins(User user) {
        int b = userService.ins(user);
        return b;
    }

    //    修改
    @RequestMapping("/updata")
    public int updata(User user) {
        int p = userService.updata(user);
        return p;
    }
    //头像上传
    @RequestMapping("/uploadAvatar")
    public CommonResult uploadAvatar(MultipartFile file) {
        try {
            String avatar = OSSUntil.upload(file);
            System.out.println("图片:"+avatar);
            return new CommonResult(2000, "上传成功", avatar);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return new CommonResult(5000, "失败", null);
    }


}

获取全部的时候传入一个Map 

前端页面方法:

  getPlay() {
                var that = this;
                axios.post("user/getAll?currentPage=" + this.currentPage + "&pageSize=" + this.pageSize, this.searchForm).then(function (result) {
                    if (result.data.code === 2000) {
                        console.log(result.data.data)
                        that.tableData = result.data.data.list;
                        that.total = result.data.data.total;
                    } else if (result.data.code === 5001) {
                        that.$message.error(result.data.msg);
                        location.href = "login.jsp"
                    } else {
                        that.$message.error(result.data.msg);
                    }
                })
            },

 前端如果条件查询的话设置的条件可能很多,后端一个一个接收比较麻烦,使用 Map 保存即可

Service方法

Service的实现类

 

实现类一定要开启PageHelper 

 

使用where  if  进行数据库的查询 

 

 

//条件查询

    <el-form :inline="true" :model="searchForm" class="demo-form-inline">
        <el-form-item label="姓名">
            <el-input v-model="searchForm.name" placeholder="姓名"></el-input>
        </el-form-item>
        <el-form-item label="邮箱">
            <el-input v-model="searchForm.email" placeholder="邮箱"></el-input>
        </el-form-item>
        <el-form-item>
            <el-button type="primary" @click="onSearch">查询</el-button>
        </el-form-item>
    </el-form>

 

 


版权声明:本文为wangdouzi376原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。