Spring Boot 菜鸟教程 3 MyBatis
来源:互联网 发布:杭州市行知小学校歌 编辑:程序博客网 时间:2024/05/17 05:02
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自动生成其实现 */@Mapperpublic 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
如果觉得我的文章或者代码对您有帮助,可以请我喝杯咖啡。
您的支持将鼓励我继续创作!谢谢!
0 0
- Spring Boot 菜鸟教程 3 MyBatis
- Spring Boot 菜鸟教程 1 HelloWorld
- Spring Boot 菜鸟教程 2 Data JPA
- Spring Boot 菜鸟教程 异常 集锦
- Spring Boot 菜鸟教程 4 JDBC
- Spring Boot 菜鸟教程 7 EasyUI datagrid
- Spring Boot 菜鸟教程 15 页面国际化
- Spring Boot 菜鸟教程 16 数据国际化
- Spring Boot 菜鸟教程 17 Cache-缓存
- Spring Boot 菜鸟教程 20 elasticsearch
- Spring Boot 菜鸟教程 21 分布式会话
- Spring Boot 菜鸟教程 22 Redis
- 3、Spring Boot+Mybatis
- Spring Boot系列教程十:Spring boot集成MyBatis
- Spring Boot系列教程七:Spring boot集成MyBatis
- Spring Boot (教程十一: 集成Mybatis)
- Spring Boot 菜鸟教程 6 全局异常处理
- Spring Boot 菜鸟教程 5 热部署 devtools模块
- retainAll()
- MappedByteBuffer
- 管理处理器的亲和性(affinity)
- UTC时间与北京时间相互转换
- zookeeper
- Spring Boot 菜鸟教程 3 MyBatis
- 文件读写:fwrite与fprintf的区别(即二进制方式和文本方式的区别)
- Codeforces285C Building Permutation
- 程序中的浪漫---爱心的代码
- C++中cout、cin和endl的用法
- ubuntu 中添加中文支持
- 【炉石传说】卡片模型的小分析
- 作业题8.23
- PlatinumKit-iOS Platinum的使用导入