SpringBoot学习笔记

Spring-Data-Jpa,其中JPA(Java Persistence API)定义了一系列对象持久化的标准,Spring-Data-Jpa就是Spring对Hibernate的整合,jpa简单到不敢想,因为对数据库的操作利用jpa来实现的话全程不用写一句SQL语句,但与此同此,应该也会带来性能损失。下面看Demo:
pom配置如下:

<?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.hhu</groupId>
	<artifactId>girl</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>girl</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.7.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-web</artifactId>
		</dependency>

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

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

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

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

	</dependencies>

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


</project>

Spring的yml配置文件如下:

spring:
     profiles:
       active: dev
     datasource:
       driver-class-name: com.mysql.jdbc.Driver
       url: jdbc:mysql://localhost:3306/db_studentinfo
       username: root
       password: 921228
     jpa:
       hibernate:
         ddl-auto: update
       show-sql: true

 

 

写一个对数据库操作的接口,让其实现JpaRepository接口,一切操作将随之变得简单:

package com.hhu.girl;

import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

public interface GirlRepository extends JpaRepository<Girl, Integer>{
    //通过年龄查询,这是自定义的,其他的普通方法,jpa接口中都已经写好
    public List<Girl> findByAge(Integer age);
}

 

 

再写一个Controller即可,测试过程借用postman,

package com.hhu.girl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
public class GirlController {

    @Autowired
    private GirlRepository girlRepository;

    @Autowired
    private GirlService girlService;

    /*
        get获取girls列表
     */
    @GetMapping(value="/girls")
    public List<Girl> getGirls() {
        return girlRepository.findAll();
    }

    /*
    创建一个girl,PostMapping
     */
    @RequestMapping(value = "/girls", method = RequestMethod.POST)
    public Girl creteGirl(@RequestParam("age") Integer age,@RequestParam("cupSize") String cupSize) {
        Girl g = new Girl();
        g.setAge(age);
        g.setCupSize(cupSize);
        girlRepository.save(g);
        return g;
    }

    //查询一个Girl,GetMapping
    @RequestMapping(value = "/girls/{id}", method = RequestMethod.GET)
    public Girl searchGirl(@PathVariable("id") Integer id) {
        return girlRepository.findOne(id);
    }

    //根据年龄查询
    @RequestMapping(value="/girls/age/{age}", method = RequestMethod.GET)
    public List<Girl> searchByAge(@PathVariable("age") Integer age) {
        return girlRepository.findByAge(age);
    }

    //更新一个Girl,PutMapping
    @RequestMapping(value = "/girls/{id}", method = RequestMethod.PUT)
    public Girl updateGirl(@PathVariable("id") Integer id, @RequestParam("age") Integer age,  @RequestParam("cupSize") String cupSize) {
        Girl g = new Girl();
        g.setId(id);
        g.setAge(age);
        g.setCupSize(cupSize);
        return girlRepository.save(g);
    }

    //删除一个Girl,DeleteMapping
    @RequestMapping(value="/girls/{id}", method = RequestMethod.DELETE)
    public String deleteGirl(@PathVariable("id") Integer id) {
        girlRepository.delete(id);
        return "delete success! ";
    }

    @RequestMapping(value="/girls/insert2")
    public void insert2Girl() {
        girlService.insertTwo();
    }
}

 

posted @ 2020-11-01 08:57  康宇晗  阅读(76)  评论(0)    收藏  举报