springboot项目中:怎么实现将mysql里表中带有a1,b1,c1的数据查出来
时间: 2024-05-05 15:19:44 浏览: 9
在Spring Boot项目中,如果需要将MySQL表中带有a1、b1、c1的数据查出来,可以使用以下两种方法:
1.使用@Query注解
可以在Repository接口中使用@Query注解,使用自定义的SQL语句查询满足条件的数据。具体代码如下:
```java
@Repository
public interface MyRepository extends JpaRepository<MyEntity, Long> {
@Query("SELECT e FROM MyEntity e WHERE e.columnName LIKE '%a1%' OR e.columnName LIKE '%b1%' OR e.columnName LIKE '%c1%'")
List<MyEntity> findByColumnNameContainingA1OrB1OrC1();
}
```
其中,MyEntity是实体类,columnName是实体类中的一个属性名,如下所示:
```java
@Entity
@Table(name = "my_table")
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "column_name")
private String columnName;
// getter和setter省略
}
```
2.使用JPA的命名查询
可以在Repository接口中定义一个命名查询,使用JPA的查询语言查询满足条件的数据。具体代码如下:
```java
@Repository
public interface MyRepository extends JpaRepository<MyEntity, Long> {
List<MyEntity> findByColumnNameContaining(String a1, String b1, String c1);
}
```
其中,MyEntity是实体类,columnName是实体类中的一个属性名,如下所示:
```java
@Entity
@Table(name = "my_table")
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "column_name")
private String columnName;
// getter和setter省略
}
```
在Service层中调用该方法时,可以传入a1、b1、c1的值,如下所示:
```java
@Service
public class MyService {
@Autowired
private MyRepository myRepository;
public List<MyEntity> findByColumnNameContainingA1OrB1OrC1() {
String a1 = "%a1%";
String b1 = "%b1%";
String c1 = "%c1%";
return myRepository.findByColumnNameContaining(a1, b1, c1);
}
}
```