springboot集成Mybatis的增删改查

注意:在使用mybatis时,要在启动类上加一个mapper扫描注解@MapperScan(“com.example.demo.mapper”)

pom.xml中加入插件

<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
   <artifactId>mybatis-spring-boot-starter</artifactId>
   <version>1.3.2</version>
</dependency>

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
</dependency>

application.properties加入配置

//数据库连接信息(useSSL=false这个在开发的时候一定要关闭,不然会报红提示哦)
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username =root
spring.datasource.password =daibin
//sql打印配置
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

实体类

package com.example.demo.domain;
public class Com {
    private int id;
    private String content;
    private String con_tent;
    private int com_id;
    private String con;
    public Com(int id, String content, int com_id) {
        this.id = id;
        this.content = content;
        this.com_id = com_id;
    }

    public Com() {
    }

    public String getCon_tent() {
        if(con_tent==null){
            return "空";
        }
        return con_tent;
    }

    public String getCon() {
        return con;
    }

    public void setCon(String con) {
        this.con = con;
    }

    public void setCon_tent(String con_tent) {
        this.con_tent = con_tent;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public int getCom_id() {
        return com_id;
    }

    public void setCom_id(int com_id) {
        this.com_id = com_id;
    }
}

mapper

package com.example.demo.mapper;
import com.example.demo.domain.Com;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;

import java.util.List;

//不加这个注解后面的注入mapper会有报红提示
@Repository
public interface ComMapper {
    //useGeneratedKeys是开启返回值的id映射到实体类的id上   keyProperty代表实体类的字段   keyColumn代表数据库字段
    @Insert("insert into com(content,com_id) values(#{content},#{com_id})")
    @Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id")
    int insert(Com com);

    @Select("select * from com")
    @Results({
        //起别名(column是数据库得字段,property是实体类得别名字段)
        @Result(column = "content",property = "con_tent")
        //下面可以有多个这样得@Result注解(多个别名字段)
    })
    List<Com> getAll();

    @Select("select * from com where id = #{id}")
    @Results({
            @Result(column = "content",property = "con")
    })
    Com findById(Long id);

    @Update("UPDATE com SET content=#{content} WHERE id =#{id}")
    void update(Com com);

    @Delete("DELETE FROM com WHERE id =#{id}")
    void delete(Long id);
}

service业务逻辑接口

package com.example.demo.service;

import com.example.demo.domain.Com;

import java.util.List;

public interface ComInte {
    public int add(Com com);
    public List<Com> getAll();
    public Com getById(Long id);
    public void upDate(int id);
    public void del(Long id);
}

service业务逻辑实现

package com.example.demo.service.impl;

import com.example.demo.domain.Com;
import com.example.demo.mapper.ComMapper;
import com.example.demo.service.ComInte;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class ComService implements ComInte {
    @Autowired
    private ComMapper comMapper;
    @Override
    //这个注解是开启事务,如果这里面抛出异常,那么所有对数据库的操作将会回滚
    @Transactional(propagation=Propagation.REQUIRED)
    public int add(Com com){
        comMapper.insert(com);
        return com.getId();
    }

    @Override
    public List<Com> getAll() {
        return comMapper.getAll();
    }

    @Override
    public Com getById(Long id) {
        return comMapper.findById(id);
    }

    @Override
    public void upDate(int id) {

        comMapper.update(new Com(id,"世界世界",90));

    }

    @Override
    public void del(Long id) {
        comMapper.delete(id);
    }
}

controlll控制器

package com.example.demo.controller;

import com.example.demo.domain.Com;
import com.example.demo.mapper.ComMapper;
import com.example.demo.service.impl.ComService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class He {

    //注入service
    @Autowired
    private ComService comService;

    //注入mapper(目的是简单得逻辑直接在控制器中执行)
    @Autowired
    private ComMapper comMapper;

    //增
    @RequestMapping("/add")
    public Object add(){
        return comService.add(new Com(10,"sgggsd撒",10));
    }

    //删
    @RequestMapping("/del")
    public void del(){
        comService.del(35l);
    }

    //改
    @RequestMapping("/upDate")
    public void upDate(){
        comService.upDate(52);
    }

    //查
    @RequestMapping("/getAll")
    public Object getAll(){
        return comService.getAll();
    }

    //根据ID查
    @RequestMapping("/getById")
    public Object getById(){
        return comService.getById(34l);
    }


    //简单得挖空数据库,所以直接在控制器中执行,没必要去service层去执行
    @RequestMapping("/getAllControll")
    public Object getAllControll(){
        return comMapper.getAll();
    }
}

猜你喜欢

转载自blog.csdn.net/qq_36984017/article/details/82935663