Springboot+Mybatis Plus+H2 database项目搭建

背景

因为业务需要,项目中需要使用内嵌式数据库,翻了翻之前使用h2的demo,发现竟没有一个完整的,于是重新搭建一下,顺便记录。

开发环境

  • jdk 8.0
  • maven 3.3.9
  • mybatis plus 3.2.0
  • h2database 1.4.200
  • 开发工具:IDEA

相关技术

mybatis plus

看名字就能大概知道,是mybatis 的增强版,主要特点是快速配置,简化开发,具体可以参考mybatis plus官网,内容非常详细。

优点
  • 支持多种数据库
  • 代码生成
  • 单表CRUD
  • 支持page分页
  • 主键生成策略
h2 database

是由java编写的内嵌式数据库,运行于7,8,11版本的jdk中,支持所有主要的操作系统(Windows, Mac OS X, Linux,…),具体可以参考h2databse官网

特点
  • 非常快,开源的JDBC API
  • 嵌入式和服务器模式;内存数据库
  • 基于浏览器控制台应用程序
  • 占用空间小:约2 MB jar文件的大小
连接模式
  • 嵌入式模式(使用JDBC的本地连接)
  • 服务器模式(通过TCP/IP使用JDBC或ODBC的远程连接)
  • 混合模式(本地连接和远程连接同时进行)

项目搭建

1.创建项目
  • 此处可以参考我的创建SpringBoot项目的几种方式这篇文章
2.添加依赖
  • web
  • mybatis plus
  • lombok
  • h2database
	  <dependency>
         <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starter-webartifactId>
      dependency>

      
      <dependency>
          <groupId>com.baomidougroupId>
          <artifactId>mybatis-plus-boot-starterartifactId>
          <version>3.3.2version>
      dependency>

      
      <dependency>
          <groupId>org.projectlombokgroupId>
          <artifactId>lombokartifactId>
          <optional>trueoptional>
      dependency>

      
      <dependency>
          <groupId>com.h2databasegroupId>
          <artifactId>h2artifactId>
          <version>1.4.200version>
          <scope>runtimescope>
      dependency>
3.数据源
  • 此处设置的用户名密码会在程序启动后初始化为数据库的用户名密码
server.port=8088

#数据源
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:test
spring.datasource.username=sa
spring.datasource.password=9527
spring.datasource.schema=classpath:db/schema-h2.sql
spring.datasource.data=classpath:db/data-h2.sql

#Whether to enable the console是否启用控制台
spring.h2.console.enabled=true
#Path at which the console is available.控制台可用路径
spring.h2.console.path=/h2-database
4.表和数据
  • schema-h2.sql 表结构
DROP TABLE IF EXISTS liquor;

CREATE TABLE liquor
(
  id BIGINT(20) NOT NULL COMMENT '主键ID',
  name VARCHAR(30) NULL DEFAULT NULL COMMENT '名称',
  price INT(11) NULL DEFAULT NULL COMMENT '价格',
  PRIMARY KEY (id)
);

  • data-h2.sql 数据
DELETE FROM liquor;

INSERT INTO liquor (id, name, price) VALUES
  (1, '老白干', 13),
  (2, '泸州老窖', 127),
  (3, '酒鬼', 74),
  (4, '茅台', 1687),
  (5, '五粮液', 222);
5.功能代码
  • entity
/**
 * 酒
 */
@Data
public class Liquor {
     
    @TableId(type = IdType.ASSIGN_ID)
    public Long id;
    public String name;
    public Integer price;
}
  • mapper
@Mapper
public interface LiquorMapper extends BaseMapper<Liquor> {
     
}
  • controller
@RestController
public class LiquorController {
     
    @Autowired
    private LiquorMapper liquorMapper;

    @GetMapping("/find")
    public List<Liquor> findLiquor(){
     
        return liquorMapper.selectList(null);
    }
}

运行测试

项目搭建到这里就一切就绪了,然后现在只需要运行项目

数据库
  • 访问http://localhost:8088/h2-database
    Springboot+Mybatis Plus+H2 database项目搭建_第1张图片
  • 通过账号密码登录数据库,则可以看到已经通过sql文件插入的数据
    Springboot+Mybatis Plus+H2 database项目搭建_第2张图片
接口测试
  • 访问http://localhost:8088/find,能够获取到数据
    Springboot+Mybatis Plus+H2 database项目搭建_第3张图片
项目结构

最后附上项目结构,一个简单的小demo
Springboot+Mybatis Plus+H2 database项目搭建_第4张图片


强行总结

这套技术放一起就是一个特点简单,尤其像h2这种嵌入式的内存数据库,基本不需要复杂联表,都是单表操作的,搭配上Mybatis Plus简直不要太easy

源码下载:H2database + MyBatis-Plus SSM.zip

最后,写的若有不足或需要改进之处,欢迎多多批评

你可能感兴趣的:(#,SSM,H2database,MyBatis-Plus,mybatis,java,sql)