iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot2如何实现集成JPA持久层框架、简化数据库操作
  • 771
分享到

SpringBoot2如何实现集成JPA持久层框架、简化数据库操作

2023-06-02 13:06:36 771人浏览 薄情痞子
摘要

这篇文章主要为大家展示了“SpringBoot2如何实现集成JPA持久层框架、简化数据库操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“springBoot2如何实现集成JPA持久层框架、简化

这篇文章主要为大家展示了“SpringBoot2如何实现集成JPA持久层框架、简化数据库操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“springBoot2如何实现集成JPA持久层框架、简化数据库操作”这篇文章吧。

一、JAP框架简介

JPA(Java Persistence api)意即Java持久化API,是Sun官方在jdk5.0后提出的Java持久化规范。主要是为了简化持久层开发以及整合ORM技术,结束Hibernate、TopLink、JDO等ORM框架各自为营的局面。JPA是在吸收现有ORM框架的基础上发展而来,易于使用,伸缩性强。

二、与SpringBoot2整合

1、核心依赖

<!-- JPA框架 --><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-data-jpa</artifactId></dependency>

2、配置文件

spring:  application:    name: node09-boot-jpa  datasource:    url: jdbc:mysql://localhost:3306/data_jpa?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true    username: root    passWord: root    driver-class-name: com.Mysql.jdbc.Driver  jpa:    hibernate:      ddl-auto: update    show-sql: true

ddl-auto几种配置说明
1)create
每次加载hibernate时都删除上一次的生成的表,然后根据bean类重新来生成新表,容易导致数据丢失,(建议首次创建时使用)。
2)create-drop
每次加载hibernate时根据bean类生成表,但是sessionFactory一关闭,表就自动删除。
3)update
第一次加载hibernate时根据bean类会自动建立起表的结构,以后加载hibernate时根据bean类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。
4)validate
每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。

3、实体类对象

就是根据这个对象生成的表结构。

@Table(name = "t_user")@Entitypublic class User {    @Id    @GeneratedValue    private Integer id;    @Column    private String name;    @Column    private Integer age;    // 省略 GET SET}

4、JPA框架的用法

定义对象的操作的接口,继承JpaRepository核心接口。

import com.boot.jpa.entity.User;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.data.jpa.repository.Query;import org.springframework.data.repository.query.Param;import org.springframework.stereotype.Repository;@Repositorypublic interface UserRepository extends JpaRepository<User,Integer> {    // 但条件查询    User findByAge(Integer age);    // 多条件查询    User findByNameAndAge(String name, Integer age);    // 自定义查询    @Query("from User u where u.name=:name")    User findSql(@Param("name") String name);}

5、封装一个服务层逻辑

import com.boot.jpa.entity.User;import com.boot.jpa.repository.UserRepository;import org.springframework.stereotype.Service;import javax.annotation.Resource;@Servicepublic class UserService {    @Resource    private UserRepository userRepository ;    // 保存    public void addUser (User user){        userRepository.save(user) ;    }    // 根据年龄查询    public User findByAge (Integer age){        return userRepository.findByAge(age) ;    }    // 多条件查询    public User findByNameAndAge (String name, Integer age){        return userRepository.findByNameAndAge(name,age) ;    }    // 自定义SQL查询    public User findSql (String name){        return userRepository.findSql(name) ;    }    // 根据ID修改    public void update (User user){        userRepository.save(user) ;    }    //根据id删除一条数据    public void deleteStudentById(Integer id){        userRepository.deleteById(id);    }}

三、测试代码块

import com.boot.jpa.JpaApplication;import com.boot.jpa.entity.User;import com.boot.jpa.service.UserService;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import javax.annotation.Resource;@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest(classes = JpaApplication.class)public class UserJpaTest {    @Resource    private UserService userService ;    @Test    public void addUser (){        User user = new User() ;        user.setName("知了一笑");        user.setAge(22);        userService.addUser(user);        User user1 = new User() ;        user1.setName("cicada");        user1.setAge(23);        userService.addUser(user1);    }    @Test    public void findByAge (){        Integer age = 22 ;        // User{id=3, name='知了一笑', age=22}        System.out.println(userService.findByAge(age));    }    @Test    public void findByNameAndAge (){        System.out.println(userService.findByNameAndAge("cicada",23));    }    @Test    public void findSql (){        // User{id=4, name='cicada', age=23}        System.out.println(userService.findSql("cicada"));    }    @Test    public void update (){        User user = new User() ;        // 如果这个主键不存在,会以主键自增的方式新增入库        user.setId(3);        user.setName("哈哈一笑");        user.setAge(25);        userService.update(user) ;    }    @Test    public void deleteStudentById (){        userService.deleteStudentById(5) ;    }}

以上是“SpringBoot2如何实现集成JPA持久层框架、简化数据库操作”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: SpringBoot2如何实现集成JPA持久层框架、简化数据库操作

本文链接: https://www.lsjlt.com/news/230116.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作