Spring Boot 菜鸟教程 3 MyBatis
2016-11-24 21:49
591 查看
GitHub
MyBatis
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。集成spring boot 的时候必须在mapper接口上面标注@Mapper注解
项目图片
pom.xml
-只需要在pom.xml引入需要的数据库配置,就会自动访问此数据库,如果需要配置其他数据库,可以在application.properties进行添加-默认使用org.apache.tomcat.jdbc.pool.DataSource创建连接池
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.jege.spring.boot</groupId> <artifactId>spring-boot-mybatis</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>spring-boot-mybatis</name> <url>http://maven.apache.org</url> <!-- 公共spring-boot配置,下面依赖jar文件不用在写版本号 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.1.RELEASE</version> <relativePath /> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <!-- 持久层 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <!-- h2内存数据库 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <finalName>spring-boot-mybatis</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build> </project>
模型对象User
package com.jege.spring.boot.mybatis.entity; /** * @author JE哥 * @email 1272434821@qq.com * @description:模型对象 */ public class User { private Long id; private String name; private Integer age; public User() { } public User(String name, Integer age) { this.name = name; this.age = age; } }
持久层UserMapper
package com.jege.spring.boot.mybatis.mapper; import java.util.List; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import com.jege.spring.boot.mybatis.entity.User; /** * @author JE哥 * @email 1272434821@qq.com * @description:持久层接口,由spring自动生成其实现 */ @Mapper public interface UserMapper { @Delete("drop table t_user if exists") void dropTable(); @Insert("create table t_user (id bigint generated by default as identity, age integer, name varchar(255), primary key (id))") void createTable(); @Insert("insert into t_user(name,age) values(#{name},#{age})") void insert(User user); @Select("select id,name,age from t_user") List<User> findAll(); @Select("select id,name,age from t_user where name like #{name}") List<User> findByNameLike(String name); @Delete("delete from t_user") void deleteAll(); }
不需要application.properties
测试类UserMapperTest
package com.jege.spring.boot.mybatis; import static org.assertj.core.api.Assertions.assertThat; import org.junit.After; import org.junit.Before; 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.SpringJUnit4ClassRunner; import com.jege.spring.boot.mybatis.entity.User; import com.jege.spring.boot.mybatis.mapper.UserMapper; /** * @author JE哥 * @email 1272434821@qq.com * @description: */ @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest() public class UserMapperTest { @Autowired UserMapper userMapper; // 每次执行Test之前先删除表,创建表 @Before public void before() throws Exception { userMapper.dropTable(); userMapper.createTable(); } // 打印出class com.sun.proxy.$Proxy66表示spring注入通过jdk动态代理获取接口的子类 @Test public void proxy() throws Exception { System.out.println(userMapper.getClass()); } @Test public void save() throws Exception { for (int i = 0; i < 10; i++) { User user = new User("jege" + i, 25 + i); userMapper.insert(user); } } @Test public void all() throws Exception { save(); assertThat(userMapper.findAll()).hasSize(10); } @Test public void findByName() throws Exception { save(); assertThat(userMapper.findByNameLike("jege%")).hasSize(10); } // 每次执行Test之后清空数据 @After public void destroy() throws Exception { userMapper.deleteAll(); } }
源码地址
https://github.com/je-ge/spring-boot如果觉得我的文章或者代码对您有帮助,可以请我喝杯咖啡。
您的支持将鼓励我继续创作!谢谢!
相关文章推荐
- Spring Boot 菜鸟教程 7 EasyUI datagrid
- Spring Boot 菜鸟教程 16 数据国际化
- Spring Boot 集成MyBatis 教程详解
- SpringBoot非官方教程 | 第六篇:springboot整合mybatis
- SpringBoot非官方教程 | 第六篇:springboot整合mybatis
- Spring Boot 菜鸟教程 8 EasyUI edatagrid 扩展
- SpringBoot 入门教程:集成mybatis,redis
- Spring Boot 菜鸟教程 23 站点地图sitemap.xml
- Spring Boot 菜鸟教程 22 Redis
- Spring Boot系列教程七:Spring boot集成MyBatis
- Spring Boot 菜鸟教程 12 EasyPoi导出Excel下载
- Spring Boot 菜鸟教程 异常 集锦
- Spring Boot系列教程十:Spring boot集成MyBatis
- SpringBoot非官方教程 | 第六篇:springboot整合mybatis
- Spring Boot 菜鸟教程 4 JDBC
- Spring Boot 菜鸟教程 14 动态修改定时任务cron参数
- Spring Boot 菜鸟教程 19 后台验证 Hibernate Validation
- SpringBoot 入门教程:集成mybatis,redis
- Spring Boot 菜鸟教程 application.properties 常用配置
- Spring boot集成Mybatis的方法教程