前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringBoot整合Jpa

SpringBoot整合Jpa

作者头像
dalaoyang
发布于 2018-04-28 02:48:49
发布于 2018-04-28 02:48:49
1.5K00
代码可运行
举报
文章被收录于专栏:dalaoyangdalaoyang
运行总次数:0
代码可运行

上一篇介绍了springboot简单整合mybatis的教程。这一篇是介绍springboot简单整合jpa的教程。

由于jpa的功能强大,后续会继续写关于jpa的介绍已经使用,本文只是简单介绍一下它与springboot的整合。

jpa不需要像mybatis一样创建表,首先给大家看一下application.properties文件代码,其中包含了jpa的配置和数据库配置,尤其注意一下spring.jpa.hibernate.ddl-auto属性,代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
##端口号
server.port=8888



##数据库配置
##数据库地址
spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false
##数据库用户名
spring.datasource.username=root
##数据库密码
spring.datasource.password=root
##数据库驱动
spring.datasource.driver-class-name=com.mysql.jdbc.Driver


##validate  加载hibernate时,验证创建数据库表结构
##create   每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。
##create-drop        加载hibernate时创建,退出是删除表结构
##update                 加载hibernate自动更新数据库结构
##validate 启动时验证表的结构,不会创建表
##none  启动时不做任何操作
spring.jpa.hibernate.ddl-auto=create

##控制台打印sql
spring.jpa.show-sql=true

启动类application

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.dalaoyang;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringbootJpaApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootJpaApplication.class, args);
    }
}

pom文件大致和整合mybatis一样,只是把其中的mybatis改成了jpa,代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.dalaoyang</groupId>
    <artifactId>springboot_jpa</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>springboot_jpa</name>
    <description>springboot_jpa</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

实体类city,其中@Table中的name对应数据库中表的名称

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.dalaoyang.entity;

import javax.persistence.*;

/**
 * @author dalaoyang
 * @Description
 * @project springboot_learn
 * @package com.dalaoyang.Entity
 * @email 397600342@qq.com
 * @date 2018/4/7
 */
@Entity
@Table(name="city")
public class City {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int cityId;
    private String cityName;
    private String cityIntroduce;

    public City(int cityId, String cityName, String cityIntroduce) {
        this.cityId = cityId;
        this.cityName = cityName;
        this.cityIntroduce = cityIntroduce;
    }

    public City(String cityName, String cityIntroduce) {
        this.cityName = cityName;
        this.cityIntroduce = cityIntroduce;
    }

    public City() {
    }

    public int getCityId() {
        return cityId;
    }

    public void setCityId(int cityId) {
        this.cityId = cityId;
    }

    public String getCityName() {
        return cityName;
    }

    public void setCityName(String cityName) {
        this.cityName = cityName;
    }

    public String getCityIntroduce() {
        return cityIntroduce;
    }

    public void setCityIntroduce(String cityIntroduce) {
        this.cityIntroduce = cityIntroduce;
    }
}

然后就是jpa的重要地方,CityRepository,继承了JpaRepository, 由于本文只是简单介绍了jpa的简单功能,所以JpaRepository中内置的方法已经足够使用。

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.dalaoyang.repository;

import com.dalaoyang.entity.City;
import org.springframework.data.jpa.repository.JpaRepository;

/**
 * @author dalaoyang
 * @Description
 * @project springboot_learn
 * @package com.dalaoyang.Repository
 * @email 397600342@qq.com
 * @date 2018/4/7
 */
public interface CityRepository extends JpaRepository<City,Integer> {
}

最后是controller,里面和mybatis整合一样,方法上面写的就是对应的测试方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.dalaoyang.controller;

import com.dalaoyang.entity.City;
import com.dalaoyang.repository.CityRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author dalaoyang
 * @Description
 * @project springboot_learn
 * @package com.dalaoyang.controller
 * @email 397600342@qq.com
 * @date 2018/4/7
 */
@RestController
public class CityController {


    @Autowired
    private CityRepository cityRepository;


    //http://localhost:8888/saveCity?cityName=北京&cityIntroduce=中国首都
    @GetMapping(value = "saveCity")
    public String saveCity(String cityName,String cityIntroduce){
        City city = new City(cityName,cityIntroduce);
        cityRepository.save(city);
        return "success";
    }

    //http://localhost:8888/deleteCity?cityId=2
    @GetMapping(value = "deleteCity")
    public String deleteCity(int cityId){
        cityRepository.delete(cityId);
        return "success";
    }

    //http://localhost:8888/updateCity?cityId=3&cityName=沈阳&cityIntroduce=辽宁省省会
    @GetMapping(value = "updateCity")
    public String updateCity(int cityId,String cityName,String cityIntroduce){
        City city = new City(cityId,cityName,cityIntroduce);
        cityRepository.save(city);
        return "success";
    }

    //http://localhost:8888/getCityById?cityId=3
    @GetMapping(value = "getCityById")
    public City getCityById(int cityId){
        City city = cityRepository.findOne(cityId);
        return city;
    }
}

到这里启动项目就可以简单测试一下整合的效果了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-04-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
移动端性能测试必备工具PerfDog性能狗
在项目研发支持过程中,经历如上障碍和痛苦。我们决定做一个完全独立、简单易用,与APP版本、系统版本、系统平台无任何关系的性能平台。
WeTest质量开放平台团队
2020/09/01
2.8K0
WeTest明星工具-移动端性能测试PerfDog初探
在十一月初,腾讯就官宣了一则消息,腾讯WeTest明星工具-PerfDog面向全球发布。官宣介绍如下:https://wetest.qq.com/lab/view/475.html。我在看到该新闻时,有种大开眼界的感觉,移动端的性能测试原来可以这么简单。今天闲暇之余,来了一波初探,简单体验了一番。
WeTest质量开放平台团队
2020/09/08
1.3K0
PerfDog 下性能测试分析记录(Android)
最近做的项目需要和Unity做交互, Unity作为一款游戏引擎, 还是很耗性能的, 所以找了找性能测试的工具, 发现了腾讯的PerfDog, 记录一下使用心得。
WeTest质量开放平台团队
2020/11/24
1.5K0
PerfDog 下性能测试分析记录(Android)
PerfDog使用说明书
English User's Guide:https://bbs.perfdog.qq.com/article-detail.htmlid=7
WeTest质量开放平台团队
2020/12/08
2.6K0
APP性能测试—PerfDog
PerfDog是一个移动全平台Android/iOS性能测试、分析工具。可以快速定位分析性能问题。手机无需ROOT/越狱,手机硬件、游戏及应用APP也无需做任何修改,极简化即插即用。
清风穆云
2021/08/09
4.2K0
APP性能测试—PerfDog
初识PerfDog
小编最近刚接触了一款性价比较高的性能评测工具-PerfDog,这是腾讯旗下的一款移动全平台iOS/Android性能测试及指标分析工具平台,简而言之就是测试采集手机在运行App时的性能指标数据:FPS、Jank、FTime、CPU、GPU、Memory、Battery 、Network、CTemp等性能参数,从而快速定位分析App的性能问题,小编在这里主要介绍下相关名词含义、使用技巧及案例分析。
用户5521279
2020/12/11
3K0
初识PerfDog
【PerfDog专家课堂】APP&游戏需要关注Jank卡顿吗?
导语   本次技术干货分享主要是讲解PerfDog卡顿Jank定义、原理及影响。内容将分为五部分:FrameTime、FPS、流畅度、Jank、影响。从深层次分析在性能测试工作中这五部分起到的重要意义。 第一部分:FrameTime FrameTime 的定义:两帧画面间隔耗时(也可简单认为单帧渲染耗时)。 对于FrameTime和卡顿是否有关联?请看下图的案例图示:   从图中可看出画面中B帧在GPU渲染耗时(帧生成时间)大于显示器刷新间隔,占用两次显示器刷新耗时。也就是说有一次画面没刷新。当出现多
WeTest质量开放平台团队
2019/12/24
3.8K0
【PerfDog专家课堂】APP&游戏需要关注Jank卡顿吗?
APP&游戏需要关注Jank卡顿吗?
    本次技术干货分享主要是讲解PerfDog卡顿Jank定义、原理及影响。内容将分为五部分:FrameTime、FPS、流畅度、Jank、影响。从深层次分析在性能测试工作中这五部分起到的重要意义。
WeTest质量开放平台团队
2020/04/07
1.5K0
APP&游戏需要关注Jank卡顿吗?
实战PerfDog优化小游戏性能
背景: 我们的引擎是Egret,使用的是原生的EUI,转微信小游戏; 工程第一版出来后使用PerfDog测试一波数据。结果发现很多问题,本文主要分两部分
WeTest质量开放平台团队
2020/08/25
1.1K0
Android深入卡顿分析与实践
1、视觉惯性 视觉预期帧率,用户潜意识里认为下帧也应该是当前帧率刷新比如一直60帧,用户潜意识里认为下帧也应该是60帧率。刷新一直是25帧,用户潜意识里认为下帧也应该是25帧率。但是刷新如果是60帧一下跳变为25帧,扰乱用户视觉惯性。这个时候就会出现用户体验的卡顿感。
QQ音乐技术团队
2023/12/20
1.9K0
Android深入卡顿分析与实践
PerfDog测试腾讯视频、优酷、爱奇艺视频类小程序性能
自从经朋友介绍PerfDog这款移动端测试神器后就一直在使用它测试大型游戏的流程度,前两天使用腾讯视频追剧分享到微信时发现发现的链接直接进入腾讯视频的小程序中,试了多个视频软件皆是如此,于是想要试试用PerfDog测试一下各家视频小程序实际使用的性能到底如何。
WeTest质量开放平台团队
2020/05/18
1.3K0
PerfDog测试腾讯视频、优酷、爱奇艺视频类小程序性能
克魔助手 - iOS性能检测平台
众所周知,如今的用户变得越来越关心app的体验,开发者必须关注应用性能所带来的用户流失问题。目前危害较大的性能问题主要有:闪退、卡顿、发热、耗电快、网络劫持等,但是做过iOS开发的人都知道,在开发过程中我们没有一个很直观的工具可以实时的知道开发者写出来的代码会不会造成性能问题,虽然Xcode里提供了耗电量检测、内存泄漏检测等工具,但是这些工具使用效果并不理想(如Leak无法发现循环引用造成的内存泄漏)。所以这篇文章主要是介绍一款实时监控app各项性能指标的工具,包括CPU占用率、内存使用量、内存泄漏、FPS、卡顿检测,并且会分析造成这些性能问题的原因。
爱学iOS的小麦子
2024/02/02
3340
Perfdog玩转内存泄漏
最近QC同学在跑游戏的过程中发现玩的时间久了游戏会发生闪退,经过搜集信息后排除了功能性bug的
WeTest质量开放平台团队
2020/06/30
8220
Perfdog玩转内存泄漏
腾讯游戏性能实战案例分享之帧率陡变
 在最近一次游戏性能专项测试过程中发现帧率陡降,开发同学分析源代码堆栈信息,折腾了很久一直无法定位原因,最终定位到原来是手机发热降频引起。
WeTest质量开放平台团队
2020/04/07
6500
腾讯游戏性能实战案例分享之帧率陡变
Android性能优化-渲染优化
我们在开发的过程中,可能经常会遇到测试的一些反馈,就是APP运行卡顿的问题。我们通常所讲的卡顿问题都是因为渲染掉帧的问题引起视觉上的卡顿感。所以了解渲染机制,我们在项目的开发过程中,可以有意识的少挖坑。同时要打造一款精品的应用,注意渲染优化也是非常重要的一件事情。
Anymarvel
2018/10/22
1.5K0
Android性能优化-渲染优化
腾讯游戏性能实战案例分享之帧率陡变
导语 在最近一次游戏性能专项测试过程中发现帧率陡降,开发同学分析源代码堆栈信息,折腾了很久一直无法定位原因,最终定位到原来是手机发热降频引起。 有经验一看完整的性能数据,基本一眼都能看出问题原因。需要强调一点:分析问题需要整体数据联动分析,单独看某单一信息是没是意义的。这个案例很典型,所以将本次性能实战经验分析出来,,希望对测试或者开发同学有些帮助。 一月一度的游戏性能专项回归测试过程中,我们在Galaxy S9 Plus手机上测试发现,帧率出现陡降问题,非常有规律的:进入游戏玩一段时间帧率FPS出现缓慢
腾讯Bugly
2019/12/16
3.6K0
腾讯游戏性能实战案例分享之帧率陡变
【PerfDog专家课堂】腾讯游戏性能实战案例分享之帧率陡变
导语   在最近一次游戏性能专项测试过程中发现帧率陡降,开发同学分析源代码堆栈信息,折腾了很久一直无法定位原因,最终定位到原来是手机发热降频引起。   有经验一看完整的性能数据,基本一眼都能看出问题原因。需要强调一点:分析问题需要整体数据联动分析,单独看某单一信息是没是意义的。这个案例很典型,所以将本次性能实战经验分析出来,希望对测试或者开发同学有些帮助。   一月一度的游戏性能专项回归测试过程中,我们在Galaxy S9 Plus手机上测试发现,帧率出现陡降问题,非常有规律的:进入游戏玩一段时间帧率
WeTest质量开放平台团队
2019/12/27
1.2K0
【PerfDog专家课堂】腾讯游戏性能实战案例分享之帧率陡变
PerfDog发布全新指标,为游戏量身打造
近日,移动性能测试工具Perfdog正式发布了V7.1版,迎来了“2022年的首次重大版本更新”,针对游戏性能评估创新发布全新指标稳帧指数Smooth、微小卡顿SmallJank等。同时,新版本独家新增安卓系统GPU、Battery、NPU温度、帧能耗指标FPower等众多内容,致力于为用户提供更便捷、更高效、更准确的测试体验。接下来,让我们一起看看具体的更新内容。 PerfDog 7.1版本更新内容速览 PerfDog 7.1版本现已上线,还没有体验的小伙伴们点击文末“阅读原文”前往PerfDog官网
WeTest质量开放平台团队
2022/05/16
1K0
PerfDog发布全新指标,为游戏量身打造
Android 性能优化典范
2015年伊始,Google发布了关于Android性能优化典范的专题, 一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个 方面展开,Android的渲染机制,内存与GC,电量优化。下面是对这些问题和建议的总结梳理。
Android架构
2019/07/09
1.1K0
直播回顾 | 移动产品质量管理如何实践?听听行业大咖怎么说(附直播回放)
6月24日,腾讯WeTest质量云首场专题直播《十年磨一剑,匠心铸造PerfDog》圆满收官。 本次直播,WeTest邀请MTSC中国互联网测试开发大会主席、腾讯资深测试技术总监、明星性能工具PerfDog创始人曹文升(Awen)老师,为大家揭秘和全面解读了明星产品背后的起源、诞生、成长故事,PerfDog创新指标的涵义与作用,并与线上观众共同探讨了移动产品质量管理的的前沿技术与应用实践。 下面让我们一起来回顾,Awen老师在直播过程中的精彩演讲吧。 01 厚积薄发 十年匠心打磨 PerfDog团队从20
WeTest质量开放平台团队
2022/07/12
7440
直播回顾 | 移动产品质量管理如何实践?听听行业大咖怎么说(附直播回放)
推荐阅读
相关推荐
移动端性能测试必备工具PerfDog性能狗
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档