MyBatis接口注解

前言

下面就来用MyBatis的注解来写sql并且实现一个简单的增删改查,这种方式使用简单,没有xml文件直接注解就完事了,但是MyBatis的最大特点是动态sql,大家看自己的情况使用。

项目结构图

在这里插入图片描述

1.数据库

在这里插入图片描述

2.Maven依赖

!--SpringBoot通用依赖模块-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--Mysql数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>
        <!-- Mybatis依赖 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
    </dependencies>

3.application.yml

server:
  port: 8080
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password: root

4.pojo

package com.example.demo.pojo;

public class PmsBrand {
    private int id;//bigint(20) NOT NULL
    private String name; //varchar(64) NULL
    private String first_letter; //varchar(8) NULL首字母
    private int sort; //int(11) NULL
    private int factory_status; //int(1) NULL是否为品牌制造商:0->不是;1->是
    private int show_status; //int(1) NULL
    private int product_count; //int(11) NULL产品数量
    private int product_comment_count; //int(11) NULL产品评论数量
    private String logo; //varchar(255) NULL品牌logo
    private String big_pic; //varchar(255) NULL专区大图
    private String brand_story; //text NULL品牌故事

    public int getIdbig() {
        return idbig;
    }

    public void setIdbig(int idbig) {
        this.idbig = idbig;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getFirst_letter() {
        return first_letter;
    }

    public void setFirst_letter(String first_letter) {
        this.first_letter = first_letter;
    }

    public int getSort() {
        return sort;
    }

    public void setSort(int sort) {
        this.sort = sort;
    }

    public int getFactory_status() {
        return factory_status;
    }

    public void setFactory_status(int factory_status) {
        this.factory_status = factory_status;
    }

    public int getShow_status() {
        return show_status;
    }

    public void setShow_status(int show_status) {
        this.show_status = show_status;
    }

    public int getProduct_count() {
        return product_count;
    }

    public void setProduct_count(int product_count) {
        this.product_count = product_count;
    }

    public int getProduct_comment_count() {
        return product_comment_count;
    }

    public void setProduct_comment_count(int product_comment_count) {
        this.product_comment_count = product_comment_count;
    }

    public String getLogo() {
        return logo;
    }

    public void setLogo(String logo) {
        this.logo = logo;
    }

    public String getBig_pic() {
        return big_pic;
    }

    public void setBig_pic(String big_pic) {
        this.big_pic = big_pic;
    }

    public String getBrand_story() {
        return brand_story;
    }

    public void setBrand_story(String brand_story) {
        this.brand_story = brand_story;
    }
}

5.dao

package com.example.demo.dao;

import com.example.demo.pojo.PmsBrand;
import org.apache.ibatis.annotations.*;

import java.util.List;
@Mapper
public interface PmsBrandMapper {

    @Select("select * from pms_brand")
    List<PmsBrand> findAll();

    @Insert("insert into pms_brand values(null,#{name},#{first_letter},#{sort},#{factory_status},#{show_status},#{product_count},#{product_comment_count},#{logo},#{big_pic},#{brand_story})")
    int saveBrand(PmsBrand pmsBrand);

    @Update("update pms_brand set name=#{name},factory_status=#{factory_status},product_count=#{product_count},logo=#{logo} where id=#{id}")
    int updBrand(PmsBrand pmsBrand);

    @Delete("delete from pms_brand where id=#{id}")
    int delBrand(int id);

}

6.service

package com.example.demo.service;

import com.example.demo.pojo.PmsBrand;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface PmsBrandService {
    List<PmsBrand> findAll();

    int saveBrand(PmsBrand pmsBrand);

    int updBrand(PmsBrand pmsBrand);

    int delBrand(int id);
}

impl

package com.example.demo.service.impl;

import com.example.demo.dao.PmsBrandMapper;
import com.example.demo.pojo.PmsBrand;
import com.example.demo.service.PmsBrandService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class PmsBrandServiceImpl implements PmsBrandService {

    @Resource
    private PmsBrandMapper pmsBrandMapper;

    @Override
    public List<PmsBrand> findAll() {
        return pmsBrandMapper.findAll();
    }

    @Override
    public int saveBrand(PmsBrand pmsBrand) {
        return pmsBrandMapper.saveBrand(pmsBrand);
    }

    @Override
    public int updBrand(PmsBrand pmsBrand) {
        return pmsBrandMapper.updBrand(pmsBrand);
    }

    @Override
    public int delBrand(int id) {
        return pmsBrandMapper.delBrand(id);
    }
}

7.controller

package com.example.demo.controller;

import com.example.demo.pojo.PmsBrand;
import com.example.demo.service.PmsBrandService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.List;
@Controller
public class PmsBrandController {

    @Autowired
    private PmsBrandService pmsBrandService;


    @RequestMapping(value = "/sel",method = RequestMethod.GET)
    @ResponseBody
    public List<PmsBrand> sel(){
        List<PmsBrand> infos=pmsBrandService.findAll();
        return infos;
    }


    @RequestMapping(value = "/save",method = RequestMethod.POST)
    @ResponseBody
    public Boolean save(@RequestBody PmsBrand pmsBrand){
        int  count=pmsBrandService.saveBrand(pmsBrand);
        return count>0?true:false;
    }

    @RequestMapping(value = "/upd",method = RequestMethod.PUT)
    @ResponseBody
    public Boolean upd(@RequestBody PmsBrand pmsBrand){
        int  count=pmsBrandService.updBrand(pmsBrand);
        return count>0?true:false;
    }

    
    @RequestMapping(value = "/del/{id}",method = RequestMethod.DELETE)
    @ResponseBody
    public Boolean del(@PathVariable("id") int id){
        int  count=pmsBrandService.delBrand(id);
        return count>0?true:false;
    }
}

现在就完成了,其实主体没有多少变化,只是xml的方式换成了注解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值