经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Java » 查看文章
springboot之mybatis注解形式
来源:cnblogs  作者:海之浪子  时间:2018/10/12 9:49:32  对本文有异议

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

pom.xml文件

  1. <parent>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-parent</artifactId>
  4. <version>2.0.5.RELEASE</version>
  5. </parent>
  6. <properties>
  7. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  8. <maven.compiler.source>1.8</maven.compiler.source>
  9. <maven.compiler.target>1.8</maven.compiler.target>
  10. </properties>
  11.  
  12. <dependencies>
  13. <dependency>
  14. <groupId>org.springframework.boot</groupId>
  15. <artifactId>spring-boot-starter-web</artifactId>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.springframework.boot</groupId>
  19. <artifactId>spring-boot-starter-test</artifactId>
  20. <scope>test</scope>
  21. </dependency>
  22.  
  23. <dependency>
  24. <groupId>org.springframework.boot</groupId>
  25. <artifactId>spring-boot-starter-web</artifactId>
  26. </dependency>
  27. <dependency>
  28. <groupId>mysql</groupId>
  29. <artifactId>mysql-connector-java</artifactId>
  30. <version>5.1.45</version>
  31. </dependency>
  32. <dependency>
  33. <groupId>org.springframework.boot</groupId>
  34. <artifactId>spring-boot-starter-jdbc</artifactId>
  35. </dependency>
  36. <dependency>
  37. <groupId>org.springframework.boot</groupId>
  38. <artifactId>spring-boot-configuration-processor</artifactId>
  39. <optional>true</optional>
  40. </dependency>
  41. <dependency>
  42. <groupId>org.mybatis.spring.boot</groupId>
  43. <artifactId>mybatis-spring-boot-starter</artifactId>
  44. <version>1.3.1</version>
  45. </dependency>
  46. </dependencies>
  47.  
  48. <build>
  49. <plugins>
  50. <plugin>
  51. <groupId>org.springframework.boot</groupId>
  52. <artifactId>spring-boot-maven-plugin</artifactId>
  53. </plugin>
  54. </plugins>
  55. </build>
  56. </project>

 

domain类

  1. package com.rookie.bigdata.domain;
  2. /**
  3. * @author
  4. * @date 2018/10/9
  5. */
  6. public class Student {
  7. private Long stuNo;
  8. private String name;
  9. private Integer age;
  10. public Student() {
  11. }
  12. public Student(String name, Integer age) {
  13. this.name = name;
  14. this.age = age;
  15. }
  16. public Student(Long stuNo, String name, Integer age) {
  17. this.stuNo = stuNo;
  18. this.name = name;
  19. this.age = age;
  20. }
  21. public Long getStuNo() {
  22. return stuNo;
  23. }
  24. public void setStuNo(Long stuNo) {
  25. this.stuNo = stuNo;
  26. }
  27. public String getName() {
  28. return name;
  29. }
  30. public void setName(String name) {
  31. this.name = name;
  32. }
  33. public Integer getAge() {
  34. return age;
  35. }
  36. public void setAge(Integer age) {
  37. this.age = age;
  38. }
  39. @Override
  40. public boolean equals(Object o) {
  41. if (this == o) return true;
  42. if (o == null || getClass() != o.getClass()) return false;
  43. Student student = (Student) o;
  44. if (stuNo != null ? !stuNo.equals(student.stuNo) : student.stuNo != null) return false;
  45. if (name != null ? !name.equals(student.name) : student.name != null) return false;
  46. return age != null ? age.equals(student.age) : student.age == null;
  47. }
  48. @Override
  49. public int hashCode() {
  50. int result = stuNo != null ? stuNo.hashCode() : 0;
  51. result = 31 * result + (name != null ? name.hashCode() : 0);
  52. result = 31 * result + (age != null ? age.hashCode() : 0);
  53. return result;
  54. }
  55. @Override
  56. public String toString() {
  57. return "Student{" +
  58. "stuNo=" + stuNo +
  59. ", name='" + name + '\'' +
  60. ", age=" + age +
  61. '}';
  62. }
  63. }
View Code
  1. StudentMapper
  1. package com.rookie.bigdata.mapper;
  2. import com.rookie.bigdata.domain.Student;
  3. import org.apache.ibatis.annotations.*;
  4. import java.util.List;
  5. import java.util.Map;
  6. /**
  7. * @author
  8. * @date 2018/10/9
  9. */
  10. @Mapper
  11. public interface StudentMapper {
  12. @Select("SELECT * FROM student WHERE name = #{name}")
  13. Student findByName(@Param("name") String name);
  14. @Results({
  15. @Result(property = "name", column = "name"),
  16. @Result(property = "age", column = "age")
  17. })
  18. @Select("SELECT name, age FROM student")
  19. List<Student> findAll();
  20. @Insert("INSERT INTO student(name, age) VALUES(#{name}, #{age})")
  21. int insert(@Param("name") String name, @Param("age") Integer age);
  22. @Update("UPDATE student SET age=#{age} WHERE name=#{name}")
  23. void update(Student student);
  24. @Delete("DELETE FROM student WHERE id =#{id}")
  25. void delete(Long id);
  26. @Insert("INSERT INTO student(name, age) VALUES(#{name}, #{age})")
  27. int insertByUser(Student student);
  28. @Insert("INSERT INTO student(name, age) VALUES(#{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER})")
  29. int insertByMap(Map<String, Object> map);
  30. }

 

测试类如下:

  1. package com.rookie.bigdata.mapper;
  2. import org.junit.Test;
  3. import org.junit.runner.RunWith;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.boot.test.context.SpringBootTest;
  6. import org.springframework.test.context.junit4.SpringRunner;
  7. import org.springframework.transaction.annotation.Transactional;
  8. import static org.junit.Assert.*;
  9. /**
  10. * @author
  11. * @date 2018/10/10
  12. */
  13. @RunWith(SpringRunner.class)
  14. @SpringBootTest
  15. public class StudentMapperTest {
  16. @Autowired
  17. private StudentMapper studentMapper;
  18. @Test
  19. public void findByName() throws Exception {
  20. System.out.println(studentMapper.findByName("zhangsan"));
  21. }
  22. @Test
  23. public void findAll() throws Exception {
  24. System.out.println(studentMapper.findByName("zhangsan"));
  25. }
  26. @Test
  27. public void insert() throws Exception {
  28. System.out.println( studentMapper.insert("zhangsan", 20));
  29. }
  30. @Test
  31. public void update() throws Exception {
  32. }
  33. @Test
  34. public void delete() throws Exception {
  35. }
  36. @Test
  37. public void insertByUser() throws Exception {
  38. }
  39. @Test
  40. public void insertByMap() throws Exception {
  41. }
  42. }

 

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

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号