SSM 프레임워크 기반의 CRUD

        이 코드는 추가, 삭제, 수정, 쿼리 및 기타 작업을 위해 SSM 프레임워크에서 작성되었으며 프로세스 아이디어는 다음과 같습니다.

        1. 컨트롤러 계층에 UserController 클래스 생성, 서비스 계층에 Userservice 인터페이스 생성, 구현 클래스 패키지 생성(impl) 패키지에 UserServiceImpl 구현 클래스 생성, 영구 계층에 UserDao 인터페이스 생성( Dao 레이어); 리소스에서 UserDao 인터페이스와 동일한 경로로 UserDao.xml 파일을 생성합니다. 생성된 패키지 구조는 다음과 같습니다.

         2. 코드 작성 시작 (먼저 컨트롤러 계층이 백엔드 페이지와 프런트엔드 페이지 사이의 점프를 실현하고 컨트롤러가 서비스 계층을 호출하고 서비스 계층이 Dao 계층을 호출하고 UserDao.xml 파일은 SQL 문 작성을 실현합니다.)

(1), UserController의 코드

package com.sm.controller;

import com.sm.domain.User;
import com.sm.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 org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;

@Controller
public class UserController {
    @Autowired
    private UserService userService;
    @RequestMapping("/findAll")
    public String findAll(Model model){
        List<User> users = userService.findAll();
        System.out.println(users);
        model.addAttribute("users",users);
        return "list";
    }

//   增加数据 先跳转页面再保存数据
    @RequestMapping("/addjsp")
    public String addjsp(){
        return "add";
    }
    @RequestMapping("/saveUser")
    public String saveUser(User user){
        userService.saveUser(user);
        return "redirect:/findAll";
    }

//    修改数据 先用id查询
    @RequestMapping("/findUser")
    public ModelAndView findUser(Integer id){
//       转发到页面
        ModelAndView mv=new ModelAndView();
        User user=userService.findUser(id);
        mv.addObject(user);
        mv.setViewName("update");
        return mv;
    }
//    修改保存
    @RequestMapping("/updateUser")
    public String updateUser(User user){
        userService.updateUser(user);
        return "redirect:/findAll";
    }
//    按照id删除数据
    @RequestMapping("/delUser")
    public String delUser(Integer id){
        System.out.println(id);
        userService.delUser(id);
        return "redirect:/findAll";
    }

//    分页查询
    @RequestMapping("/findAllByPage")
   public ModelAndView findAllByPage(@RequestParam(name = "page",required = true,defaultValue = "1") Integer page,
                                    @RequestParam(name = "size",required = true,defaultValue = "3") Integer size){
       ModelAndView mv=new ModelAndView();
       List<User> users=userService.findAllByPage(page,size);
      //把查询到的数据交给分页模型处理
        PageInfo  pageInfo =new PageInfo(users);
       mv.addObject("pageInfo",pageInfo);
       mv.setViewName("list");
       return  mv;
    }
}

(2) UserService 인터페이스 코드

package com.sm.service;

import com.sm.domain.User;
import java.util.List;

public interface UserService {
    List<User>findAll();
    void saveUser(User user);
    void delUser(Integer id);
    User findUser(Integer id);
    void updateUser(User user);
}

(3) UserServiceImpl 클래스 코드

package com.sm.service.impl;

import com.sm.dao.UserDao;
import com.sm.domain.User;
import com.sm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("userService")
public class UserServiceImpl implements UserService {
    @Autowired
    private UserDao userDao;
    @Override
    public List<User> findAll() {
        return userDao.findAll();
    }
    @Override
    public void saveUser(User user) {
        userDao.saveUser(user);
    }
    @Override
    public void delUser(Integer id) {
        userDao.delUser(id);
    }
    @Override
    public User findUser(Integer id) {
        return userDao.findUser(id);
    }
    @Override
    public void updateUser(User user) {
        userDao.updateUser(user);
    }

}

(4) 유저다오 코드

package com.sm.dao;

import com.sm.domain.User;
import org.springframework.stereotype.Component;
import java.util.List;

@Component
public interface UserDao {
    List<User> findAll();
    void saveUser(User user);
    void delUser(Integer id);
    void updateUser(User user);
    User findUser(Integer id);
}

물론 엔터티 클래스(사용자)를 만드는 것을 잊지 마십시오.

(5) UserDao.xml 파일

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.sm.dao.UserDao">

<!--数据库总属性和User中属性不同时可以用 -->
<!--    <resultMap id="userMap" type="user">-->
<!--        <id  column="u_id" property="id"></id>-->
<!--        <result column="u_name" property="username"></result>-->
<!--        <result column="u_gender" property="usergender"></result>-->
<!--        <result column="u_address" property="useraddress"></result>-->
<!--    </resultMap>-->


    <select id="findAll" resultType="User">
        select * from user
    </select>


    <insert id="saveUser" parameterType="User">
        insert into user (username,usergender,useraddress)values (#{username},#{usergender},#{useraddress})
    </insert>


    <select id="findUser" parameterType="int" resultType="user">
        select * from user where id=#{id}
    </select>
    <update id="updateUser" parameterType="User">
        update user set username=#{username},usergender=#{usergender},useraddress=#{useraddress} where id=#{id}
    </update>


    <delete id="delUser" parameterType="int">
        delete from user where id=#{id}
    </delete>
</mapper>

3. 프런트엔드 페이지

(1) index.jsp 페이지는 주로 메인 페이지에서 메인 코드로 점프하는데 사용됩니다.

<a href="findAll">查询用户</a>

(2) 핵심 페이지

<table  class="table table-hover">
    <h3><a href="/addjsp"><button type="button" class="btn btn-warning">添加用户</button></a></h3>
<%--    表格设计--%>
    <tr>
        <th>id</th>
        <th>name</th>
        <th>gender</th>
        <th>address</th>
    </tr>

<%--    获取值--%>
    <c:forEach items="${users}" var="user">
        <tr>
            <td>${user.id}</td>
            <td>${user.username}</td>
            <td>${user.usergender}</td>
            <td>${user.useraddress}</td>
            <td>
                <button type="button" class="btn btn-warning" onclick="updateUser('${user.id}')">编辑</button>
                <button type="button" class="btn btn-danger" onclick="delUser('${user.id}')" >删除</button>
            </td>
        </tr>
    </c:forEach>
    <tr>
        <td>
            <button type="button" class="btn btn-danger" >全删除</button>
        </td>
    </tr>
</table>
<script>
    <%--    删除的方法--%>
        function delUser(id){
            var flag=confirm("确定删除?");
            if(flag){
                location.href="delUser?id="+id;
            }
        }
        function  updateUser(id) {
            location.href="findUser?id="+id;
        }

</script>

최종 페이지 표시:

 

추천

출처blog.csdn.net/qq_51764257/article/details/130093640