栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ssm实现简单增删改+分页+多条件查询

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ssm实现简单增删改+分页+多条件查询

1、数据库(分别是年级表、性别表、学生表、学科表)

附上数据库代码(如下)



;

;

;
;
;
;
CREATE DATABASE `schooldemo3` ;

USE `schooldemo3`;



DROp TABLE IF EXISTS `class`;

CREATE TABLE `class` (
  `id` INT(10) NOT NULL AUTO_INCREMENT,
  `sid` INT(10) NOT NULL,
  `classes` VARCHAr(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;



INSERT  INTO `class`(`id`,`sid`,`classes`) VALUES (1,1,'一班'),(2,2,'二班'),(3,3,'三班');



DROP TABLE IF EXISTS `sex`;

CREATE TABLE `sex` (
  `id` INT(10) NOT NULL AUTO_INCREMENT,
  `sid` INT(10) NOT NULL,
  `sex` VARCHAr(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;



INSERT  INTO `sex`(`id`,`sid`,`sex`) VALUES (1,1,'男'),(2,2,'女');



DROP TABLE IF EXISTS `student`;

CREATE TABLE `student` (
  `id` INT(10) NOT NULL AUTO_INCREMENT,
  `sname` VARCHAr(20) NOT NULL,
  `ssex` INT(10) NOT NULL,
  `sage` INT(10) NOT NULL,
  `sclass` INT(10) NOT NULL,
  `szym` VARCHAr(50) DEFAULT NULL,
  `ssubject` INT(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;



INSERT  INTO `student`(`id`,`sname`,`ssex`,`sage`,`sclass`,`szym`,`ssubject`) VALUES (1,'张三',1,16,1,'读书使我快乐',1),(2,'李四',2,15,1,'我爱读书',2),(3,'王五',1,15,2,'书中自有黄金屋',3),(4,'赵六',1,16,2,'书中自有颜如玉',2),(5,'夏七',2,15,3,'书籍是人类进步的阶梯',1),(6,'jack',1,16,3,'I like china',1),(7,'rouse',2,15,3,'study everyday',3);



DROP TABLE IF EXISTS `subject`;

CREATE TABLE `subject` (
  `id` INT(10) NOT NULL AUTO_INCREMENT,
  `sid` INT(10) NOT NULL,
  `subject` VARCHAr(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;



INSERT  INTO `subject`(`id`,`sid`,`subject`) VALUES (1,1,'语文'),(2,2,'数学'),(3,3,'英语');

;
;
;
;

 2、项目整体结构

3、导入pom.xml依赖




  4.0.0

  com.hbt
  SSMTest6
  1.0-SNAPSHOT
  war

  SSMTest6 Maven Webapp
  
  http://www.example.com

  
    8
    8
  

  
    
    
      org.springframework
      spring-webmvc
      5.2.5.RELEASE
    
    
    
      org.springframework
      spring-jdbc
      5.3.9
    
    
    
      org.aspectj
      aspectjweaver
      1.9.4
    
    
    
      org.mybatis
      mybatis-spring
      2.0.6
    
    
    
      junit
      junit
      4.7
      test
    

    
    
      mysql
      mysql-connector-java
      5.1.47
    
    
    
      org.mybatis
      mybatis
      3.5.2
    
    
    
      log4j
      log4j
      1.2.12
    
    
    
      org.projectlombok
      lombok
      1.18.10
    
    
    
      com.alibaba
      druid
      1.2.6
    

    
    
      javax.servlet
      servlet-api
      2.5
    
    
      javax.servlet.jsp
      jsp-api
      2.2
    
    
      javax.servlet
      jstl
      1.2
    

    
      com.alibaba
      fastjson
      1.2.59
    

    
      org.springframework
      spring-oxm
      5.2.5.RELEASE
    

    
      org.springframework
      spring-orm
      5.2.5.RELEASE
    
    
      org.springframework
      spring-context-support
      5.2.5.RELEASE
    

    
      commons-io
      commons-io
      2.6
    

    
      commons-fileupload
      commons-fileupload
      1.4
    
    
    
      org.codehaus.jackson
      jackson-core-asl
      1.9.13
    

    
      org.codehaus.jackson
      jackson-mapper-asl
      1.9.13
    
    
    
    
    
    
    
      com.fasterxml.jackson.core
      jackson-core
      2.9.5
    
    
      com.fasterxml.jackson.core
      jackson-databind
      2.9.5
    
    
      com.fasterxml.jackson.core
      jackson-annotations
      2.9.5
    
    
      com.fasterxml.jackson.module
      jackson-module-jaxb-annotations
      2.9.5
    
  


 4、编写ssm配置文件

在resources下新建个配置文件database.properties,内容如下:

driver=com.mysql.jdbc.Driver
#在和mysql传递数据的过程中,使用unicode编码格式,并且字符集设置为utf-8
url=jdbc:mysql://127.0.0.1:3306/schooldemo3?useUnicode=true&characterEncoding=utf-8
user=root
password=root

 在resources下新建个配置文件log4j.properties,内容如下:

# rootLogger是所有日志的根日志,修改该日志属性将对所有日志起作用
# 下面的属性配置中,所有日志的输出级别是info,输出源是con
log4j.rootLogger=debugger,con
# 定义输出源的输出位置是控制台
log4j.appender.con=org.apache.log4j.ConsoleAppender
# 定义输出日志的布局采用的类
log4j.appender.con.layout=org.apache.log4j.PatternLayout
# 定义日志输出布局
log4j.appender.con.layout.ConversionPattern=%d{MM-dd HH:mm:ss}[%p]%c%n -%m%n

 在resources下新建个配置文件spring-dao.xml,内容如下:




    

    
    
        
        
        
        
        
        
        
    

    
    
        
        
        
            
                classpath:mapper
public interface StudentMapper {
    //下拉框加载学生性别
    public List selsex();
    //下拉框加载学生班级
    public List selclass();
    //下拉框加载学生最喜欢学科
    public List selsubject();
    //分页查询数据
    public List selAllinfo(@Param("start") Integer start,@Param("end") Integer end,
                                    @Param("sname") String sname,@Param("ssex") Integer ssex,
                                    @Param("sclass") Integer sclass,@Param("ssubject") Integer ssubject);
    //查询总条数
    public Integer count(@Param("sname") String sname,@Param("ssex") Integer ssex,
                         @Param("sclass") Integer sclass,@Param("ssubject") Integer ssubject);
    //新增学生信息
    public void addinfo(Student student);
    //根据id查询出该学生信息
    public Student selByidinfo(Integer id);
    //修改学生信息
    public void upinfo(Student student);
    //删除学生信息
    public void delinfo(Integer id);
}

Page实体类

package com.hbt.entity;

import java.util.List;


public class Page {
    private Integer totalPage;      //总页数
    private Integer totalNumber;    //总条数
    private Integer pageNumber;     //每页展示数据
    private Integer currentPage;    //当前页
    private Integer backPage;       //上一页
    private Integer nextPage;       //下一页
    private List studentList;

    public Integer getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(Integer totalPage) {
        this.totalPage = totalPage;
    }

    public Integer getTotalNumber() {
        return totalNumber;
    }

    public void setTotalNumber(Integer totalNumber) {
        this.totalNumber = totalNumber;
    }

    public Integer getPageNumber() {
        return pageNumber;
    }

    public void setPageNumber(Integer pageNumber) {
        this.pageNumber = pageNumber;
    }

    public Integer getCurrentPage() {
        return currentPage;
    }

    public void setCurrentPage(Integer currentPage) {
        this.currentPage = currentPage;
    }

    public Integer getBackPage() {
        return backPage;
    }

    public void setBackPage(Integer backPage) {
        this.backPage = backPage;
    }

    public Integer getNextPage() {
        return nextPage;
    }

    public void setNextPage(Integer nextPage) {
        this.nextPage = nextPage;
    }

    public List getStudentList() {
        return studentList;
    }

    public void setStudentList(List studentList) {
        this.studentList = studentList;
    }

    @Override
    public String toString() {
        return "Page{" +
                "totalPage=" + totalPage +
                ", totalNumber=" + totalNumber +
                ", pageNumber=" + pageNumber +
                ", currentPage=" + currentPage +
                ", backPage=" + backPage +
                ", nextPage=" + nextPage +
                ", studentList=" + studentList +
                '}';
    }
}

Sex实体类

package com.hbt.entity;


public class Sex {
    private Integer id;
    private Integer sid;
    private String sex;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getSid() {
        return sid;
    }

    public void setSid(Integer sid) {
        this.sid = sid;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Sex{" +
                "id=" + id +
                ", sid=" + sid +
                ", sex='" + sex + ''' +
                '}';
    }
}

Student实体类

package com.hbt.entity;


public class Student {
    private Integer id;     //学生表id
    private String sname;   //学生姓名
    private Integer ssex;   //学生性别id
    private String sex;     //学生性别
    private Integer sage;   //学生年龄
    private Integer sclass; //学生班级id
    private String classes; //学生班级
    private String szym;    //座右铭
    private Integer ssubject;//最喜欢学科id
    private String subject; //最喜欢学科

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public Integer getSsex() {
        return ssex;
    }

    public void setSsex(Integer ssex) {
        this.ssex = ssex;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Integer getSage() {
        return sage;
    }

    public void setSage(Integer sage) {
        this.sage = sage;
    }

    public Integer getSclass() {
        return sclass;
    }

    public void setSclass(Integer sclass) {
        this.sclass = sclass;
    }

    public String getClasses() {
        return classes;
    }

    public void setClasses(String classes) {
        this.classes = classes;
    }

    public String getSzym() {
        return szym;
    }

    public void setSzym(String szym) {
        this.szym = szym;
    }

    public Integer getSsubject() {
        return ssubject;
    }

    public void setSsubject(Integer ssubject) {
        this.ssubject = ssubject;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", sname='" + sname + ''' +
                ", ssex=" + ssex +
                ", sex='" + sex + ''' +
                ", sage=" + sage +
                ", s, classes='" + classes + ''' +
                ", szym='" + szym + ''' +
                ", ssubject=" + ssubject +
                ", subject='" + subject + ''' +
                '}';
    }
}

Subject实体类

package com.hbt.entity;


public class Subject {
    private Integer id;
    private Integer sid;
    private String subject;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getSid() {
        return sid;
    }

    public void setSid(Integer sid) {
        this.sid = sid;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    @Override
    public String toString() {
        return "Subject{" +
                "id=" + id +
                ", sid=" + sid +
                ", subject='" + subject + ''' +
                '}';
    }
}

6、dao层代码

package com.hbt.dao;

import com.hbt.entity.Sex;
import com.hbt.entity.Student;
import com.hbt.entity.Subject;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface StudentMapper {
    //下拉框加载学生性别
    public List selsex();
    //下拉框加载学生班级
    public List selclass();
    //下拉框加载学生最喜欢学科
    public List selsubject();
    //分页查询数据
    public List selAllinfo(@Param("start") Integer start,@Param("end") Integer end,
                                    @Param("sname") String sname,@Param("ssex") Integer ssex,
                                    @Param("sclass") Integer sclass,@Param("ssubject") Integer ssubject);
    //查询总条数
    public Integer count(@Param("sname") String sname,@Param("ssex") Integer ssex,
                         @Param("sclass") Integer sclass,@Param("ssubject") Integer ssubject);
    //新增学生信息
    public void addinfo(Student student);
    //根据id查询出该学生信息
    public Student selByidinfo(Integer id);
    //修改学生信息
    public void upinfo(Student student);
    //删除学生信息
    public void delinfo(Integer id);
}

7、service层代码

package com.hbt.service;

import com.hbt.entity.Page;
import com.hbt.entity.Sex;
import com.hbt.entity.Student;
import com.hbt.entity.Subject;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface StudentService {
    //下拉框加载学生性别
    public List selsex();
    //下拉框加载学生班级
    public List selclass();
    //下拉框加载学生最喜欢学科
    public List selsubject();
    //分页查询数据
    public Page selinfo(Integer start, Integer end, String sname, Integer ssex, Integer sclass, Integer ssubject);
    //新增学生信息
    public void addinfo(Student student);
    //根据id查询出该学生信息
    public Student selByidinfo(Integer id);
    //修改学生信息
    public void upinfo(Student student);
    //删除学生信息
    public void delinfo(Integer id);
}

8、serviceimpl层代码

package com.hbt.service.impl;

import com.hbt.dao.StudentMapper;
import com.hbt.entity.Page;
import com.hbt.entity.Sex;
import com.hbt.entity.Student;
import com.hbt.entity.Subject;
import com.hbt.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;


@Service
public class StudentServiceImpl implements StudentService {
    @Autowired
    private StudentMapper studentMapper;

    @Override
    public List selsex() {
        return studentMapper.selsex();
    }

    @Override
    public List selclass() {
        return studentMapper.selclass();
    }

    @Override
    public List selsubject() {
        return studentMapper.selsubject();
    }

    @Override
    public Page selinfo(Integer start, Integer end, String sname, Integer ssex, Integer sclass, Integer ssubject) {
        Page page = new Page();
        Integer totalcount = studentMapper.count(sname, ssex, sclass, ssubject);
        if (start == null )start =1;
        page.setTotalNumber(totalcount);
        page.setCurrentPage(start == 0 ? 1:start);
        page.setTotalPage(totalcount%3>0 ? totalcount/3+1 : totalcount/3);
        page.setBackPage(start-1<0 ? 1:start-1);
        page.setNextPage(start+1>page.getTotalPage() ? page.getTotalPage() : start+1);
        List studentList =studentMapper.selAllinfo(
                (page.getCurrentPage()-1)*3, 3, sname, ssex, sclass, ssubject);
        page.setStudentList(studentList);
        return page;
    }

    @Override
    public void addinfo(Student student) {
        studentMapper.addinfo(student);
    }

    @Override
    public Student selByidinfo(Integer id) {
        return studentMapper.selByidinfo(id);
    }

    @Override
    public void upinfo(Student student) {
        studentMapper.upinfo(student);
    }

    @Override
    public void delinfo(Integer id) {
        studentMapper.delinfo(id);
    }
}

9、controller层代码

package com.hbt.controller;

import com.alibaba.fastjson.JSONObject;
import com.hbt.entity.Page;
import com.hbt.entity.Sex;
import com.hbt.entity.Student;
import com.hbt.entity.Subject;
import com.hbt.service.StudentService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;


@Controller
public class StudentController {
    @Resource
    private StudentService studentService;

    //默认页面
    @RequestMapping("/initWeb")
    public String initWeb(Model model){
        //初始页面下拉框加载
        List sexList = studentService.selsex();
        List classList = studentService.selclass();
        List subjectList = studentService.selsubject();
        model.addAttribute("sexList",sexList);
        model.addAttribute("classList",classList);
        model.addAttribute("subjectList",subjectList);
        return "index";
    }

    //分页展示所有数据
    @RequestMapping("/studentList")
    @ResponseBody
    public void selAllInfo(HttpServletRequest request, HttpServletResponse response, Integer start, Integer end,
                           String sname, Integer ssex, Integer sclass, Integer ssubject) throws IOException {
        if (start == null) start=1;
        //System.out.println("sname:"+sname+";ssex:"+ssex+";sclass:"+sclass+";ssubject:"+ssubject);
        Page page = studentService.selinfo(start, end, sname, ssex, sclass, ssubject);
        JSONObject jobj = new JSONObject();
        jobj.put("page",page);
        //System.out.println(page);
        response.getWriter().append(jobj.toJSONString());
    }

    //新增学生信息
    @RequestMapping("/stuAdd")
    public String addinfo(Student student){
        studentService.addinfo(student);
        return "redirect:/initWeb";
    }

    //新增信息跳转
    @RequestMapping("/toAdd")
    public String toAdd(Model model){
        //新增页面下拉框加载
        List sexList = studentService.selsex();
        List classList = studentService.selclass();
        List subjectList = studentService.selsubject();
        model.addAttribute("sexList",sexList);
        model.addAttribute("classList",classList);
        model.addAttribute("subjectList",subjectList);
        return "addinfo";
    }

    //根据id查出该学生信息
    @RequestMapping("/selupinfo")
    public String selupinfo(Model model,Integer id){
        //修改页面下拉框加载
        List sexList = studentService.selsex();
        List classList = studentService.selclass();
        List subjectList = studentService.selsubject();
        model.addAttribute("sexList",sexList);
        model.addAttribute("classList",classList);
        model.addAttribute("subjectList",subjectList);
        Student student = studentService.selByidinfo(id);
        model.addAttribute("student",student);
        return "upinfo";
    }

    //修改学生信息
    @RequestMapping("/updateinfo")
    public String updateinfo(Student student){
        studentService.upinfo(student);
        return "redirect:/initWeb";
    }

    //删除学生信息
    @RequestMapping("/delindo")
    public String delinfo(Integer id){
        studentService.delinfo(id);
        return "redirect:/initWeb";
    }
}

10、前端页面代码

添加页面

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    新增学生



新增学生
学生姓名
年龄
座右铭
性别
班级
最爱学科

加载页面 

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    学生信息




添加学生

    学生名称  
    性别
    班级
    最爱学科
    


    

修改页面 

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    修改学生信息



修改学生信息
学生姓名
年龄
座右铭
性别
班级
最爱学科

11、mapper文件StudentMapper.xml代码(sql)





    
    
        SELECT * FROM class
    
    
    
        SELECT a.id,a.sname,a.sage,a.szym,b.sex,c.classes,d.subject FROM student a
            INNER JOIN sex b ON b.sid=a.ssex
            INNER JOIN class c ON c.sid=a.sclass
            INNER JOIN SUBJECT d ON d.sid=a.ssubject
        
            and a.sname like concat('%',#{sname},'%')
        
        
            and a.ssex = #{ssex}
        
        
            and a.sclass = #{sclass}
        
        
            and a.ssubject = #{ssubject}
        
        ORDER BY a.id limit #{start },#{end }
    
    
    
        SELECT * FROM student WHERe id = #{id}
    
    
    
        UPDATE student SET sname=#{sname},sage=#{sage},szym=#{szym},ssex=#{ssex},sclass=#{sclass},ssubject=#{ssubject}
        where id=#{id}
    
    
    
        delete from student where id=#{id}
    




功能实现

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/943306.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号