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();
}
}

浙公网安备 33010602011771号