全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

SpringBoot整合JPA的实例代码

JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

JPA 的目标之一是制定一个可以由很多供应商实现的API,并且开发人员可以编码来实现该API,而不是使用私有供应商特有的API。

JPA是需要Provider来实现其功能的,hibernate就是JPA Provider中很强的一个,应该说无人能出其右。从功能上来说,JPA就是Hibernate功能的一个子集。

添加相关依赖

添加spring-boot-starter-jdbc依赖:

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

添加MySQL连接类和连接池类:

  <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtime</scope>
    </dependency> 

配置数据源,在application.properties文件配置:

spring:
 datasource:
  driver-class-name: com.mysql.jdbc.Driver
  url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
  username: root
  password: 123456

 jpa:
  hibernate:
   ddl-auto: update # 第一次简表create 后面用update
  show-sql: true

注意,如果通过jpa在数据库中建表,将jpa.hibernate,ddl-auto改为create,建完表之后,要改为update,要不然每次重启工程会删除表并新建。

创建实体类

通过@Entity 表明是一个映射的实体类, @Id表明id, @GeneratedValue 字段自动生成

@Entity
public class Account {
  @Id
  @GeneratedValue
  private int id ;
  private String name ;
  private double money;

... 省略getter setter
}

Dao层

数据访问层,通过编写一个继承自 JpaRepository 的接口就能完成数据访问,其中包含了几本的单表查询的方法,非常的方便。值得注意的是,这个Account 对象名,而不是具体的表名,另外Interger是主键的类型,一般为Integer或者Long

public interface AccountDao extends JpaRepository<Account,Integer> {
}

Web层

在这个栗子中我简略了service层的书写,在实际开发中,不可省略。新写一个controller,写几个restful api来测试数据的访问。

@RestController
@RequestMapping("/account")
public class AccountController {

  @Autowired
  AccountDao accountDao;

  @RequestMapping(value = "/list", method = RequestMethod.GET)
  public List<Account> getAccounts() {
    return accountDao.findAll();
  }

  @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  public Account getAccountById(@PathVariable("id") int id) {
    return accountDao.findOne(id);
  }

  @RequestMapping(value = "/{id}", method = RequestMethod.PUT)
  public String updateAccount(@PathVariable("id") int id, @RequestParam(value = "name", required = true) String name,
                @RequestParam(value = "money", required = true) double money) {
    Account account = new Account();
    account.setMoney(money);
    account.setName(name);
    account.setId(id);
    Account account1 = accountDao.saveAndFlush(account);

    return account1.toString();

  }

  @RequestMapping(value = "", method = RequestMethod.POST)
  public String postAccount(@RequestParam(value = "name") String name,
               @RequestParam(value = "money") double money) {
    Account account = new Account();
    account.setMoney(money);
    account.setName(name);
    Account account1 = accountDao.save(account);
    return account1.toString();

  }


}

通过postman请求测试,代码已经全部通过测试。

源码下载:https://github.com/forezp/SpringBootLearning

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# spring  # boot  # jpa  # SpringBoot  # 整合JPA  # springboot整合JPA过程解析  # SpringBoot整合JPA数据源方法及配置解析  # 详解SpringBoot是如何整合JPA的  # Springboot整合JPA配置多数据源流程详解  # SpringBoot整合JPA框架实现过程讲解  # 使用SpringBoot整合Jpa的过程详解  # SpringBoot整合JPA详细代码实例  # 来实现  # 的是  # 而不是  # 是一个  # 几个  # 在这个  # 就能  # 一是  # 并将  # 很强  # 实体类  # 特有的  # 应该说  # 重启  # 数据库中  # 开发人员  # 自动生成  # 无人能  # 大家多多  # 源码下载 


相关文章: 企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  如何确保FTP站点访问权限与数据传输安全?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  建站主机选购指南与交易推荐:核心配置解析  专业商城网站制作公司有哪些,pi商城官网是哪个?  如何挑选高效建站主机与优质域名?  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  如何用西部建站助手快速创建专业网站?  山东网站制作公司有哪些,山东大源集团官网?  建站之星伪静态规则如何正确配置?  内网网站制作软件,内网的网站如何发布到外网?  建站三合一如何选?哪家性价比更高?  html制作网站的步骤有哪些,iapp如何添加网页?  ,想在网上投简历,哪几个网站比较好?  如何通过NAT技术实现内网高效建站?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  设计网站制作公司有哪些,制作网页教程?  北京专业网站制作设计师招聘,北京白云观官方网站?  Android滚轮选择时间控件使用详解  C++如何编写函数模板?(泛型编程入门)  如何在自有机房高效搭建专业网站?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  如何快速查询网址的建站时间与历史轨迹?  内部网站制作流程,如何建立公司内部网站?  定制建站流程解析:需求评估与SEO优化功能开发指南  非常酷的网站设计制作软件,酷培ai教育官方网站?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  制作农业网站的软件,比较好的农业网站推荐一下?  如何选择高性价比服务器搭建个人网站?  seo网站制作优化,网站SEO优化步骤有哪些?  linux top下的 minerd 木马清除方法  建站之星导航如何优化提升用户体验?  如何通过智能用户系统一键生成高效建站方案?  如何通过建站之星自助学习解决操作问题?  C#怎么创建控制台应用 C# Console App项目创建方法  已有域名和空间如何搭建网站?  威客平台建站流程解析:高效搭建教程与设计优化方案  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  网站制作软件有哪些,制图软件有哪些?  如何在阿里云购买域名并搭建网站?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  制作旅游网站html,怎样注册旅游网站?  如何在腾讯云服务器快速搭建个人网站?  如何通过西部建站助手安装IIS服务器?  太原网站制作公司有哪些,网约车营运证查询官网?  定制建站策划方案_专业建站与网站建设方案一站式指南  网站代码制作软件有哪些,如何生成自己网站的代码? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。