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

高端网站建设的网站html语言

高端网站建设的网站,html语言,石河子市住房和城乡建设局网站,北京地产网站建设上文我们展示了通过学习经典的MVC分包结构展示了一个用户的增删查改项目,但是我们没有接入数据库;本文将在上文的基础上,增加一个H2内存数据库,并且通过Spring 提供的数据访问包JPA进行数据查询。准备知识点在介绍通过Spring JPA接…
上文我们展示了通过学习经典的MVC分包结构展示了一个用户的增删查改项目,但是我们没有接入数据库;本文将在上文的基础上,增加一个H2内存数据库,并且通过Spring 提供的数据访问包JPA进行数据查询。

准备知识点

在介绍通过Spring JPA接入真实H2数据时,需要首先了解下:
什么是H2数据库?
什么是JPA?

什么是H2内存数据库

H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

官方网站

有哪些用途

  • H2最大的用途在于可以同应用程序打包在一起发布,这样可以非常方便地存储少量结构化数据。

  • 它的另一个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态。

  • H2的第三个用处是作为缓存,作为NoSQL的一个补充。当某些场景下数据模型必须为关系型,可以拿它当Memcached使,作为后端MySQL/Oracle的一个缓冲层,缓存一些不经常变化但需要频繁访问的数据,比如字典表、权限表。不过这样系统架构就会比较复杂了。

H2的产品优势?

  • 纯Java编写,不受平台的限制;

  • 只有一个jar文件,适合作为嵌入式数据库使用;

  • h2提供了一个十分方便的web控制台用于操作和管理数据库内容;

  • 功能完整,支持标准SQL和JDBC。麻雀虽小五脏俱全;

  • 支持内嵌模式、服务器模式和集群。

什么是JPA,和JDBC是什么关系

什么是JDBC, ORM, JPA? 之间的关系是什么?
  • 什么是JDBC

JDBC(JavaDataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。

  • 什么是ORM

对象关系映射(Object Relational Mapping,简称ORM), 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式,具体如下:

具体映射:

  1. 数据库的表(table) --> 类(class)

  1. 记录(record,行数据)--> 对象(object)

  1. 字段(field)--> 对象的属性(attribute)

  • 什么是JPA

JPA是Spring提供的一种ORM,首先让我们回顾下Spring runtime体系:

Spring Data是基于Spring runtime体系的,JPA 属于Spring Data, 和JDBC的关系如下:

案例

这里承接上文, 使用H2存放用户表,并通过JPA操作用户数据。

添加H2和JPA的依赖

<dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

配置H2和JPA注入参数

spring:datasource:data: classpath:db/data.sqldriverClassName: org.h2.Driverpassword: saplatform: h2schema: classpath:db/schema.sqlurl: jdbc:h2:mem:dbtestusername: sah2:console:enabled: truepath: /h2settings:web-allow-others: truejpa:hibernate:ddl-auto: updateshow-sql: true

其中资源下还需要配置数据库的表结构schema.sql

create table if not exists tb_user (
USER_ID int not null primary key auto_increment,
USER_NAME varchar(100)
);

以及数据文件 data.sql, 默认插入一条‘赵一’的数据

INSERT INTO tb_user (USER_ID,USER_NAME) VALUES(1,'赵一');

实体关联表

给User添加@Entity注解,和@Table注解

package tech.pdai.springboot.h2.entity;import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;@Entity
@Table(name = "tb_user")
public class User {@Idprivate int userId;private String userName;public int getUserId() {return userId;}public void setUserId(int userId) {this.userId = userId;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}
}

Dao继承JpaRepository

package tech.pdai.springboot.h2.dao;import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import tech.pdai.springboot.h2.entity.User;@Repository
public interface UserRepository extends JpaRepository<User, Integer> {}

(其它service,App启动类等代码和前文一致)

运行程序

一些思考

这里补充一些H2数据库的知识点(特别是如何用H2做单元测试), 可以跳过。

H2数据库通常如何使用?

  • 嵌入式模式 (上文例子)

在嵌入式模式下,应用程序使用JDBC从同一JVM中打开数据库。这是最快也是最容易的连接方式。缺点是数据库可能只在任何时候在一个虚拟机(和类加载器)中打开。与所有模式一样,支持持久性和内存数据库。对并发打开数据库的数量或打开连接的数量没有限制。

  • 服务器模式

当使用服务器模式(有时称为远程模式或客户机/服务器模式)时,应用程序使用 JDBC 或 ODBC API 远程打开数据库。服务器需要在同一台或另一台虚拟机上启动,或者在另一台计算机上启动。许多应用程序可以通过连接到这个服务器同时连接到同一个数据库。在内部,服务器进程在嵌入式模式下打开数据库。

服务器模式比嵌入式模式慢,因为所有数据都通过TCP/IP传输。与所有模式一样,支持持久性和内存数据库。对每个服务器并发打开的数据库数量或打开连接的数量没有限制。

  • 混合模式

混合模式是嵌入式和服务器模式的结合。连接到数据库的第一个应用程序在嵌入式模式下运行,但也启动服务器,以便其他应用程序(在不同进程或虚拟机中运行)可以同时访问相同的数据。本地连接的速度与数据库在嵌入式模式中的使用速度一样快,而远程连接速度稍慢。

服务器可以从应用程序内(使用服务器API)启动或停止,或自动(自动混合模式)。当使用自动混合模式时,所有想要连接到数据库的客户端(无论是本地连接还是远程连接)都可以使用完全相同的数据库URL来实现。

以上不同的连接方式对应不同的 JDBC URL,可以参考如下附录表格中的连接格式。

如何使用H2做单元测试?

为何H2会被用来做单元测试 以及 如何使用H2做单元测试?

可以参考这篇文章 单元测试 - SpringBoot2+Mockito实战

H2数据库的兼容性?

H2会被用作单元测试的模拟库,所以必然也需要了解H2数据库的兼容性。

h2官网对此有详细的描述

示例源码

https://download.csdn.net/download/DeveloperFire/87519876

http://www.bjxfkj.com.cn/article/109104.html

相关文章:

  • 茂名营销型网站建设重庆信息网
  • 网站优化设计做网站服务器硬盘多大
  • iapp如何用网站做软件seo网站推广排名
  • 中铁建设门户网站高端网站建设高端网站建设专家
  • 手机搭建网站教程wordpress 大数据备份
  • 健康网站可以做推广吗移动版网站怎么做
  • 重庆企业网站备案要多久时间休闲文化网站
  • 免费拥有自己的网站如何搭建自己的网站服务器
  • 加盟产品网站建设方案肇庆住房和城乡建设部网站
  • 西安SEO网站建设哪家好大气集团网站
  • 北京公司响应式网站建设价位企业网站内容是什么
  • 苏州网站建设主页小何自助建站
  • 枣庄网站建设制作重庆建设厅官网
  • 企业培训公司登封做网站优化
  • 网站开发与管理的专业描述免费logo设计模板
  • 沧州大型企业网站建设wordpress设置菜单跳转到锚
  • 有没有好一点的网站吐鲁番建设局网站
  • 深圳专业做网站建设wordpress外链图片备份
  • 建设银行u盾官方网站首页网站阵地建设管理办法
  • 深圳网站建设制作视频软件电商网站开发毕业设计
  • 怎样在百度做网站打广告南京做网站费用
  • 网站内容优化方法有哪些wordpress分类目录表
  • wordpress cpu突然深圳网站seo关键词
  • php程序员做企业网站自己电脑做网站服务器小工具
  • 创建公司网站 优帮云广州小程序软件开发
  • 工信部网站备案时间线上推广产品
  • 星空传媒有限公司网站wordpress导航仿制
  • 网站服务器无响应是怎么回事六安钢贴吧
  • 广州网站建设比较重庆市城市建设档案馆官方网站
  • 建网站的基本流程苏州市亿韵商务信息有限公司