Java后端JavaWeb

Spring boot+MyBatis实现增删改查操作以及踩过的

2018-10-25  本文已影响119人  vaemc

开发环境

  1. IntelliJ IDEA 2018.2.4 x64
  2. MySQL 5.7
  3. JAVA8
  4. Spring Boot v2.0.6.RELEASE

1.使用IDEA创建项目

  1. 打开IDEA选择Spring Initializr


    Spring Initializr
  2. 下一步,填写项目基本信息,这里我使用Gradle来构建项目。


    填写项目基本信息
  3. 下一步,选择依赖


    选择依赖
  4. 下一步,选择保存路径


    图片.png

2. 数据库配置

创建了一张测试用的学生表,表结构如下。


表结构

测试数据


测试数据

application.properties配置文件中写入连接参数,这里只填写基本的连接URL、用户名、密码、数据库驱动,第一行端口不加也行。

server.port=8383
spring.datasource.url=jdbc:mysql://localhost:3306/demo20181025?useSSL=false 
spring.datasource.username=root \\用户名
spring.datasource.password=admin \\密码
spring.datasource.driverClassName = com.mysql.jdbc.Driver

3. 持久层

Student实体类

public class Student {
    private Integer id;
    private String name;
    private String sex;
    private int age;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

SQL映射 定制化的SQL语句还是很灵活的

@Repository
@Mapper
public interface StudentMapper {
    //查找全部学生
    @Select("select * from Student")
    ArrayList<Student> findAll();
    //通过ID查找学生
    @Select("select * from Student where id=#{id}")
    Student findById(int id);
    //模糊查询
    @Select("select * from Student where name Like '%${_parameter}%' ")
    ArrayList<Student> findByLike(String keyword);
    //通过ID删除学生
    @Delete("delete from Student where id=#{id}")
    void DeleteById(int id);
    //添加学生
    @Insert("insert into Student(name,sex,age) values(#{name},#{sex},#{age})")
    @SelectKey(statement = "SELECT LAST_INSERT_ID()", keyProperty = "id", before = false, resultType = Integer.class)
    int insert(Student student);
    //通过ID修改学生姓名
    @Update("update Student set name=#{name} where id=#{id}")
    void update(Student student);
}


4. 控制器

HomeController添加@RestController注解,返回JSON方便测试。

@RestController
public class HomeController {
    private StudentMapper studentMapper;
    public HomeController(StudentMapper studentMapper)
    {
        this.studentMapper=studentMapper;
    }

    @GetMapping("/findAll")
    public ArrayList<Student> findAll()
    {
        return studentMapper.findAll();
    }
    @GetMapping("/findById")
    public Student findById(int id)
    {
        return studentMapper.findById(id);
    }

    @GetMapping("/findByLike")
    public ArrayList<Student> findByLike(String keyword)
    {
        return studentMapper.findByLike(keyword);
    }
    @GetMapping("/DeleteById")
    public void DeleteById(int id)
    {
        studentMapper.DeleteById(id);
    }
    @GetMapping("/Insert")
    public int  Insert(Student student)
    {
      studentMapper.insert(student);
      return student.getId();
    }
    @GetMapping("/Update")
    public void  Update(Student student)
    {
        studentMapper.update(student);
    }
}

5. 测试

6. 一些坑

7. 总结

喜欢本篇文章的欢迎关注,要源码的私信我~

上一篇 下一篇

猜你喜欢

热点阅读