0
点赞
收藏
分享

微信扫一扫

SpringBoot整合mybatis的增删改查

五殳师兄 2022-03-12 阅读 53

一.创建项目

1.在idea里新建SpringBoot工程

2.改一些信息,符合自己需求就行,比如java版本,我只有8,所以就选它3.选择所需的依赖,选了之后会在右边显示,然后next创建

 二.配置项目环境


1.建好项目后,第一件事,打开settings,搜索Maven,改成本地的位置

 2.添加所需依赖

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

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>3.3.2</version>
        </dependency>

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

2.建立项目结构,值得注意的是,建完springboot项目之后那个自带的类(引导类)要放置在外面,否则运行后404,banner.txt是修改运行时的那个spring图像的,没啥用,忽略就行

 3.application.properties,第一行是端口号,最后一行是mapper的地址,中间是连接数据库

server.port=80
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=x5

mybatis.mapper-locations=classpath:mapper/**.xml

4.数据库--表的创建

5.mapper

customerMapper.xml

<?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">
         <!-- 1.namespace:接口的一个路径 ,2.id :接口下抽象方法名
     3.接口的返回值和resultType 对应上 ,4接口的参数 对应上-->
<mapper namespace="com.hxci.hanbo.dao.CustomerDao">
    <select id="query" resultType="com.hxci.hanbo.pojo.Customer">
       select * from customer
    </select>

    <insert id="add" >
      insert  into  customer (username,jobs,phone) values (#{username},#{jobs},#{phone})
    </insert>

    <update id="update">
    update customer set username=#{username},jobs=#{jobs},phone=#{phone} where id=#{id}
</update>
    <delete id="delete">
        delete from customer where id=#{id}
    </delete>

    <select id="queryById" resultType="com.hxci.hanbo.pojo.Customer">
       select * from customer where id=#{id}
    </select>

</mapper>

studentMapper.xml

<?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">
<!-- 1.namespace:接口的一个路径 ,2.id :接口下抽象方法名
3.接口的返回值和resultType 对应上 ,4接口的参数 对应上-->
<mapper namespace="com.hxci.hanbo.dao.StudentDao">
    <select id="query" resultType="com.hxci.hanbo.pojo.Student">
       select * from student
    </select>

    <insert id="add" >
      insert  into  student (studentname,age,address) values (#{studentname},#{age},#{address})
    </insert>
    <update id="update">
    update customer set studentname=#{studentname},jobs=#{age},address=#{address} where id=#{id}
</update>

    <delete id="delete">
        delete from student where id=#{id}
    </delete>

    <select id="queryById" resultType="com.hxci.hanbo.pojo.Student">
       select * from student where id=#{id}
    </select>
</mapper>

 

 

三.写代码

编写业务代码

实体:根据数据库表里的字段建

dao:

package com.hxci.hanbo.dao;

import com.hxci.hanbo.pojo.Student;

import java.util.List;

public interface StudentDao {

    public List<Student> query();

    public void add(Student student);

    public void update(Student student);
    public Student queryById(Integer id);
    public void delete(Integer id);
}
package com.hxci.hanbo.dao;

import com.hxci.hanbo.pojo.Customer;


import java.util.List;

public interface CustomerDao {

    public List<Customer> query();

    void  add (Customer customer);

    public void update(Customer customer);

    public Customer queryById(Integer id);

    public void delete(Integer id);
}

service:

package com.hxci.hanbo.service;

import com.hxci.hanbo.pojo.Customer;
import com.hxci.hanbo.pojo.Student;

import java.util.List;

public interface CustomerService {
    public List<Customer> query();
    public void add(Customer customer, Student student);
    void update(Customer customer);
    void delete(Integer id);
    public Customer queryById(Integer id);
}

 serviceimpl:

package com.hxci.hanbo.service.impl;

import com.hxci.hanbo.dao.CustomerDao;
import com.hxci.hanbo.dao.StudentDao;
import com.hxci.hanbo.pojo.Customer;
import com.hxci.hanbo.pojo.Student;
import com.hxci.hanbo.service.CustomerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
public class CustomerImpl implements CustomerService {

    @Autowired
    CustomerDao dao;
    @Autowired
    StudentDao studentDao ;

    public List<Customer> query(){
        return dao.query();
    }


    public void add(Customer customer, Student student) {
        dao.add(customer);
        studentDao.add(student);


    }

    @Override
    public void update(Customer customer) {
        dao.update(customer);
    }

    @Override
    public void delete(Integer id) {
        dao.delete(id);
    }

    @Override
    public Customer queryById(Integer id) {
        Customer ById = dao.queryById(id);
        return ById;
    }
}

controller:

package com.hxci.hanbo.controller;

import com.hxci.hanbo.pojo.Customer;
import com.hxci.hanbo.pojo.Student;
import com.hxci.hanbo.service.CustomerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class CustomController {

    @Autowired
    CustomerService service;


    @RequestMapping("query")
    public List<Customer> query() { // spring boot controller方法返回值看可以自动转json,ssm框架不行
        List<Customer> list = service.query();
        return list;
    }

    @RequestMapping("add")
    public String add(Customer customer, Student student) {
        service.add(customer, student);
        return null;
    }

    @RequestMapping("/update")
    public void update(Customer customer) {
        service.update(customer);
    }

    @RequestMapping("/delete")
    public void delete(Integer id) {
        service.delete(id);
    }

    ;

    @RequestMapping("/ById")
    public String queryById(Integer id) {
        Customer customer = service.queryById(id);
        System.out.println(customer);
        return null;
    }

    
}

引导类:

在里面加了个@MapperScan注解,扫描mapper的

package com.hxci.hanbo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Service;

@SpringBootApplication
@MapperScan("com.hxci.hanbo.dao")
public class HanboApplication {

    public static void main(String[] args) {
        SpringApplication.run(HanboApplication.class, args);
    }

}

四.运行测试

使用Postman工具Get旁边写地址

查询:

 添加:

因为是get请求,所以填这些东西的时候,上面的路径也会跟着变 

key对应字段,value对应值,点击send执行 ,一般来说没报错就是成功了,也可以去数据库里看一看

 

 以此类推:删除

 查询一条:

 更改的就只是后面的地址,根据controller里的@RequestMapping改

 

举报

相关推荐

0 条评论