SSM整合

作者: TiredHu | 来源:发表于2018-08-10 08:54 被阅读47次

    Mybatis介绍

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

    SSM整合

    准备材料:

    • web.xml(web入口)
    • pom.xml(引入依赖包)
    • applictionContext.xml(spring配置文件)
    • springmvc.xml(springmvc配置文件)
    • mybatis-config.xml(mybatis配置文件)
    • jdbc.properties(数据库连接信息配置)
    • log4j.properties(日志配置)
    • generatorConfig.xml(自动生成mybatis文件配置)
      相关文件链接:https://pan.baidu.com/s/1GcxDr6r0-sOUDXRQH3JiyQ 密码:3map
    image.png

    单个实体CRUD

    首先,建表:tb_user

    image.png

    利用自动代码生成工具生成代码:

    image.png

    service层代码

    package com.huhong.service;
    
    import com.huhong.model.User;
    
    import java.util.List;
    
    /**
     * Created by Tired on 2018/4/16.
     */
    public interface UserService {
        int deleteByPrimaryKey(Integer id);
    
        int insert(User record);
    
        int insertSelective(User record);
    
        User selectByPrimaryKey(Integer id);
    
        int updateByPrimaryKeySelective(User record);
    
        int updateByPrimaryKey(User record);
    
        /**
         * 查询所有对象
         * @return
         */
        List<User> findAll();
    }
    
    
    import com.huhong.dao.UserMapper;
    import com.huhong.model.User;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    /**
     * Created by Tired on 2018/4/16.
     */
    @Service
    public class UserServiceImpl implements UserService {
        @Autowired
        private UserMapper userDao;
        public int deleteByPrimaryKey(Integer id) {
            return userDao.deleteByPrimaryKey(id);
        }
    
        public int insert(User record) {
            return userDao.insert(record);
        }
    
        public int insertSelective(User record) {
            return userDao.insertSelective(record);
        }
    
        public User selectByPrimaryKey(Integer id) {
            return userDao.selectByPrimaryKey(id);
        }
    
        public int updateByPrimaryKeySelective(User record) {
            return userDao.updateByPrimaryKeySelective(record);
        }
    
        public int updateByPrimaryKey(User record) {
            return userDao.updateByPrimaryKey(record);
        }
    
        public List<User> findAll() {
            return userDao.findAll();
        }
    }
    

    控制层代码
    UserController.java

    package com.huhong.controller;
    
    import com.huhong.model.User;
    import com.huhong.service.UserService;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.servlet.ModelAndView;
    
    import javax.annotation.Resource;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * Created by Tired on 2018/4/16.
     */
    @Controller
    public class UserController {
        @Resource
        private UserService userService;
    
        @RequestMapping("/showUserInfo")
        public ModelAndView getUserInfo() {
            ModelAndView mv = findAll();
            return mv;
        }
    
        private ModelAndView findAll() {
            ModelAndView mv = new ModelAndView("user");
            List<User> users = new ArrayList<User>();
            users = userService.findAll();
            mv.addObject("users", users);
            return mv;
    
        }
    
        @RequestMapping("/toAddUser")
        public String toAddUser() {
            return "addUser";
        }
    
        @RequestMapping("/addUser")
        public ModelAndView addUser(User user) {
            userService.insertSelective(user);
            ModelAndView mv = findAll();
            return mv;
        }
        @RequestMapping("/deleteUser")
        public ModelAndView deleteUser(@RequestParam("userId")  Integer userId)
        {
            //调用接口删除相应对象
            userService.deleteByPrimaryKey(userId);
            //重新查出所有用户,并返回到页面
            ModelAndView mv = findAll();
            return mv;
        }
        @RequestMapping("/toUpdateUser")
        public  ModelAndView toUpdateUser(@RequestParam("userId")  Integer userId)
        {
            User user = userService.selectByPrimaryKey(userId);
            ModelAndView mv = new ModelAndView("updateUser");
            mv.addObject("updateUser",user);
            return mv;
        }
    
        @RequestMapping("/updateUser")
        public  ModelAndView  updateUser(User user)
        {
            userService.updateByPrimaryKeySelective(user);
            ModelAndView mv = findAll();
            return mv;
        }
    }
    

    user.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
    <%@ page isELIgnored="false" %>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <html>
    <body>
    <div style="text-align: center">
        <h2>User Info</h2>
        <h3>用户列表</h3>
    
        <a href="toAddUser">添加</a><br>
        <table border="1" cellpadding="3" cellspacing="0"
               style="width: 60%;margin: auto">
            <tr>
                <th>用户名</th>
                <th>密码</th>
                <th>年龄</th>
                <th>性别</th>
                <th>操作</th>
            </tr>
            <c:forEach items="${users}" var="user">
                <tr>
                    <td>${user.name}</td>
                    <td>${user.password}</td>
                    <td>${user.age}</td>
                    <td>${user.sex}</td>
                    <td><a href="deleteUser?userId=${user.id}">删除</a>
                        <a href="toUpdateUser?userId=${user.id}">修改</a></td>
                </tr>
            </c:forEach>
        </table>
    </div>
    </body>
    </html>
    

    addUser.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%
        String path = request.getContextPath();
        String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;
    %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
            <form action="addUser" method="post">
                <div class="">
                    <label class="">用户名:</label>
                    <div class="">
                        <input type="text" name="name" required   placeholder="请输入姓名"
                               autocomplete="off" >
                    </div>
                </div>
                <div class="">
                    <label class="">密码:</label>
                    <div class="">
                        <input type="password" name="password" required  placeholder="请输入密码"
                               autocomplete="off" >
                    </div>
                </div>
                <div class="">
                    <label class="">年龄:</label>
                    <div class="">
                        <input type="text" name="age" required  placeholder="请输入年龄"
                               autocomplete="off">
                    </div>
                </div>
                <div class="">
                    <label class="">性别:</label>
                    <div class="">
                        <input type="text" name="sex" required   placeholder="请输入性别"
                               autocomplete="off" >
                    </div>
                </div>
    
                    <div class="">
                    <input type="submit" value="提交">
                </div>
            </form>
    </body>
    </html>
    

    updateUser.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%
        String path = request.getContextPath();
        String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;
    %>
    <%@ page isELIgnored ="false" %>
    <html>
    <head>
        <title>UpdateUser</title>
    </head>
    <body>
            <form action="updateUser" method="post">
                <div style="display:none;">
                    <label class="">ID:</label>
                    <div class="">
                        <input type="text" name="id"
                               value="${updateUser.id}">
                    </div>
                </div>
                <div class="">
                    <label class="">用户名:</label>
                    <div class="">
                        <input type="text" name="name" required   placeholder="请输入姓名"
                               value="${updateUser.name}">
                    </div>
                </div>
                <div class="">
                    <label class="">密码:</label>
                    <div class="">
                        <input type="text" name="password" required  placeholder="请输入密码"
                               value="${updateUser.password}">
                    </div>
                </div>
                <div class="">
                    <label class="">年龄:</label>
                    <div class="">
                        <input type="text" name="age" required  placeholder="请输入年龄"
                               value="${updateUser.age}">
                    </div>
                </div>
                <div class="">
                    <label class="">性别:</label>
                    <div class="">
                        <input type="text" name="sex" required   placeholder="请输入性别"
                               value="${updateUser.sex}">
                    </div>
                </div>
    
                <div class="">
                    <div class="">
                    <input type="submit" value="修改">
                    </div>
                </div>
            </form>
    </body>
    </html>
    
    <!-- 解决配置文件不拷贝的问题 -->
        <resources>
          <resource>
            <directory>src/main/java</directory>
            <includes>
              <include>**/*.properties</include>
              <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
          </resource>
          <resource>
            <directory>src/main/resources</directory>
            <includes>
              <include>**/*.properties</include>
              <include>**/*.xml</include>
            </includes>
            <excludes>
              <exclude>generatorConfig.xml</exclude>
            </excludes>
            <filtering>false</filtering>
          </resource>
        </resources>
    

    相关文章

      网友评论

          本文标题:SSM整合

          本文链接:https://www.haomeiwen.com/subject/bosavftx.html