Spring Boot

Posted 小企鹅推雪球!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot相关的知识,希望对你有一定的参考价值。

Spring Boot集成 MyBatis

  1. MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。

  2. MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作

  3. MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录

  4. 在 Spring Boot 项目的 pom.xml 文件中添加如下依赖:

    <!-- MyBatis 依赖 -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.0.0</version>
    </dependency>
     
    <!-- mysql 数据库驱动依赖 -->
    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.27</version>
    </dependency>
     
    <!-- JSON 依赖 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.47</version>
    </dependency>
    
  5. 在 Spring Boot 中,通过 MyBatis 注解和 Mapper 文件的方式集成 MyBatis

  6. 添加数据库配置信息,如:数据库URL、driverclass、用户名、密码等

# datasource
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=你的账户
spring.datasource.password=你的密码
  1. 定义 user 表对应的实体 UserEntity

    public class UserEntity 
        private long id;
        private String name;
        private int age;
        private String sex;
        // 忽略 getter 和 setter
    
    
  2. 定义一个 Mapper 接口 UserMapper,该接口使用 MyBatis 提供的注解定义自己的 SQL 语句和结果映射关系

    public interface UserMapper 
        @Select("select id, name, age, sex from user")
        @Results(
                @Result(property = "id", column = "id", javaType = Long.class),
                @Result(property = "name", column = "name", javaType = String.class),
                @Result(property = "sex", column = "sex", javaType = String.class),
                @Result(property = "age", column = "age", javaType = Integer.class)
        )
        List<UserEntity> findAll();
    
    
  3. 在 Spring Boot 的主类上面使用 @MapperScan 注解定义 MyBatis mapper 的位置,便于 MyBatis 扫描这些 mapper

    @SpringBootApplication
    @MapperScan("com.huangx.mapper")
    public class SpringbootMybatisApplication 
        public static void main(String[] args) 
            SpringApplication.run(SpringbootMybatisApplication.class, args);
        
     
    
  4. 客户端代码,使用 Spring 的 @SpringBootTest 注解和 JUnit 的 @RunWith 注解实现单元测试

  5. @MapperScan 注解允许指定多个 mapper 基础扫描位置,例如:@MapperScan(“com.huangx.mapper”, “com.huangx.mapper2”)

    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class SpringbootMybatisApplicationTests 
        @Autowired
        private UserMapper userMapper;
     
        @Test
        public void findAll() 
            // 调用 MyBatis Mapper 接口
            List<UserEntity> userEntities = userMapper.findAll();
            System.out.println(JSONObject.toJSONString(userEntities));
        
    
    

以上是关于Spring Boot的主要内容,如果未能解决你的问题,请参考以下文章

一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式

一张图帮你记忆,Spring Boot 应用在启动阶段执行代码的几种方式

一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式

一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式

Spring Boot部署JAR文件瘦身优化经验分享

带有分页和排序的 Spring Boot JPA 规范 API