SpringBoot+MyBatis包含MyBatis Plus实现数据的增删改查(详细过程,适合新手小白)

首先引入相应的依赖(创建SpringBoot项目这里就不再多说了)

修改pom.xml

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
         <groupId>com.baomidou</groupId>
         <artifactId>mybatis-plus-boot-starter</artifactId>
         <version>3.1.0</version>
     </dependency>

配置

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/system_map?&allowMultiQueries=true&useUnicode=true&serverTimezone=UTC&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull
spring.datasource.username=root
spring.datasource.password=(密码)
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

在这里插入图片描述
这里的system_map为数据库对应的表名

结构目录

在这里插入图片描述

首先写实体层entity

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class Building {
    // 与表中字段名一一对应
    @TableId(value="building_id", type = IdType.AUTO)
    private Integer buildingId;
    @TableField(value="park_id")
    private Integer parkId;
    @TableField(value="building_name")
    private String buildingName;
    @TableField(value="geojson")
    private String geojson;
    @TableField(value="osm_id")
    private Integer osmId;
    @TableField(value="description")
    private String description;
}

对应的数据库表结构
在这里插入图片描述
其中@Data为lombok注解,可以省略get,set方法。

service层

结构
在这里插入图片描述
接口

   List<Building> findAllBuildings();
    Building findByBuildingId(int bId);
    void deleteByBuildingId(int bId);
    void addBuilding(Building building);
    void updateBuilding(Building building);

实现接口类

@Service
public class BuildingServiceImpl implements BuildingService {

    @Autowired
    private BuildingMapper buildingMapper;
      @Override
    public List<Building> findAllBuildings() {

        return buildingMapper.findAllBuildings();
    }

    //根据building的ID查询building
    @Override
    public Building findByBuildingId(int bId) {
        return buildingMapper.selectById(bId);
    }
     //根据building的ID删除building
    @Override
    public void deleteByBuildingId(int bId) {
        if("null".equals(String.valueOf(bId)) || bId <= 0){

        }
        buildingMapper.deleteById(bId);
    }
     //添加
    @Override
    public void addBuilding(Building building) {
        buildingMapper.insert(building);
    }

    //修改
    @Override
    public void updateBuilding(Building building) {
        buildingMapper.updateById(building);
    }

Mapper层

注意上面的service层中的实现接口类中调用的都是MyBatis Plus中的方法,
也就是需要extends BaseMapper<实体类名>,下面的注解Sql语句为MyBatis的使用方法,只需要在service层中的实现接口类中调用相应的方法名即可。

@Mapper
@Repository
public interface BuildingMapper extends BaseMapper<Building> {

//列出全部building
@Select("select * from building")
List<Building> findAllBuildings();
//查
@Select("select * from building where building_id = #{bId}")
Building findByBuilingId(int bId);
 //删
 @Delete("delete from building where building_id = #{bId}")
  void deleteByBuildingId(int bId);
// 增
@Insert("insert into building (building_id,park_id,building_name,geojson,osm_id,description) " +
        "values (#{buildingId},#{parkId},#{buildingName},#{geojson},#{osmId},#{description})")
void addBuilding(Building building);
//改
 @Update("update building set building_name=#{building_name}, geojson=#{geojson},department=#{department},osm_id=#{osmId},park_id=#{parkId} where building_id=#{buildingId}")
    void updateBuildingById(Building building);
}

Controller层


@Controller
@ResponseBody
@Slf4j
public class BuildingController {

    @Autowired
    private BuildingService  buildingService;

    //查 查询全部
    @CrossOrigin //解决跨域问题
    @RequestMapping(value = "/api/findAllBuildings",method = RequestMethod.GET, produces = "application/json; charset=UTF-8")
    public List<Building> findAllBuildings(){
        return buildingService.findAllBuildings();
    }
    //@PathVariable作用: 将URL中占位符参数{xxx}绑定到处理器类的方法形参中@PathVariable(“xxx“) 这里xxx代表bId
    //查 根据buildingId查询 测试url:http://localhost:8080/api/findByBuildingId/1
    @RequestMapping("/api/findByBuildingId/{bId}")
    public Building findByBuildingId(@PathVariable int bId){
    Building building = buildingService.findByBuildingId(bId);
    return building;
    }
     //删 根据BuildingId删除 测试url:http://localhost:8080/api/deleteByBuildingId/23
    @RequestMapping("/api/deleteByBuildingId")
    public boolean deleteByBuildingId(@RequestParam("bId") int bId){
        try{
            buildingService.deleteByBuildingId(bId);
        }catch (Exception e){
            e.printStackTrace();
            return false;
        }
        return true;
    }
 // 增
    // 11
    // 测试url: http://localhost:8080/api/addBuilding?key1=value1&key2=value2&.......
    // 例如 http://localhost:8080/api/addBuilding?buildingId=9&parkId=111&buildingName=111&geojson=111&osmId=111&description=1111
    @RequestMapping("/api/addBuilding")
    public boolean addBuilding(Building building){
        try{
            buildingService.addBuilding(building);
        }catch (Exception e){
            e.printStackTrace();
            return false;
        }
        return true;
    }

    // 改  根据BuildingId修改
    // 测试url:http://localhost:8080/api/updateBuildingById?buildingId=1&parkId=1&buildingName=111&geojson=111&osmId=111&description=测试
    @RequestMapping("/api/updateBuildingById")
    public  boolean updateBuildingById(Building building){
        try{
            buildingService.updateBuilding(building);
        }catch(Exception e){
            e.printStackTrace();
            return false;
        }
        return true;
    }

启动项目

相应的测试Url方法都在代码的注释中写到,由于是后期整理,所以可能存在错误的地方。所以有什么错误的地方可以指出来。
有什么不懂的地方可以留言
记录一下,同时也希望可以帮助到你,
至此,结束。

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太多.梦想.完成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值