我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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>class="lazy" data-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开发,如果有什么疑问,可以留言,我会及时解答

    附录

     

     

     

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

一.前言H2 是一个用 Java 开发的嵌入式数据库,它本身只是一个类库,即只有一个 jar 文件,可以直接嵌入到应用项目中。H2 主要有如下三个用途:第一个用途,也是最常使用的用途就在于可以同应用程序打包在一起发布,这样可以非常方便地存储少量结构化数据。第二
h2数据库作为内存型与springboot+mybatis的案例
2015-05-24

编程热搜

目录