Home  >  Article  >  Java  >  Introduction to the annotation form of mybatis in springboot (code)

Introduction to the annotation form of mybatis in springboot (code)

不言
不言forward
2018-10-11 15:39:432210browse

This article brings you an introduction (code) about the mybatis annotation form in springboot. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

springboot integrates mybatis to access the database. This example uses annotations, as follows:

pom.xml file

    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.5.RELEASE
    
    
        UTF-8
        1.8
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        

        
            org.springframework.boot
            spring-boot-starter-web
        
        
            mysql
            mysql-connector-java
            5.1.45
        
        
            org.springframework.boot
            spring-boot-starter-jdbc
        
        
            org.springframework.boot
            spring-boot-configuration-processor
            true
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.1
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

domain Class

package com.rookie.bigdata.domain;

/**
 * @author
 * @date 2018/10/9
 */
public class Student {
    private Long stuNo;
    private String name;
    private Integer age;
    public Student() {
    }
    public Student(String name, Integer age) {
        this.name = name;
        this.age = age;
    }
    public Student(Long stuNo, String name, Integer age) {
        this.stuNo = stuNo;
        this.name = name;
        this.age = age;
    }
    public Long getStuNo() {
        return stuNo;
    }
    public void setStuNo(Long stuNo) {
        this.stuNo = stuNo;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        if (stuNo != null ? !stuNo.equals(student.stuNo) : student.stuNo != null) return false;
        if (name != null ? !name.equals(student.name) : student.name != null) return false;
        return age != null ? age.equals(student.age) : student.age == null;
    }
    @Override
    public int hashCode() {
        int result = stuNo != null ? stuNo.hashCode() : 0;
        result = 31 * result + (name != null ? name.hashCode() : 0);
        result = 31 * result + (age != null ? age.hashCode() : 0);
        return result;
    }
    @Override
    public String toString() {
        return "Student{" +
                "stuNo=" + stuNo +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

StudentMapper class

package com.rookie.bigdata.mapper;
import com.rookie.bigdata.domain.Student;
import org.apache.ibatis.annotations.*;
import java.util.List;
import java.util.Map;
/**
 * @author
 * @date 2018/10/9
 */
@Mapper
public interface StudentMapper {

    @Select("SELECT * FROM student WHERE name = #{name}")
    Student findByName(@Param("name") String name);

    @Results({
            @Result(property = "name", column = "name"),
            @Result(property = "age", column = "age")
    })
    @Select("SELECT name, age FROM student")
    List findAll();

    @Insert("INSERT INTO student(name, age) VALUES(#{name}, #{age})")
    int insert(@Param("name") String name, @Param("age") Integer age);

    @Update("UPDATE student SET age=#{age} WHERE name=#{name}")
    void update(Student student);

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

    @Insert("INSERT INTO student(name, age) VALUES(#{name}, #{age})")
    int insertByUser(Student student);

    @Insert("INSERT INTO student(name, age) VALUES(#{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER})")
    int insertByMap(Map map);

}

The test class is as follows:

package com.rookie.bigdata.mapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
import static org.junit.Assert.*;
/**
 * @author
 * @date 2018/10/10
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class StudentMapperTest {

    @Autowired
    private StudentMapper studentMapper;

    @Test
    public void findByName() throws Exception {
        System.out.println(studentMapper.findByName("zhangsan"));
    }

    @Test
    public void findAll() throws Exception {
        System.out.println(studentMapper.findByName("zhangsan"));
    }

    @Test
    public void insert() throws Exception {
        System.out.println(    studentMapper.insert("zhangsan", 20));
    }

    @Test
    public void update() throws Exception {
    }

    @Test
    public void delete() throws Exception {
    }

    @Test
    public void insertByUser() throws Exception {
    }

    @Test
    public void insertByMap() throws Exception {
    }
}

You can write your own test class to test it. The xml configuration method and the way mybatis uses multiple data sources for configuration will be updated later.

The above is the detailed content of Introduction to the annotation form of mybatis in springboot (code). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:cnblogs.com. If there is any infringement, please contact admin@php.cn delete