《玩转SpringBoot全家桶》总结——第15-21节

第十五节:认识SpringData JPA

在这里插入图片描述

JPA(Java Persistence API),为对象关系映射提供了一种基于POJO的持久化模型。

  • a. 简化数据持久化代码的开发工作
  • b. 为Java社区屏蔽不同持久化API的差异。
第十六节:定义JPA的实体对象

常用JPA注解
实体:

  • @Entity,@MappedSuperclass
  • @Table(name)

主键:

  • @Id
  • @GeneratedValue(strategy, generator)
  • SequenceGenerator(name, sequenceName)
    映射:
  • @Column(name,nullable,length,insertable,updatable)
  • @JoinTable(name)、@JoinColumn(name)
    关系:
  • @@OneToOne、@OneToMany、@ManyToOne、@ManyToMany
  • @OrderBy
第十七节:线上咖啡馆实战项目:SpringBucks

在这里插入图片描述

对于金额的处理,不要使用浮点数。
使用到的注解:

  • @MappedSupperclass,在Jpa里, 当我们在定义多个实体类时, 可能会遇到这几个实体类都有几个共同的属性, 这时就会出现很多重复代码.
    这时我们可以选择编写一个父类,将这些共同属性放到这个父类中, 并且在父类上加上@MappedSuperclass注解.注意:标注为@MappedSuperclass的类将不是一个完整的实体类,他将不会映射到数据库表,但是他的属性都将映射到其子类的数据库字段中。
    标注为@MappedSuperclass的类不能再标注@Entity。
  • @Data注解 :lombok.jar包下边的注解,通常用在实体bean上,使用这个注解,就不用再去手写Getter,Setter,equals,canEqual,hasCode,toString等方法了,注解后在编译时会自动加进去。
  • @AllArgsConstructor
    使用后添加一个构造函数,该构造函数含有所有已声明字段属性参数
  • @NoArgsConstructor
    使用后创建一个无参构造函数
  • @Builder
    关于Builder较为复杂一些,Builder的作用之一是为了解决在某个类有很多构造函数的情况,也省去写很多构造函数的麻烦,在设计模式中的思想是:用一个内部类去实例化一个对象,避免一个类出现过多构造函数。
第十八-十九节:通过Spring Data JPA相关内容

如果是比较简单的应用,JPA就挺方便的,如果是比较复杂的应用,写HQL和写SQL都差不多了,或者DBA对SQL有什么特殊的要求,那还是推荐用MyBatis。
Spring Data JPA的Repository是怎么从接口变成Bean的:
JpaRepositoriesRegistrar:

  • 激活了@EnableJpaRepositories
  • 返回了JpaRepositoryConfigExtension
    RepositoryBeanDefinitionRegistrarSupport.registerBeanDefinitions
  • 注册RepositoryBean(类型是JpaRepositoryFactoryBean)
    RepositoryConfigurationExtensionSupport.getRepositoryConfigurations
  • 取得Repository配置
    JpaRepositoryFactory.getTargetRepository
  • 创建了Repository
    接口中的方法怎么被解释的:
    RepositoryFactorySupport.getRepository添加了Advice。
  • DefaultMethodInvokingMethodInterceptor
  • QueryExecutorMethodInterceptor
    AbstractJpaQuery.execute执行具体的查询,语法解析在Part中。
第二十节:通过MyBatis操作数据库

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。
在这里插入图片描述
在这里插入图片描述

示例代码:
在这里插入图片描述

第二十一节:让MyBatis更好用的那些工具:MyBatis Generator
MyBatis Generator([http://www.mybatis.org/generator/](http://www.mybatis.org/generator/)
它是Mybaits代码生成器,能够根据数据库表生成相关代码,如:

  • POJO
  • Mapper接口
  • SQL Map XML

配置MyBatis Genetator
在这里插入图片描述
使用生成的对象:
在这里插入图片描述

工具的使用还可以参考改链接:https://www.cnblogs.com/zf15193741987/p/13161340.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值