Apache Derby 是100% Java 编写的内存数据库,属于 Apache 的一个开源项目。并且是一个容易管理的关系数据库管理系统
Apache Derby 是一个与平台无关的数据库引擎,它以 Java 类库的形式对外提供服务。与其他难以部署的数据库不同, Derby 数据库体积小、安装非常简单

主要特点

1.程序小巧,基础引擎和内嵌的JDBC驱动总共大约2MB。

2.基于Java、JDBC和SQL标准。

3.提供内嵌的JDBC驱动,你可把Derby嵌入到基于Java的应用程序中。

4.支持客户端/服务器模式。

5.安装、布置和使用简单。

Derby 数据库的两种运行模式

1. 嵌入式模式。Derby 在应用程序的 JVM中运行。在这种模式下,只有应用程序可以访问数据库,例如另一个用户/应用程序将无法访问数据库。
2. 服务器模式。如果 Derby 在服务器模式下运行,负责处理数据库请求的 Derby 网络服务器,可以把它当成类似mysql等的server服务器,可以供多个客户端应用程序访问

好了,我们直接例一个嵌入式模式下的例子吧,这个单独作为sql server服务器模式的情况下不多,反正我是没看到过

package com.zkb.conf;import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.ApiKey;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;import java.util.Arrays;
import java.util.List;@Configuration
@EnableSwagger2
public class SwaggerConfig {@Beanpublic Docket createRestApi1() {return new Docket(DocumentationType.SWAGGER_2).enable(true).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).apis(RequestHandlerSelectors.basePackage("com.zkb.controller")).paths(PathSelectors.any()).build().securitySchemes(apiKeyList()).groupName("系统接口");}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("系统接口文档").description("这是系统接口文档说明").contact(new Contact("h2", "", "")).version("1.0").build();}private List<ApiKey> apiKeyList() {return Arrays.asList(new ApiKey("登录token", "token", In.HEADER.name()),new ApiKey("设备类型(android,ios,pc)---必填", "deviceType", In.HEADER.name()));}
}
package com.zkb.controller;import com.zkb.entity.Student;
import com.zkb.mapper.StudentMapper;
import com.zkb.service.StudentService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RequestMapping("/test")
@RestController
@Api(value = "Student", tags = "Student")
public class TestController {@AutowiredStudentService studentService;@GetMapping("list")@ApiOperation(value = "获取列表")public List<Student> getList(){return studentService.list();}
}
package com.zkb.entity;import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;@Data
@EqualsAndHashCode(callSuper = false)
@TableName("student")
public class Student extends Model<Student> {private Integer id;private String name;private Integer age;
}
package com.zkb.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zkb.entity.Student;public interface StudentMapper extends BaseMapper<Student> {void createStudentTable();
}
package com.zkb.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zkb.entity.Student;
import com.zkb.mapper.StudentMapper;
import com.zkb.service.StudentService;
import org.springframework.stereotype.Service;@Service
public class StudentServiceImpl extends ServiceImpl<StudentMapper, Student> implements StudentService {@Overridepublic void createStudentTable() {baseMapper.createStudentTable();}
}
package com.zkb.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.zkb.entity.Student;public interface StudentService extends IService<Student> {void createStudentTable();
}
package com.zkb;import com.zkb.entity.Student;
import com.zkb.service.StudentService;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.List;@SpringBootApplication
@MapperScan("com.zkb.mapper")
@EnableSwagger2
public class DerbyTestApplication {public static void main(String[] args) {SpringApplication.run(DerbyTestApplication.class, args);}@AutowiredStudentService studentService;@PostConstructpublic void init(){studentService.createStudentTable();List<Student> list= new ArrayList<>();Student student = new Student();student.setId(1);student.setName("张三");student.setAge(20);Student student1 = new Student();student1.setId(2);student1.setName("李四");student1.setAge(21);list.add(student);list.add(student1);studentService.saveBatch(list);}}
<?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.zkb.mapper.StudentMapper"><!-- 通用查询映射结果 --><resultMap id="BaseResultMap" type="com.zkb.entity.Student"><id column="id" property="id" /><result column="name" property="name" /><result column="age" property="age" /></resultMap><update id="createStudentTable">CREATE TABLE student(id int not null,name varchar(20),age int)</update></mapper>
server:port: 8888
dbBaseDir: /tmp/derby
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: org.apache.derby.jdbc.EmbeddedDriverurl: jdbc:derby:${dbBaseDir}/MyDB;create=trueusername: rootpassword: 123456jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT+8
logging:level:com:fs: debug
mybatis-plus:configuration:map-underscore-to-camel-case: trueauto-mapping-behavior: fulllog-impl: org.apache.ibatis.logging.stdout.StdOutImplmapper-locations: classpath:mapping/*.xmlglobal-config:# 逻辑删除配置db-config:# 删除前logic-not-delete-value: 0# 删除后logic-delete-value: 1
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.2</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.zkb</groupId><artifactId>derby-test</artifactId><version>0.0.1-SNAPSHOT</version><name>derby-test</name><description>derby-test</description><properties><java.version>1.8</java.version><mybatis-plus.version>3.3.2</mybatis-plus.version><swagger-ui.version>1.5.22</swagger-ui.version><springfox.version>2.9.2</springfox.version><swagger-bootstrap-ui.version>1.9.1</swagger-bootstrap-ui.version><fastjson.version>1.2.47</fastjson.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--derby内嵌数据库依赖--><dependency><groupId>org.apache.derby</groupId><artifactId>derby</artifactId><version>10.13.1.1</version></dependency><!--druid数据源依赖--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.31</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>${springfox.version}</version><exclusions><exclusion><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId></exclusion><exclusion><groupId>io.swagger</groupId><artifactId>swagger-models</artifactId></exclusion></exclusions></dependency><dependency><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId><version>${swagger-ui.version}</version></dependency><dependency><groupId>io.swagger</groupId><artifactId>swagger-models</artifactId><version>${swagger-ui.version}</version></dependency><!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>${springfox.version}</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>${swagger-bootstrap-ui.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build></project>

运行demo后会产生一个MyDB的文件夹  以上便是该文件夹里面的内容

demo里面我写了一个初始化的方法,第二次运行要把对应的内容注释掉,不然会报表已存在错误

可以看到,我已经查从derby数据库查出数据了,到这里demo就结束了

demo地址:https://download.csdn.net/download/qq_14926283/86543026

springboot嵌入式数据库derby初探相关推荐

  1. springboot嵌入式数据库H2初探

    H2 H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一 个十分方便的web控制台用于操作和管理数据库内容.H2还提供兼容模式,可以兼容一些主 流的数据库,具有比 ...

  2. 嵌入式数据库知识概括

    嵌入式数据库知识概况 嵌入式数据库 Derby SQLite H2 总结 嵌入式数据库 嵌入式数据库(Embedded Database)简介: 从软件角度来说,数据库分类为两种: ①第一种:数据库服 ...

  3. java嵌入式数据库之hsqldb、derby、h2

    比较三款嵌入式数据库   Hsqldb Derby H2 纯java 支持 支持 支持 内存模式 支持 不支持 支持 事务隔离 不支持 支持 支持 基于代价的优化方式 不支持 支持 支持 数据库加密 ...

  4. 【JAVA】穷词——基于嵌入式的数据库derby+BeautyEye的单词字典应用

    文章目录 1. 题目 2. 项目结构层次 3. 环境以及技术栈说明 4. 项目报告 4.1软件功能描述 4.2项目类图 4.2.1 `src`层级下的类图 4.2.2 `data`层级下的类图 4.2 ...

  5. Java 生态圈中的嵌入式数据库,哪家强?

    每天早上七点三十,准时推送干货 嵌入式数据库一个很陌生的词汇,以前只是听说,但是没有真正使用过,今天阿粉和大家一起来揭开它的面纱. 一.介绍 初次接触嵌入式数据库(Embedded Database) ...

  6. 关于java嵌入式数据库的选择,强烈建议H2 嵌入式数据库

    2019独角兽企业重金招聘Python工程师标准>>> 不听红薯言,吃亏在眼前. 先发表个人意见,Derby是垃圾,H2王道. 这段时间开发movingLife合租记账软件过程中,开 ...

  7. Java嵌入式数据库H2学习总结(一)——H2数据库入门

    一.H2数据库介绍 常用的开源数据库有:H2,Derby,HSQLDB,MySQL,PostgreSQL.其中H2和HSQLDB类似,十分适合作为嵌入式数据库使用,而其它的数据库大部分都需要安装独立的 ...

  8. linux上derby数据库,体验纯Java数据库——Derby

    Apache Derby是一个开源的.100% Java编写的.与平台无关的.易管理的关系数据库管理系统.Derby为用户提供了轻量的标准数据库引擎,它可以紧密的嵌入到任何基于Java的解决方案中.D ...

  9. Spring嵌入式数据库示例

    在本教程中,我们将向您展示一些示例,以在Spring框架中配置嵌入式数据库引擎,例如HSQL,H2和Derby. 使用的技术: 春天4.1.6.RELEASE jUnit 4.1.2 Maven 3 ...

最新文章

  1. Silverlight C# 游戏开发:Silverlight开发环境
  2. 《评人工智能如何走向新阶段》后记(再续4)
  3. iOS开发中各种关键字的区别
  4. 移动端为何不使用click而模拟tap事件及解决方案
  5. Shell(6)——array的删改unset
  6. hibernate优化笔记(随时更新)
  7. 通过Resource file本地化SharePoint用户界面
  8. Memcached(四)Memcached的CAS协议
  9. 学计算机应用基础学到了什么,2021年学习计算机应用基础心得体会-得范文网
  10. 003、使用MegaCli工具查看Raid磁盘阵列状态
  11. Lumerical官方案例、FDTD时域有限差分法仿真学习(五)——液晶(liquid crystal)
  12. ubuntu看不了bilibili视频
  13. ISACA最新高薪认证 | CDPSE数据隐私解决方案工程师
  14. 【锋利的jQuery】读书笔记
  15. HCIA网络基础18-PPPoE
  16. DApp 上线 BitPortal币通钱包申请指南
  17. 如何使用 forestplot 包绘制森林图展示多个效应的大小
  18. (附源码)计算机毕业设计ssm高校请假管理系统
  19. 数据结构(八)——后缀表达式
  20. 192.168.8.1手机登陆_192.168.1.101登陆页面手机进入 即可登陆

热门文章

  1. 未转变者服务器保存红字警告,未转变者3.1版开服图文教程,未转变者3.1版怎么开服 - 攻略心得 - 找游戏手游网...
  2. 航模第二篇-如何开始玩航模
  3. 采集工具有哪些-数据采集工具有哪些-网站采集工具
  4. Linux - Vim(Vi-Improved)
  5. 中国移动WMMP物联网协议简单介绍
  6. 鸿蒙系统chr,一分钟告诉您一汽丰田奕泽相比原版CHR有何不同
  7. 微软游戏编程接口———DirectX
  8. 打造万能的RecyclerView的Adapte
  9. 亚马逊云科技Serverless构建的实时数仓解决方案,助力猎豹降低30%成本
  10. Eclipse开发Servlet项目详细教程!!!