zoukankan      html  css  js  c++  java
  • SpringBoot集成H2database

    转载:https://blog.csdn.net/chenhao_c_h/article/details/80332260

    h2database为我们提供了十分轻量,十分快捷方便的内嵌式数据库

    H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
    可以同应用程序打包在一起发布
    它的另一个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态
    提供JDBC访问接口,提供基于浏览器的控制台,可以执行sql
    免费,开源,够快
    还方便了程序刚开始dao层单元测试测试,不需要搭建oracle,不需要加载mysql,快速测试写的dao

    h2database 官网地址:http://www.h2database.com/html/main.html

    点击下载,解压即可。

    解压缩后的目录结构:

      h2

      |---bin

      |    |---h2-1.1.116.jar   //H2数据库的jar包(驱动也在里面)

      |    |---h2.bat              //Windows控制台启动脚本

      |    |---h2.sh                  //Linux控制台启动脚本

      |    |---h2w.bat              //Windows控制台启动脚本(不带黑屏窗口)

      |---docs                       //H2数据库的帮助文档(内有H2数据库的使用手册)

      |---service //通过wrapper包装成服务。

      |---src //H2数据库的源代码

      |---build.bat //windows构建脚本

      |---build.sh //linux构建脚本

      此时就算“安装”完成了。

    切换到h2解压目录。

    ➜ ~ cd Downloads/h2
    ➜ h2 nohup ./bin/h2_server.sh
    appending output to nohup.out
    弹出h2管理页面,启动成功。

     

    浏览器访问:http://localhost:8082/

    二、后台代码
    创建SpringBoot工程,https://start.spring.io/

    添加maven依赖:

        <!--h2-->
        <dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.4.195</version>
        </dependency>
    配置application.yml

    spring:
    datasource:
    driver-class-name: org.h2.Driver
    url: jdbc:h2:~/test
    username: sa
    password:
    此处的url跟classname均可在页面管理中找到。

    此为嵌入式链接模式,只允许一个链接,如果想多个链接,比如测试代码链接和页面的h2控制台链接,请使用混合模式链接

    将 JDBC URL 后加上 AUTO_SERVER=TRUE

    同理 在yml文件中修改链接数据URL 后加上 AUTO_SERVER=TRUE

    spring:
    datasource:
    driver-class-name: org.h2.Driver
    url: jdbc:h2:~/test;AUTO_SERVER=TRUE
    username: sa
    password:
     

    添加 jpa 依赖

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    修改yml,新增show-sql、ddl-auto设为update

    jpa:
    show-sql: true
    hibernate:
    ddl-auto: update
    添加简单实体类

    @Entity
    @Data
    public class User {
    @Id //主键
    private Integer id;
    private Integer age;
    private String name;
    private String address;
    private String city;
    }
    添加UserRepository

    public interface UserRepository extends JpaRepository<User,Integer> {

    }
     

    三、开始测试
    添加测试类UserRepositoryTest

    数据新增测试
    @SpringBootTest
    @RunWith(SpringRunner.class)
    public class UserRepositoryTest {

    @Autowired
    private UserRepository userRepository;
    @Test
    public void addUser() {
    User user = new User();
    user.setId(1);
    user.setName("张三");
    user.setAddress("北京");
    user.setAge(19);
    user.setCity("北京");
    userRepository.save(user);
    }
    }
    console->

     

    查看h2控制台

     

    数据添加成功,测试修改
    @Test
    public void editUser(){
    User user = new User();
    user.setId(1);
    user.setName("李四");
    user.setAddress("上海");
    user.setAge(20);
    user.setCity("上海");
    userRepository.save(user);
    }
    查看h2控制台->

     

    数据修改成功,测试查询
    @Test
    public void queryUser(){
    User user = userRepository.findOne(1);
    System.out.println(user);
    Assert.assertEquals("李四",user.getName());
    Assert.assertEquals("上海",user.getAddress());

    }
    console->

     

    数据查询成功,测试删除
    @Test
    public void delUser(){
    userRepository.delete(1);
    }
    查看h2控制台

     

    数据删除测试成功。

    代码github:git@github.com:ChenHaoXFN/h2Demo.git

    参考文献: https://blog.csdn.net/fanpeizhong/article/details/73543260

    jpa增删改查:https://www.cnblogs.com/stm32stm32/p/10052810.html

    入门超级详细版:https://www.cnblogs.com/xdp-gacl/p/4171024.html

  • 相关阅读:
    AOP 相关包
    Dubbo学习(一) Dubbo原理浅析
    maven 三个仓库表
    关于servlet中doGet和doPost乱码再一次理解
    关于对String中intern方法的理解
    模拟文件上传(五):为文件添加描述信息
    模拟文件上传(四):对于前面三版中一些出错细节进行处理
    对于模拟文件上传(三)中,批量上传,传空值抛异常前台约束实现
    模拟文件上传(三):使用apache fileupload组件进行文件批量上传
    模拟文件上传(二):使用apache fileupload组件进行文件上传
  • 原文地址:https://www.cnblogs.com/ssjf/p/11282917.html
Copyright © 2011-2022 走看看