详解springboot中mybatis注解形式

时间:2021-05-19

springboot整合mybatis对数据库进行访问,本实例采用注解的方式,如下:

pom.xml文件

<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类

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类

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 */@Mapperpublic 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); }

测试类如下:

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)@SpringBootTestpublic 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 { }}

大家可以自己编写测试类进行测试一下,后续会更新xml的配置方式和mybatis采用多数据源进行配置的方式

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章