返回顶部
首页 > 资讯 > 数据库 >h2数据库作为内存型与springboot+mybatis的案例
  • 924
分享到

h2数据库作为内存型与springboot+mybatis的案例

h2数据库作为内存型与springboot+mybatis的案例 2015-05-24 03:05:49 924人浏览 绘本
摘要

一.前言 H2 是一个用 Java 开发的嵌入式数据库,它本身只是一个类库,即只有一个 jar 文件,可以直接嵌入到应用项目中。H2 主要有如下三个用途: 第一个用途,也是最常使用的用途就在于可以同应用程序打包在一起发布,

h2数据库作为内存型与springboot+mybatis的案例

  • 一.前言

    H2 是一个用 Java 开发的嵌入式数据库,它本身只是一个类库,即只有一个 jar 文件,可以直接嵌入到应用项目中。H2 主要有如下三个用途:
    第一个用途,也是最常使用的用途就在于可以同应用程序打包在一起发布,这样可以非常方便地存储少量结构化数据。
    第二个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态。
    第三个用途是作为缓存,即当做内存数据库,作为NoSQL的一个补充。当某些场景下数据模型必须为关系型,可以拿它当Memcached使,作为后端Mysql/oracle的一个缓冲层,缓存一些不经常变化但需要频繁访问的数据,比如字典表、权限表。   H2 可以作为: 1)嵌入式模式(使用 JDBC 的本地连接) 2)服务器模式(使用 JDBC 或 ODBC 在 tcp/IP 上的远程连接) 3)混合模式(本地和远程连接同时进行) 该案例为嵌入式模式  

    二.SpringBoot创建项目

    首先,给大家看一下我的项目结构

    springboot的版本为:2.1.9 具体可以看一下我的pom文件

    2.1 依赖pom文件

    以下就是我该演示项目的所有依赖,h2的版本交给springboot去进行确定

     

        <properties>
            <java.version>1.8java.version>
        properties>
    
        <dependencies>
            
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-webartifactId>
            dependency>
            
            <dependency>
                <groupId>org.mybatis.spring.bootgroupId>
                <artifactId>mybatis-spring-boot-starterartifactId>
                <version>2.1.1version>
            dependency>
            
            <dependency>
                <groupId>com.h2databasegroupId>
                <artifactId>h2artifactId>
                <scope>runtimescope>
            dependency>
            <dependency>
                <groupId>org.projectlombokgroupId>
                <artifactId>lombokartifactId>
                <optional>trueoptional>
            dependency>
            
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-testartifactId>
                <scope>testscope>
            dependency>
        dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.bootgroupId>
                    <artifactId>spring-boot-Maven-pluginartifactId>
                plugin>
            plugins>
            
            <resources>
                <resource>
                    <directory>src/main/javadirectory>
                    <includes>
                        <include>**
    @SpringBootApplication
    @MapperScan("com.springboot.*.mapper")
    public class MybatisApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(MybatisApplication.class, args);
        }
    
    }

    2.5 mapper.java和mapper.xml

    配置后,由mybatis进行实体类的映射

    public interface CatMapper {
    
        List selectAll();
    
    }

     

    xml version="1.0" encoding="UTF-8"?>
    DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "Http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.springboot.mybatis.mapper.CatMapper">
        <select id="selectAll" resultType="com.springboot.mybatis.entity.Cat">
            SELECT * from cat
        select>
    mapper>

     

    2.6 案例的entity

    与数据库的实体对应

    @Data
    public class Cat {
        private Long id;
        private String name;
        private Integer age;
        private String color;
        private Double score;
    }

     

    2.7 service 和 impl

    public interface CatService {
    
        
        String meow();
    
        List list();
    
    }
    @Service
    public class CatServiceImpl implements CatService {
    
        @Autowired
        private CatMapper catMapper;
    
        @Override
        public String meow() {
            return "瞄";
        }
    
        @Override
        public List list() {
            return catMapper.selectAll();
        }
    }

     

    2.8 建立测试类

    在test创建 springboot 的测试类  
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class MybatisApplicationTests {
    
        @Autowired
        private CatService catService;
    
        @Test
        public void contextLoads() {
            List list = catService.list();
            list.forEach(System.out::println);
        }
    
    }

     

    三 测试结果

    Creating a new sqlSession
    SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6caf7803] was not reGIStered for synchronization because synchronization is not active
    JDBC Connection [HikariProxyConnection@408543908 wrapping conn0: url=jdbc:h2:mem:test user=ROOT] will not be managed by Spring
    ==>  Preparing: SELECT * from cat 
    ==> Parameters: 
    <==    Columns: ID, NAME, AGE, COLOR, SCORE
    <==        Row: 1, Jone, 18, 黃色, 0.4
    <==        Row: 2, Jack, 20, 白色, 0.5
    <==        Row: 3, Tom, 28, 金色, 0.1
    <==        Row: 4, Sandy, 21, 紅色, 0.8
    <==        Row: 5, Billie, 24, 綠色, 0.7
    <==      Total: 5
    Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6caf7803]
    Cat(id=1, name=Jone, age=18, color=黃色, score=0.4)
    Cat(id=2, name=Jack, age=20, color=白色, score=0.5)
    Cat(id=3, name=Tom, age=28, color=金色, score=0.1)
    Cat(id=4, name=Sandy, age=21, color=紅色, score=0.8)
    Cat(id=5, name=Billie, age=24, color=綠色, score=0.7)

     

     

    四 打开h2的web浏览页面

    运行main方法

    浏览器输入 

    http://localhost:8081/h2-console

    账号 root 密码 test,进去

    查看

     

     

     

    结语

    本人长期从事java开发,如果有什么疑问,可以留言,我会及时解答

    附录

     

     

     

您可能感兴趣的文档:

--结束END--

本文标题: h2数据库作为内存型与springboot+mybatis的案例

本文链接: https://lsjlt.com/news/5188.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • h2数据库作为内存型与springboot+mybatis的案例
    一.前言 H2 是一个用 Java 开发的嵌入式数据库,它本身只是一个类库,即只有一个 jar 文件,可以直接嵌入到应用项目中。H2 主要有如下三个用途: 第一个用途,也是最常使用的用途就在于可以同应用程序打包在一起发布,...
    99+
    2015-05-24
    h2数据库作为内存型与springboot+mybatis的案例
  • SpringBoot集成H2内存数据库的方法
    目录前言准备技术栈目录结构pom.xml实体类 UserAddressRepositoryapplication.yml连接配置数据初始化配置h2 web consloe配置代码下载...
    99+
    2024-04-02
  • SpringBoot集成内存数据库H2的实践
    目录目标为什么操作步骤工程截图运行效果完整源代码目标 在SpringBoot中集成内存数据库H2. 为什么 像H2、hsqldb、derby、sqlite这样的内存数据库,小巧...
    99+
    2024-04-02
  • SpringBoot+Spring Data JPA整合H2数据库的示例代码
    目录前言Maven依赖Conroller实体类Repository数据库脚本文件配置文件启动项目访问H2数据库查看全部数据H2数据库文件运行方式前言 H2数据库是一个开源的关系型数据...
    99+
    2024-04-02
  • SpringBoot使用H2嵌入式数据库的实例代码
    1、添加maven依赖 <dependency> <groupId>com.h2database</groupId> <artifa...
    99+
    2024-04-02
  • Mybatis如何从数据库中获取数据存为List类型(存为model)
    目录从数据库中获取数据存为List类型(存为model)Mybatis存储List类型数据从数据库中获取数据存为List类型(存为model) 从数据库中获取的数据,存到一个mode...
    99+
    2024-04-02
  • phpmyadmin操作数据库的案例
    这篇文章主要介绍了phpmyadmin操作数据库的案例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。phpmyadmin怎么操作数据库?ph...
    99+
    2024-04-02
  • 内存型数据库Redis持久化的示例分析
    这篇文章主要为大家展示了“内存型数据库Redis持久化的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“内存型数据库Redis持久化的示例分析”这篇文章吧...
    99+
    2024-04-02
  • SpringBoot集成内存数据库Sqlite的实践
    目录目标 为什么 操作步骤工程截图运行 效果完整源代码 目标 在SpringBoot中集成内存数据库Sqlite. 为什么 像H2、hsqldb、derby、sqlite这样的...
    99+
    2024-04-02
  • SpringBoot集成内存数据库hsqldb的实践
    目录目标为什么操作步骤工程截图运行效果总结目标 在SpringBoot中集成内存数据库hsqldb. 为什么 像H2、hsqldb、derby、sqlite这样的内存数据库,小...
    99+
    2024-04-02
  • SpringBoot集成内存数据库Derby的实践
    目录目标为什么操作步骤工程截图运行效果目标 在SpringBoot中集成内存数据库Derby. 为什么 像H2、hsqldb、derby、sqlite这样的内存数据库,小巧可爱...
    99+
    2024-04-02
  • 将MongoDB作为Redis式的内存数据库的使用方法
    基本思想 将MongoDB用作内存数据库(in-memory database),也即,根本就不让MongoDB把数据保存到磁盘中的这种用法,引起了越来越多的人的兴趣。这种用法对于以下应用场合来讲,超实用...
    99+
    2022-06-04
    使用方法 内存 数据库
  • redis是什么类型的内存数据库
    redis 是一种基于内存的开源数据库,使用键值存储模型,具有极高的读写速度。其特性包括:内存存储:数据存储在内存中,而不是磁盘上。键值存储:数据以键值对形式存储,其中键是唯一标识符,值...
    99+
    2024-04-08
  • SpringBoot内置数据源的持久化与解决方案
    目录数据层解决方案与SQL有关的解决方案SpringBoot提供了3种内嵌的数据源对象供开发者选择内置持久化解决方案Springboot内置数据库数据层解决方案 SQLNoSQL 与...
    99+
    2024-04-02
  • Java中使用MyBatis-Plus操作数据库的实例
    目录MyBatis-Plus官网使用测试数据插入数据库 测试查询所有 测试删除数据 测试修改数据MyBatis-Plus MyBatis-Plus (o...
    99+
    2024-04-02
  • Redis内存数据库分片的示例分析
    这篇文章将为大家详细讲解有关Redis内存数据库分片的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 软件下载地址 ·  &...
    99+
    2024-04-02
  • MySQL数据库内存表的特性与用法
    本篇内容主要讲解“MySQL数据库内存表的特性与用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库内存表的特性与用法”吧!  &nbs...
    99+
    2024-04-02
  • spring使用RedisTemplate操作Redis数据库的案例
    小编给大家分享一下spring使用RedisTemplate操作Redis数据库的案例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一.什么是RedisRedis是一个非关系型数据库,具有很高的存取性能,一般用作缓存数据库...
    99+
    2023-06-14
  • MySQL更改数据库数据存储目录的案例分析
    小编给大家分享一下MySQL更改数据库数据存储目录的案例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方法如下:1:确认My...
    99+
    2024-04-02
  • mysql数据库中创建存储过程的案例
    小编给大家分享一下mysql数据库中创建存储过程的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql存储过程教程:首先...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作