Spring Boot
Posted 小企鹅推雪球!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot相关的知识,希望对你有一定的参考价值。
Spring Boot集成 MyBatis
-
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。
-
MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作
-
MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录
-
在 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>
-
在 Spring Boot 中,通过 MyBatis 注解和 Mapper 文件的方式集成 MyBatis
-
添加数据库配置信息,如:数据库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=你的密码
-
定义 user 表对应的实体 UserEntity
public class UserEntity private long id; private String name; private int age; private String sex; // 忽略 getter 和 setter
-
定义一个 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();
-
在 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);
-
客户端代码,使用 Spring 的 @SpringBootTest 注解和 JUnit 的 @RunWith 注解实现单元测试
-
@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应用在启动阶段执行代码的几种方式