美文网首页Java
三年开发经验程序员可能都不懂SpringORM框架是如何访问数据

三年开发经验程序员可能都不懂SpringORM框架是如何访问数据

作者: 十万嬉皮_c728 | 来源:发表于2022-06-18 16:03 被阅读0次

    SpringORM框架访问数据库

    Spring Boot提供了直接使用JDBC连接数据库的方式,但是使用JDBC并不是很方便,需要我们写更多的代码来完成对象和关系数据库的转换;另一种方式是将实体和实体的关系对应数据库的表和表的关系,这类工具通常是ORM工具,对实体和实体关系的操作会映射到数据库的操作。一般而言,在Spring Boot中,我们常用的ORM框架有JPA和MyBatis。Spring Data JPA默认采用Hibernate实现。

    ORM的概念

    对象关系映射(Object Relational Mapping,ORM)是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。简单来说,就是将数据库表与Java实体对象做映射。

    ORM的优缺点

    ● 优点:符合面向对象编程;技术与业务解耦,开发时不需要关注数据库的连接与释放。

    ● 缺点:ORM会牺牲程序的执行效率,会固定思维模式。

    ORM的主流框架

    包括Hibernate、JPA、MyBatis等。下面主要介绍基于JPA规范再次封装抽象实现的Spring Data JPA项目。在介绍Spring Data JPA之前,我们先简单介绍一下JPA。

    什么是JPA

    JPA是Java Persistence API的简称,中文名为Java持久层API,使用注解或XML描述对象与关系表的映射关系,并将运行期的实体对象持久化到数据库中。JPA包括以下3方面内容:

    ● 一套API标准:它在javax.persistence的包下面,用来操作实体对象,执行CRUD操作,程序在后台完成所有的事情,帮助开发者从烦琐的JDBC和SQL代码中解脱出来。

    ● 面 向 对 象 的 查 询 语 言 : Java PersistenceQueryLanguage(JPQL)。这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言来查询数据,避免与程序的SQL语句紧密耦合。

    ● Object/Relational Metadata:作为对象与表关系的映射,JPA支持XML和注解两种元数据形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中。

    JPA访问数据库实例

    1.引入相应Maven依赖

    2.添加配置文件application.yml

    说明:
    spring.jpa.database-platform这个参数主要用于指定默认的数据库存储引擎,在Spring Boot 2中,默认的MySQL数据库存储引擎是MyISAM,通过把取值设置为org.hibernate.dialect.MySQL5InnoDBDialect,就可以把默认的存储引擎切换为InnoDB。

    3.创建Entity

    4.创建OrderLog的父类BaseEntity


    5.创建数据访问Repository

    Repository是Spring Data的核心概念,抽象了对数据库和NoSQL的操作,提供了如下接口供开发者使用:

    6.接口测试类UserController.java

    Repository提供save方法来保存或者更新一个实体,默认情况下,如果Entity的主键属性为空,则认为是新的实体,保存实体;反之,如果Entity的主键属性不为空,则更新实体。

    mybatis-spring-boot-starter实例

    1.添加Maven依赖

    2.在application.yml中添加相关配置

    说明:Spring Boot会自动加载spring.datasource.*相关配置,数据源会自动注入sqlSessionFactory,sqlSessionFactory会自动注入Mapper。

    3.在启动类中添加对mapper包的@MapperScan注解

    4.开发Mapper实现数据操作

    5.使用测试用例

    通过上述几个步骤就基本完成了相关Dao层的开发,使用时当作普通的类注入就可以了。

    总结一下,JPA的学习成本比MyBatis略高,MyBatis比JPA更灵活,使用MyBatis方式的同时可以使用XML的方式,进行添加User的映射文件,这里由于篇幅所限就不再赘述。上面我们主要介绍了SpringBoot通过JDBC和ORM的方式完成对关系数据库的访问,接下来我们将介绍Spring Boot如何实现对NoSQL数据存储的集成和管理。

    本文给大家讲解的内容是微服务数据架构,数据分类及存储特性,SpringORM框架访问数据库

    相关文章

      网友评论

        本文标题:三年开发经验程序员可能都不懂SpringORM框架是如何访问数据

        本文链接:https://www.haomeiwen.com/subject/siokvrtx.html