Spring boot连接数据库实现搜索功能
时间: 2024-03-15 11:23:19 浏览: 94
springboot连接数据库
首先需要在Spring Boot项目中添加对数据库的依赖,比如使用MySQL数据库可以添加如下依赖:
```xml
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
```
然后在配置文件中配置数据库连接信息,比如:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/db_name
spring.datasource.username=root
spring.datasource.password=root
```
其中 `db_name` 是数据库名称,`root` 是数据库用户名和密码。
接着需要定义一个数据访问对象(DAO)来操作数据库,可以使用Spring Data JPA简化此过程。定义一个实体类,如:
```java
@Entity
@Table(name = "book")
public class Book {
@Id
private Long id;
private String title;
private String author;
//其他属性和方法
}
```
然后定义一个BookRepository接口,可以继承JpaRepository来继承Spring Data JPA提供的基本CRUD操作:
```java
public interface BookRepository extends JpaRepository<Book, Long> {
}
```
现在就可以在业务逻辑层中使用BookRepository来操作数据库了。比如实现一个简单的搜索功能,可以根据关键字模糊查询书籍的标题和作者:
```java
@Service
public class BookService {
@Autowired
private BookRepository bookRepository;
public List<Book> search(String keyword) {
String likeKeyword = "%" + keyword + "%";
return bookRepository.findByTitleLikeOrAuthorLike(likeKeyword, likeKeyword);
}
}
```
这里使用了Spring Data JPA提供的按标题或作者模糊查询的方法。最后在Controller中将搜索结果返回给前端即可。
```java
@RestController
@RequestMapping("/books")
public class BookController {
@Autowired
private BookService bookService;
@GetMapping("/search")
public List<Book> search(@RequestParam String keyword) {
return bookService.search(keyword);
}
}
```
这样就实现了一个简单的搜索功能。当然,还可以结合其他技术,如Elasticsearch、Solr等来实现更高级的搜索功能。
阅读全文