springboot入门_数据库访问_jpa

本文记录使用jpa访问数据库。

创建spring boot项目,并在pom文件中添加相应的依赖包。

 1 <dependency>
 2             <groupId>org.springframework.boot</groupId>
 3             <artifactId>spring-boot-starter-data-jpa</artifactId>
 4         </dependency>
 5         <dependency>
 6             <groupId>org.springframework.boot</groupId>
 7             <artifactId>spring-boot-starter-web</artifactId>
 8         </dependency>
 9
10         <dependency>
11             <groupId>mysql</groupId>
12             <artifactId>mysql-connector-java</artifactId>
13             <scope>runtime</scope>
14         </dependency>

在resources路径下创建yml文件,并配置数据库连接信息,JPA默认使用hibernate做的实现,所以也需要配置hibernate个别参数项,yml文件如下:

 1 spring:
 2   datasource:
 3     url: jdbc:mysql://localhost:3306/test
 4     username: root
 5     password: 123456
 6   jpa:
 7     show-sql: true
 8     hibernate:
 9       ddl-auto: update
10     database: mysql

创建实体类,与数据库表做映射

 1 @Entity
 2 @Table(name="t_city")
 3 public class City {
 4
 5     @Id
 6     @GeneratedValue(strategy = GenerationType.AUTO)
 7     private Integer id;
 8     @Column(name = "city_code", length = 50)
 9     private String cityCode;
10     @Column(name = "city_name", length = 50)
11     private String cityName;
12     //省略get和set方法
13 }

创建dao接口,并继承JpaRepository

 1 @Repository
 2 public interface CityRepository extends JpaRepository<City, Long> {
 3
 4     /**
 5      * 查询所有
 6      * @return
 7      */
 8     List<City> findAll();
 9
10     /**
11      * 根据ID查询
12      * @param id
13      * @return
14      */
15     @Query("from City where id = :id")
16     City findById(@Param("id") Integer id);
17
18     @Transactional
19     @Query("update City set city_name=?1 where city_code = ?2")
20     @Modifying
21     int update(String name, String code);
22
23 }

创建一个service

 1 @Service
 2 public class CityService {
 3
 4     @Autowired
 5     private CityRepository cityRepository;
 6
 7     public int add(City city){
 8         Object obj = cityRepository.save(city);
 9         System.out.println(obj.toString());
10         return 1;
11     }
12
13     public void delete(long id){
14         cityRepository.deleteById(id);
15     }
16
17     public void update(String name, String code){
18         cityRepository.update(name, code);
19     }
20
21     public List<City> findAllCity(){
22         return cityRepository.findAll();
23     }
24
25     public City findById(Integer id){
26         return cityRepository.findById(id);
27     }
28
29 }

创建controller,提供api方法测试

@RestController
@RequestMapping("data/jpa/city")
public class CityController {

    @Autowired
    private CityService cityService;

    @PutMapping
    public String add(@RequestBody City city){
        System.out.println(city.toString());
        cityService.add(city);
        return "success";
    }

    @DeleteMapping(value="/{id}")
    public String delete(@PathVariable String id){
        cityService.delete(Long.valueOf(id));
        return "success";
    }

    @PostMapping
    public String update(@RequestBody City city){
        cityService.update(city.getCityName(), city.getCityCode());
        return "success";
    }

    @GetMapping("/{id}")
    public City findById(@PathVariable("id") int id){
        City city = cityService.findById(id);
        return city;
    }

    @GetMapping("/list")
    public List<City> findAllCity(){
        List<City> cityList = cityService.findAllCity();
        return cityList;
    }

}

对于一般的增删改查方法,我们也可在再dao中继承CrudRepository来实现对应的方法。一般在开发中,我们的业务也会用到分页排序等功能,这JPA也做了支持,我们可以通过继承PagingAndSortingRepository来实现。

原文地址:https://www.cnblogs.com/wlzq/p/9697325.html

时间: 2024-08-30 02:34:12

springboot入门_数据库访问_jpa的相关文章

springboot入门_数据库访问_jdbcTemplate

本文记录下在springboot项目中使用jdbcTemplate访问数据库. 创建springboot项目,添加依赖,pom文件如下: 1 <!--web 依赖--> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-web</artifactId> 5 </dependency>

SpringBoot入门 (五) 数据库访问之spring data jpa

本文记录学习使用spring data jpa访问数据库 一 什么是Spring Data JPA JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java开发人员提供了一种对象.关联映射工具来管理Java应用中的关系数据.主要是为了简化现有的持久化开发工作和整合ORM技术,对不同的ORM框架提供统一的规范标准. Spring Data JPA 是Spring基于Hibernate框架和JPA(Java Persistence API)规范的基础上封装

培训教程_数据库访问

oracle数据库访问 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Configuration; using System.Data.OracleClient; using System.Data; /// <summary> ///sqlHelper 的摘要说明 /// </summary> public class Oracle

SpringBoot入门 (七) Redis访问操作

本文记录学习在SpringBoot中使用Redis. 一 什么是Redis Redis 是一个速度非常快的非关系数据库(Non-Relational Database),它可以存储键(Key)与 多种不同类型的值(Value)之间的映射(Mapping),可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展写性能.Redis主要有以下几个优点: 1 性能极高,它每秒可执行约 100,000 个 Set 以及约 100,000 个 Get 操作: 2 

springboot入门_模板

springboot中已经不推荐使用jsp,而是推荐使用模板,如freemarker,thymeleaf等,本文记录在sprigboot中使用模板. 创建一个maven的springboot工程, freemarker,要使用freemarker模板需引入所需要的jar,pom.xml如下: 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XML

springboot入门_获取属性文件中的值

在上一篇文章中,记录了用springboot实现输出一个hello world到前台的程序,本文记录学习springboot读取属性文件中配置信息. 框架属性文件(application.properties) 创建一个springboot项目,并引入相关依赖,POM文件如下: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.or

SpringBoot入门基础

SpringBoot入门 (一) HelloWorld 一 什么是springboot springboot是一个全新的框架,它设计的目的简化spring项目的初始环境的搭建和开发,主要有以下几个特点: 1.简化初始配置 ,可与主流框架集成: 2.内置Servlet容器,无需在打War包: 3.使用了Starter(启动器)管理依赖并版本控制: 4.大量的自动配置,简化开发,方便集成第三方: 5.提供准生产环境运行时的监控,如指标,健康,外部配置等: 6.无需XML配置,减少冗余代码 . 未使用

SpringBoot数据库访问工具(JdbcTemplate、MyBatis、JPA、Hibernate)

SpringBoot数据库访问 关系型数据库访问(RDBMS) 采用JdbcTemplate.MyBatis.JPA.Hibernate等技术. 一.JdbcTemplate工具 1.在pom.xml添加boot-starter-jdbc定义<dependencies> 数据库驱动 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifac

SpringBoot数据库访问(一)--------关系型数据库访问(RDBMS)

关系型数据库访问(RDBMS) 采用JdbcTemplate.MyBatis.JPA.Hibernate等技术. 一.JdbcTemplate工具 在pom.xml添加boot-starter-jdbc定义 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1