数据库结业项目作业(LOL数据库系统)

项目所用到的有Spring Boot , mysql,jdbc,myBatis,workbench,swagger-ui,druid
因为刚开始学习spring boot不久,对springmvc的机制还不太了解,借用swagger-ui的界面,本身只实现后端的数据处理。
关于自学myBatis,建议看狂神的教学视频
https://blog.kuangstudy.com/#
讲解内容通俗易懂
首先是数据库的E-R图
代码仅供参考,有些实现也不完全,有错误的地方,以后有时间会再继续修改

关系结构

1、player 属于 team ,n对1的关系,即将关系转化成player的team属性
2、coach 属于 team ,1对1的关系,关系转化为二者之一的属性皆可
3、worldgame与team是n对m的关系,讲关系转化成一个新的参赛列表主码为
4、club_change没有实体,是数据的变化记录,其中的ctime 和p_name 以及tname三者合起来是主码
在这里插入图片描述

其中有五个实体,Player(参赛选手),Team(队伍),Coach(教练),worldgame(世界赛),共有七个表,选手表,队伍表,教练表,转会表,世界赛表,参赛列表。

Player
team
coach
世界赛表

参赛列表

match

转会

以上是数据库的一些截图
下面贴上完成后web界面如何进行增删改查
对于每一个表,都实现了增删改查的操作,级联关系在创建表的时候写了,所以java代码中没有体现这个

进入localhost:8012/swagger-ui.html
下面的画面是我们的选择页面,在右上角的选择框中可以选择我们需要查询的数据表,
再往下面的每一条get都是一个增删改查的方法,点击他们

主页面

点击想要使用的get方法后显示方法的详细信息,点击try it out 开始输入
try it out

输入空格内的内容进行查询,点击execute输入内容

得到查询信息

下面贴上各个层面的代码
导入的依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.1</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.21</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>

</dependencies>

配置文件
配置jdbc的连接路径
我的mysql版本为5.5,更新的版本路径可能不同

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/lplmenber?serverTimezone=UTC&useSSL=false
spring.datasource.username=root
spring.datasource.password=hk123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=1000
spring.datasource.min-idle=5
spring.datasource.initial-size=5
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
server.port=8012
server.servlet.session.timeout=10
server.tomcat.uri-encoding=UTF-8

player 的实体

public class player {
    private String p_name;
    private int p_age;
    private String place;
    private int p_kill;
    private int p_death;
    private int p_assist;
    private String team;

    public String getP_name() {
        return p_name;
    }

    public int getP_age() {
        return p_age;
    }

    public String getPlace() {
        return place;
    }

    public int getP_kill() {
        return p_kill;
    }

    public int getP_death() {
        return p_death;
    }

    public int getP_assist() {
        return p_assist;
    }

    public String getTeam() {
        return team;
    }

    public void setP_name(String p_name) {
        this.p_name = p_name;
    }

    public void setP_age(int p_age) {
        this.p_age = p_age;
    }

    public void setPlace(String place) {
        this.place = place;
    }

    public void setP_kill(int p_kill) {
        this.p_kill = p_kill;
    }

    public void setP_death(int p_death) {
        this.p_death = p_death;
    }

    public void setP_assist(int p_assist) {
        this.p_assist = p_assist;
    }

    public void setTeam(String team) {
        this.team = team;
    }
}

控制player的增删改查的playermapper

package com.athk.lpl.mapper;

import com.athk.lpl.Entity.player;
import org.apache.ibatis.annotations.*;

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

@Mapper
public interface PlayerMapper {

    @Select("select * from player")
    public List<Map<String,Object>> getAllPlayer();

    @Select("select * from player where p_name = #{name}")
    public player getPlayerByName(String name);

    @Delete("delete from player where p_name = #{name}")
    public int deletePlayerByName(String name);

    @Insert("insert into player(p_name,p_age,place,p_kill,p_death,p_assist,team)" +
            "values (#{p_name},#{p_age},#{place},#{p_kill},#{p_death},#{p_assist},#{team})")
    public int insertPlayer(player player);

    @Update("update player set place = #{place} where p_name = #{p_name}")
    public int updatePlayer(String place,String p_name);
}

controller控制器,控制web页面提交的数据
这里之后,我们不用写MvcConfigure,因为我们前面已经导入了swagger-ui的依赖包,我们swagger替我们实现前端的文档页面

package com.athk.lpl.controller.Player;

import com.athk.lpl.Entity.player;
import com.athk.lpl.mapper.PlayerMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

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


@RestController
public class PlayerController {
    @Autowired
    PlayerMapper playerMapper;

    @GetMapping("/allplayer")
    public List<Map<String,Object>> getAllPlayer(){
        return playerMapper.getAllPlayer();
    }

    @GetMapping("/player/{p_name}")
    public player getPlayer(String p_name){
        return playerMapper.getPlayerByName(p_name);
    }

    @GetMapping("/player")
    public player insertPlayer(player player){
        playerMapper.insertPlayer(player);
        return player;
    }

    @GetMapping("/player/{p_name}/{place}")
    public String  updatePlayer(String place,String p_name){
        playerMapper.updatePlayer(place,p_name);
        return place;
    }

    @GetMapping("/player/delete/{p_name}")
    public player deletePlayer(String p_name){
        player player = playerMapper.getPlayerByName(p_name);
        if(player==null) return null;
        playerMapper.deletePlayerByName(p_name);
        return player;
    }
}
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    c Docket Playerdocket(){
        return new Docket(SWAGGER_2)
                .apiInfo(apiInfoplayer())
                .groupName("Player")
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.athk.lpl.controller.Player"))
                .build();
    }
    private ApiInfo apiInfoplayer(){

        Contact contact = new Contact("郝凯&王冲冲", "", "2398894692@qq.com");

        return new ApiInfo("参赛选手",
                "玲珑四壁争将本色漆",
                "1.0",
                "urn:tos",
                contact,
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList());

    }
 }

    
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值