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

可以做动态图表的网站wordpress登录不了

可以做动态图表的网站,wordpress登录不了,模板网站购买,软件开发语言都有哪些SpringBoot教程(十二) | SpringBoot集成JPA 1. JPA简介 概念#xff1a; JPA顾名思义就是Java Persistence API的意思#xff0c;是JDK 5.0注解或XML描述对象#xff0d;关系表的映射关系#xff0c;并将运行期的实体对象持久化到数据库中。 优势#xff1a; 标准化 …SpringBoot教程(十二) | SpringBoot集成JPA 1. JPA简介 概念 JPA顾名思义就是Java Persistence API的意思是JDK 5.0注解或XML描述对象关系表的映射关系并将运行期的实体对象持久化到数据库中。 优势 标准化 JPA 是 JCP 组织发布的 Java EE 标准之一因此任何声称符合 JPA 标准的框架都遵循同样的架构提供相同的访问API这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。容器级特性的支持 JPA框架中支持大数据集、事务、并发等容器级事务这使得 JPA 超越了简单持久化框架的局限在企业应用发挥更大的作用。简单方便 JPA的主要目标之一就是提供更加简单的编程模型在JPA框架下创建实体和创建Java 类一样简单没有任何的约束和限制只需要使用 javax.persistence.Entity进行注释JPA的框架和接口也都非常简单没有太多特别的规则和设计模式的要求开发者可以很容易的掌握。JPA基于非侵入式原则设计因此可以很容易的和其它框架或者容器集成。查询能力 JPA的查询语言是面向对象而非面向数据库的它以面向对象的自然语法构造查询语句可以看成是Hibernate HQL的等价物。JPA定义了独特的JPQLJava Persistence Query LanguageJPQL是EJB QL的一种扩展它是针对实体的一种查询语言操作对象是实体而不是关系数据库的表而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性甚至还能够支持子查询。高级特性 JPA 中能够支持面向对象的高级特性如类之间的继承、多态和类之间的复杂关系这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用而不需要自行处理这些特性在关系数据库的持久化。 2. spring-data-jpa JPA本身就是一套标准就和jdbc一样不同的上场都是可以来进行实现。目前使用的比较多的都是hibernate的实现。 然而在SpringBoot中我们可以无缝的集成Spring-data-jpa, 简答介绍一个Spring-data. 他也是属于Spring家族的一个产品主要就是用来封装各种中间件的操作比如Spring-data-jdbc就是我们浅浅讲到的jdbcTemplate, 还有spring-data-jpa用来实现JPA, Spring-data-redis封装操作redis的api, 还有spring-data-mongodb, spring-data-elasticsearch,等等。 SpringData所包含的项目如下 由于产品本身都是spring的所以和spring的集成有着得天独厚的优势。并且也直接为springBoot提供了相应的starter,我们引入后就可以直接操作非常方便。 3. JPA、hibernate、SpringDataJpa关系 JPA仅仅是一种规范也就是说它仅仅定义了一些接口而接口是需要实现才能工作的。所以底层需要某种实现而Hibernate就是实现了JPA接口的ORM框架。 SpringDataJpa是Spring提供的一套简化JPA开发的框架按照约定好的方法命名规则来创建DAO层接口就可以在不写接口实现的情况下实现对数据库的访问和操作。并且提供了一些常用的增删改查等方法的直接操作。 SpringDataJpa可以理解为JPA规范的再次封装抽象底层还是使用了Hibernate的Jpa技术实现。 4. 集成步骤 我们还是先拉取一个feature/jpa的分支防止和前面的mybatis冲突。这个分支里只负责集成JPA的操作。 4.1 引入SpringDataJpa所需依赖 xml复制代码dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId /dependency!-- MySQL连接 -- dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdscoperuntime/scope /dependency通过观察依赖包我们也能够发现其实他还是使用了hibernate: 4.2 配置数据库连接 在spring的配置文件application.yml中配置数据库相关信息 yml复制代码spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/springboot_learning?serverTimezoneAsia/ShanghaicharacterEncodingutf-8username: rootpassword: rootjpa:show-sql: true # 默认false在日志里显示执行的sql语句database: mysqldatabase-platform: org.hibernate.dialect.MySQL5Dialecthibernate:ddl-auto: update #指定为update每次启动项目检测表结构有变化的时候会新增字段表不存在时会 新建如果指定create则每次启动项目都会清空数据并删除表再新建naming:#指定jpa的自动表生成策略驼峰自动映射为下划线格式7implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl#physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl4.3 实体的编写 在Jpa中有自己独立风格的实体一般来讲就是有一些独特的注解来定义实体。 Jpa是一个比较完全式的ORM框架就是可以完全通过实体映射数据库甚至我们可以根据实体去生成数据库。 我们先来看实体的案例还是以User为例。 java复制代码/*** className: User* description:* author: sh.Liu* date: 2022-01-14 16:35*/ Data Entity Table(name t_user) public class User {/*** 主键生成策略 自增*/IdGeneratedValue(strategy GenerationType.IDENTITY)private Integer id;private String name;private Integer age;private String address;private Date createTime;private Date updateTime;}这里有这么几个特殊的注解。 Entity: 标识这是一个实体类 Table: 标识与之映射的表名 Id: 标识数据库主键 GeneratedValue: 标识主键生成策略这里是自增。 4.4 Dao层开发 Dao层主要处理和数据库的交互这里我们可以使用JPA为我们提供的基类JpaRepository里面包含了大部分常用操作。只需集成即可。 java复制代码package com.lsqingfeng.springboot.dao;import com.lsqingfeng.springboot.entity.User; import org.springframework.data.jpa.repository.JpaRepository;import java.io.Serializable;public interface UserDao extends JpaRepositoryUser,Integer, Serializable { }接下来就可以在Service中直接调用Dao层完成常用功能的开发然后在Controller层中调用Service将整个流程串起来。 java复制代码package com.lsqingfeng.springboot.service.impl;import com.lsqingfeng.springboot.dao.UserDao; import com.lsqingfeng.springboot.entity.User; import com.lsqingfeng.springboot.service.UserService; import org.springframework.stereotype.Service;import java.util.List;/*** className: UserServiceImpl* description:* author: sh.Liu* date: 2022-01-17 13:56*/ Service public class UserServiceImpl implements UserService {private final UserDao userDao;public UserServiceImpl(UserDao userDao) {this.userDao userDao;}Overridepublic User getUserById(Integer id) {return userDao.getById(id);}Overridepublic ListUser listUser() {return userDao.findAll();}Overridepublic int save(User user) {userDao.save(user);return user.getId();}Overridepublic int update(Integer id, User user) {// 有id则更新无id则新增user.setId(id);userDao.save(user);return id;}Overridepublic int delete(Integer id) {User user new User();user.setId(id);userDao.delete(user);return id;} }4.5 测试 通过postman调用相关接口进行测试。 查看数据库 时间值没有因为我们没有在新增的时候设置当前时间。 再试试修改和查询 新增。 4.6 自定义SQL的执行 现在我们的DAO层用的是JPA自带的通过继承一个基类的常用操作来实现的。那如果说我们有一个需求需要我们自己写一些sql应该如何实现呢。我们来实现一个根据名字查询的接口。 首先在DAO层定义一个接口。 java复制代码public interface UserDao extends JpaRepositoryUser,Integer, Serializable {/**** param name* return*/Query(select u from User u where u.name ?1)User getByName(String name);}然后在Service层和Controller层调用这个方法。查看效果。 java复制代码 GetMapping(getByName)public Result getByName(String name){return Result.success(userService.getByName(name));}修改下数据库数据。 查询结果 这里要注意的是 我们在Query注解上写的是HQL语句也就是默认操作的是对象。所以是from User 也就是用对象去操作数据库如果我们想要写原生sql,那么写法如下 java复制代码Query(select u from t_user u where u.name ?1,nativeQuery true) User getByName(String name);5. 总结 关于JPA的简单集成大概就介绍这么多JPA的思想主要是通过对象操作数据库相比于mybatis更加ORM, 所以相比之下也有人把mybatis比作是一个半ORM的框架主要原因就是sql和HQL的区别这个如果使用的hibernate的同学应该更有感触。 关于JPA和Mybatis的选择问题这个之一在网络上争论不断这个其实也没有什么好坏之分是要能实现我们的目的选择那种框架只不过是其中的一种手段罢了。而像我确实还是用mybatis-Plus比较多。可能用的多了也就感觉它更方便一些下一篇文章咱们讲讲mybatis的升级版mybatisPlus的用法。 另 配套项目代码已托管中gitCode: gitcode.net/lsqingfeng/…
http://www.zqtcl.cn/news/83360/

相关文章:

  • 浙江建设职业技术学院官方网站wordpress质感主题
  • 简易个人网站百度大搜推广和百度竞价
  • 没有公司做网站长春一般做一个网站需要多少钱
  • 网站建设域名的购买免费发帖推广
  • 网站构建工具网站业务建设是什么
  • 中山建设网站免费下载软件商店安装
  • 厦门专业网站排名推广百度优化推广
  • 建网站权威机构成都注册公司的流程及手续
  • 设计师推荐网站欣赏wordpress优秀网站
  • 一个公司做网站需要注意什么条件牙科医院网站设计怎么做
  • 赣州网站建设专家邯郸信息港二手物品出售
  • 建一个网站带管理需要多少钱一年网站下载怎么做
  • 有哪些网站软件可以做网站的原型网站推广的好处
  • 求和萝莉做的网站django个人博客网站开发部署源码
  • 开源展示型网站惠州建站方案
  • 建网站前途产品设计师
  • 外贸机械网站辽宁造价工程造价信息网
  • 广州网站优化公司咨询向国旗敬礼做美德少年网站
  • 什么网站做美式软装设计理念wordpress 管理员权限设置密码
  • 公司找私人做网站自己网站建设的流程是什么
  • 网站名怎么写白云鄂博矿区网站建设
  • 移动端网站设计前有哪些准备工作?百度推广客户端app下载
  • 如何做优品快报下的子网站wordpress变404
  • 做流量网站怎么做wordpress怎么映射到外网访问不了
  • 网站活跃度怎么做展示型型网站建设
  • 倒计时网站模板网站设计定制多少钱
  • 唐山cms模板建站三维家在线设计官网
  • 汉化主题做网站效果图手机百度关键词优化
  • 规划设计公司毛利东莞网站关键词优化排名
  • 深度网营销型网站建设专业长春网站建设哪家好