当前位置: 首页 > news >正文

移动网站优化优秀的软文广告案例

移动网站优化,优秀的软文广告案例,合肥企业网站建设工作室,建行网银登录概述 传统关系型数据库涉及大量的工作,如果想在Java应用程序里使用MySQL数据库,至少需要如下步骤: 安装(可选:配置用户名密码)建表(要么从命令行进入,要么安装一个可视化工具&…

概述

传统关系型数据库涉及大量的工作,如果想在Java应用程序里使用MySQL数据库,至少需要如下步骤:

  • 安装(可选:配置用户名密码)
  • 建表(要么从命令行进入,要么安装一个可视化工具,如DataGrip)
  • 插入数据(可选)
  • 配置连接信息(数据库的连接串,用户名,密码等信息)

还是有些繁琐。想象如下场景:

  1. 想要快速进行POC(Proof of Concept)概念验证测试
  2. 考虑单元测试
    • 当数据库中的某些数据/模式发生更改时,不希望它们失败
    • 可能希望能够并行运行它们,多个开发人员可能并行运行测试。

此时,内存数据库(In-Memory Database,嵌入式数据库)可提供一种较为理想的解决方案。在Java应用程序启动时创建内存数据库,并在应用程序停止时销毁。好处:

  • 零项目设置或基础设施
  • 零配置零维护
  • 易于学习,POC和单元测试

总结,以存储介质来分类,数据库有两种:

  • 内存数据库:数据主要存储在内存中,可将数据进行持久化到文件硬盘中。如Redis、H2DB的内存模式。由于内存容量有限,不适合大型应用。
  • 硬盘数据库:最为常见。如SSDB是基于SSD硬盘的KV数据库,支持的数据接口很丰富,是Redis的另外一个选择。

举例

如SQLite、Berkeley DB、Derby、H2、HSQL DB、MySQL Embedded都是内存数据库。

Derby

官网
Apache Derby是100% Java编写,安装简单易管理,体积小,与平台无关的内存数据库,以 Java 类库的形式对外提供服务。支持的数据库最大50GB,支持标准SQL92,SQL1999,SQL2003,临时表,索引,触发器,视图,存储过程,外键,约束,并行,事务,加密与安全等。性能较好,在插入100万条记录时,CPU占用率一直低于 40%,平均每插一条记录耗时小于 0.3 毫秒。

支持两种运行模式:

  1. 内嵌模式:数据库与应用程序共享同一个JVM,通常由应用程序负责启动和停止,对除启动它的应用程序外的其它应用程序不可见,即其它应用程序不可访问它;
  2. 网络模式:数据库独占一个JVM,做为服务器上的一个独立进程运行。在这种模式下,允许有多个应用程序来访问同一个Derby数据库。

下载地址,需根据JDK版本下载相应的Derby版本。目前还在使用JDK8,故下载db-derby-10.14.2.0-bin.zip版本,解压后的目录:

  1. bin:工具脚本和设备环境的脚本;
  2. demo:实例程序;
  3. docs:文档;
  4. javadoc:API文档;
  5. lib:jar文件;
  6. test:测试jar包;

命令行

bin目录提供ij脚本。

D:\Program\db-derby-10.14.2.0-bin\bin> ./ij.bat
ij 版本 10.14
ij> show databases
> # 输出为空,表明此时没有任何数据库
> connect 'jdbc:derby:mydb;create=true';
IJ 错误:无法建立 connection # 连接数据库,没有则创建
ij> connect 'jdbc:derby:e:/mydb;create=true'; # 必须指定路径
ij> # 输出为空,表示执行成功无报错

看一下本地生成的目录:
在这里插入图片描述
接下来可以像MySQL那样操作:

ij> create table test(id int primary key, name varchar(22));
已插入/更新/删除 0 行
ij> insert into test values(1,'johnny');
已插入/更新/删除 1 行
ij> select * from test
> ; # 语句必须以英文分号结尾
ID         |NAME
----------------------------------
1          |johnny
已选择 1 行
ij> disconnect; # 断开连接
ij> exit; # 退出,Ctrl+C

Java

Maven添加如下依赖:

<dependency><groupId>org.apache.derby</groupId><artifactId>derby</artifactId><version>10.14.2.0</version><scope>test</scope>
</dependency>

注意需要根据JDK版本号添加相应的Derby版本,JDBC demo示例代码略,过于简单。

H2

Spring Boot已经是Java开发者事实上的标准。SB提供简单配置,可在真实数据库(如MySQL)和内存数据库(如H2)之间切换。

H2是用Java编写的关系数据库管理系统,可嵌入Java应用程序中,也可以在客户端 - 服务器模式下运行。支持SQL标准的子集,还提供一个Web控制台(h2-console)来查看和维护数据库。使用时加入H2运行时依赖

<dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope>
</dependency>

application.properties中启用h2控制台功能:spring.h2.console.enabled=true
启动应用程序,可看到控制台打印输出:

o.s.b.a.h2.H2ConsoleAutoConfiguration    : H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:dc2f642f-cc93-48df-b170-4110b17384c3'

浏览器访问http://localhost:<server.port>/h2-console/,会自动跳转到http://localhost:8085/h2-console/login.jsp?jsessionid=e8c8fb0e00f5dff6fa6f59636cbb26c6,jsessionid每次都不一样。
在这里插入图片描述
注意上图中的JDBC URL默认为jdbc:h2:~/test,此时如果直接点Connect或Test Connection,都会报错,报错信息如上:Database not found。注意看应用启动时的控制台输出的关键信息。填入dc2f642f-cc93-48df-b170-4110b17384c3,然后点击Connect。成功,挑战到页面:
在这里插入图片描述
可以看到此界面和DataGrip还是有点相似,左侧是库和表信息,右边是SQL编辑框,上面有一些配置项,下面有命令解释和示例SQL脚本。最下面截图不完整的Adding Database Drivers

Additional database drivers can be registered by adding the Jar file location of the driver to the environment variables H2DRIVERS or CLASSPATH. Example (Windows): to add the database driver library C:/Programs/hsqldb/lib/hsqldb.jar, set the environment variable H2DRIVERS to C:/Programs/hsqldb/lib/hsqldb.jar.

大意是可以设置环境变量H2DRIVERS=<path_to_hsqldb.jar_file>

进阶

SB自动配置原理,在类路径中看到H2,就会自动配置数据源:

spring.datasource.url=jdbc:h2:mem:<uuid>
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

即,如果没有提供URL指定库名和表名,会使用UUID规则生成一个数据库

持久化
应用程序退出后,数据会从内存清除,怎么把数据持久化呢?H2提供持久化到文件的配置:

spring:datasource:driver-class-name: org.h2.Driverurl: jdbc:h2:file:/www/${spring.application.name}/db# Windows# url: jdbc:h2:file:C:/data/sample/${spring.application.name}/db;# 内存数据配置# spring.datasource.url=jdbc:h2:mem:testdbusername: sapassword:jpa:hibernate:ddl-auto: updatedatabase-platform: org.hibernate.dialect.H2Dialecth2:console:path: /h2enabled: truesettings:web-allow-others: true

可结合JPA或Spring Data JDBC一起使用,下面是JPA引入:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

@Entity标注实体类,@Id标注主键:

@Entity
public class Product {@javax.persistence.Idprivate String Id;private String name;
}

其他无需任何配置,SB启动时发现classpath中有m2就默认启动,同时建立product对应的H2数据表。

参考

  • h2-file-database
  • 内存数据库的发展现状和前景如何
http://www.hkea.cn/news/816724/

相关文章:

  • 苏州网站建设网站seo优化的方法
  • 设计网装修seo顾问服
  • 网站ip拦截免费网站搭建平台
  • 深圳企业网站建设公司快速申请免费个人网站
  • 唯品会 一家专门做特卖的网站沈阳seo按天计费
  • 聊城手机网站建设郑州seo服务技术
  • 个人定做衣服店江门seo推广公司
  • 网站开发与网站建设山东济南seo整站优化费用
  • 香港疫情最新消息今天深圳seo教程
  • 维护一个网站难吗免费发布外链
  • 南安市网站建设成都今天重大新闻事件
  • 网站后台补丁如何做软文有哪几种类型
  • 网站建设的费用包括哪些内容资讯门户类网站有哪些
  • 一站式服务图片制作网页的基本步骤
  • 个人网站建设网站网络网站推广
  • asp做的药店网站模板北京百度快照推广公司
  • 网站建设泉州效率网络seo的优化策略有哪些
  • 页网站无锡网站制作推广
  • 一流的龙岗网站建设目前最靠谱的推广平台
  • 企业营销型网站费用短视频推广引流
  • 化妆品可做的团购网站有哪些seo研究中心南宁线下
  • 网站空间域名是什么做电商必备的几个软件
  • 软件公司运营是做什么的seo公司运营
  • 专业云南做网站福州短视频seo服务
  • 网站开发技术期中试题电商培训机构排名
  • 网站设计连接数据库怎么做如何进行百度推广
  • 日本网站图片做淘宝代购网络营销促销方案
  • 网站开发导航栏网站制作的费用
  • 盐城网站设计网站流量统计工具
  • 网站上如何做相关推荐郑州建网站的公司