编写访问数据库表添加记录和无条件查询的SpringBoot应用程序求得price的平均值控制器以GET方法响应如下路径http://localhost:8080/books/priceavg的web提交,返回一个整数。
时间: 2024-01-22 19:02:14 浏览: 79
好的,你可以按照以下步骤来编写一个访问数据库表添加记录和无条件查询的 Spring Boot 应用程序并且求得 price 的平均值控制器以 GET 方法响应 http://localhost:8080/books/priceavg 的 web 提交:
1. 首先,在 pom.xml 中添加 Spring Boot、JPA 和 MySQL 的依赖:
```xml
<dependencies>
<!-- Spring Boot dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- JPA dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- MySQL dependencies -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
```
2. 在 application.properties 中添加 MySQL 数据库的连接信息:
```
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=123456
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
```
3. 创建一个 Book 实体类,表示数据库中的 books 表:
```java
@Entity
@Table(name = "books")
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;
private String author;
private Double price;
// getters and setters
}
```
4. 创建一个 BookRepository 接口,继承自 JpaRepository 接口,用于操作 Book 实体类对应的数据库表:
```java
@Repository
public interface BookRepository extends JpaRepository<Book, Long> {
}
```
5. 创建一个 BookController 类,用于处理 HTTP 请求:
```java
@RestController
@RequestMapping("/books")
public class BookController {
@Autowired
private BookRepository bookRepository;
@GetMapping("/priceavg")
public Integer getPriceAvg() {
List<Book> books = bookRepository.findAll();
Double sum = books.stream().mapToDouble(Book::getPrice).sum();
return (int) Math.round(sum / books.size());
}
@PostMapping
public Book addBook(@RequestBody Book book) {
return bookRepository.save(book);
}
}
```
6. 运行应用程序,并向 http://localhost:8080/books 发送 POST 请求,添加一条书籍记录:
```
POST /books HTTP/1.1
Host: localhost:8080
Content-Type: application/json
{
"title": "The Great Gatsby",
"author": "F. Scott Fitzgerald",
"price": 19.99
}
```
7. 向 http://localhost:8080/books/priceavg 发送 GET 请求,获取 price 的平均值:
```
GET /books/priceavg HTTP/1.1
Host: localhost:8080
```
这样,你就可以编写一个访问数据库表添加记录和无条件查询的 Spring Boot 应用程序,并且求得 price 的平均值控制器以 GET 方法响应 http://localhost:8080/books/priceavg 的 web 提交返回一个整数了。
阅读全文