Home >Java >javaTutorial >Introduction to the annotation form of mybatis in springboot (code)
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
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
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<Student> 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<String, Object> 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!