Java教程

课程设计--从零开始写一个springboot+MyBatis+jsp管理系统(三)

本文主要是介绍课程设计--从零开始写一个springboot+MyBatis+jsp管理系统(三),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前言

学校是真的迷 每次课设都发个树莓派 但是都让我们照着文档一步步走 所以为啥不直接搞好呢?还非要我们上手去搞 这一搞又是一天 我人麻了

今天首先是仔细的设计了一下数据库 ,但是设计数据库的时候又不得不考虑之后实现的项目有哪些功能 因为我必须要建立在数据库的基础上才能实现那些项目,本来是打算照着上学期的项目改一改 只是换个框架而已 但是又想了一下 要是这样我还不如直接交上学期的项目 因此 我决定实现我上学期用servlet没实现的那些功能 。首先就是照片上传 ,还有分页,还有就是按日期查询比赛。这些功能应该都不是很难。项目的核心功能就是分析比赛和推测比赛的胜率 这些应该都不是大问题 直接搞一些公式算出来就好了 其他的东西都是基本功 到时候想到哪里写到哪里把,让我设计我是真没啥经验。 前端页面就去网上找一些素材把 然后再直接copy上来

因为只有短短五天的编码时间 所以我项目也不可能实现的太大 但是springboot好就好在我后期要是再增加功能的话也不会太麻烦 。

数据库+Mapper

首先展示一下我player的类的属性 因为这个player是核心的类 要考虑实现的功能 但是又要考虑实现的时间和能否实现 综合而言就是以下几个属性
在这里插入图片描述
然后就是把这个player的Mapper接口写好了 基本的功能也能实现

package com.hunanpyy.lplmgmt.mapper;

import com.hunanpyy.lplmgmt.pojo.Player;
import com.hunanpyy.lplmgmt.pojo.User;

import java.util.List;

/**
 * @author Michelle
 */
public interface PlayerMapper {

//    新添加选手

    boolean addPlayer(Player player);

//    选手注销

    boolean deletePlayer(String id);

//查询的接口

    Player selectPlayerByName(String name);
    Player selectPlayerByID(String id);


    List<Player> selectAllPlayer();
    List<Player> selectPlayerByLocation(String location);
    List<Player> selectPlayerByTeam(String team);

}

<?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.hunanpyy.lplmgmt.mapper.PlayerMapper">

    <select id="selectPlayerByName" resultType="Player" parameterType="String">
        select * from lplplayer where id = #{id};
    </select>

    <select id="selectAllPlayer" resultType="Player" >
        select * from lplplayer ;
    </select>

    <select id="selectPlayerByLocation" resultType="Player" >
        select * from lplplayer where location=#{location};
    </select>

    <select id="selectPlayerByTeam" resultType="Player" >
        select * from lplplayer where location=#{team};
    </select>

    <select id="selectPlayerByID" resultType="Player" parameterType="String">
        select * from lplplayer where id = #{id};
    </select>

    <insert id="addPlayer" parameterType="Player" >
        insert into lplplayer (name,id,password)
        values (#{name},#{id},#{password});
    </insert>

    <delete id="deletePlayer" parameterType="string">
        delete * from lplplayer
        where id=#{id};
    </delete>

<!--    <update id="userUpdatePassword" parameterType="User">-->
<!--        update lpluser-->
<!--        set name = #{name}, password=#{password}-->
<!--        where id = #{id} ;-->
<!--    </update>-->


</mapper>

用着MyBatis来开发是真的块 感觉一天就能把这些接口全给写完。

图片上传

这算是我实现这个项目的一个小难点把 。初学者+莫得老师指导只能靠慢慢摸索。还好有csdn和哔站。下面就讲讲详细的步骤 这里我并没有直接来实现我的这个选手头像上传功能 我仅仅用了一个小的Demo来参透图片上传。
前端首先需要一个input标签 用来传输文件

<form action="/pictureUpload" method="post" enctype="multipart/form-data">
    <label>
        <input type="file" name="file" >

        <input type="submit">
    </label>

</form>
<img src="${filename}"/>
<img src="../temp-rainy/ff692f36-ad13-4362-8e8c-7b67048eac85.jpg">
</body>

这里就是一个简单的上传图片 但是要注意那个enctype 要使用二进制传文件。
然后就是controller层 这里的话

package com.hunanpyy.lplmgmt.controller;

import com.hunanpyy.lplmgmt.service.PlayerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

/**
 * @author Michelle
 */
@Controller
public class PlayerController {
    @Autowired
    PlayerService playerService;

    @PostMapping(value = "pictureUpload")
    String pictureUpload(@RequestParam("file") MultipartFile file  这个地方
    查了一下 个也就是二进制流读取到的文件将这个文件保存下来,
                         Model model){
        if (file.isEmpty()) {
            System.out.println("文件为空空");
        }
        String fileName = file.getOriginalFilename();
        // 直接通过这个二进制文件来获得文件最初始的文件名
        String suffixName = fileName.substring(fileName.lastIndexOf("."));
        // 后缀名
        String filePath = "F:\\thelplmgmt\\src\\main\\webapp\\temp-rainy\\";
        // 上传后的路径
        fileName = UUID.randomUUID() + suffixName;
        // 这个就是拼接出来的新文件名 但是现在还是没有给这个file 知识一串字符串
        File dest = new File(filePath + fileName);
        新建立一个文件
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdirs();
        }
        try {
            file.transferTo(dest);
            这个就是把这个二进制文件file 也就是那张图片 写到dest这个文件位置
        } catch (IOException e) {
            e.printStackTrace();
        }
        String filename = "../temp-rainy/"+fileName;
        System.out.println(filename);
        然后再拼接出这个文件的URL 传给前端 直接解析出来 这样我的数据库里面就只需要存这个文件
        的URL了 要是看头像的话我也能直接取出来 用这个方法还能保存
        model.addAttribute("filename", filename);
        System.out.println(fileName);
        return "index";

    }
}

这里要注意的是 提交表单一定是要用post请求 你想想get传参数是直接接在URL后面 这里当然不行 然后来阅读这个controller 里面的东西 我直接在文章里面写了 写我自己的理解。

明天加油

明天继续完成项目 争取明天多写点 把基础的功能都完成把

这篇关于课程设计--从零开始写一个springboot+MyBatis+jsp管理系统(三)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!