Springboot jpa使用sum()函数返回结果如何接收

1、需求

我的需求是统计域名以及域名出现的次数。

之前使用springboot jpa都是把数据库中的表跟实体类绑定,创建继承JpaRepository的接口。如下:

@Repository
public interface UrlsRepository extends JpaRepository<Urls, String> {

    Optional<Urls> findById(Integer id);
}

但是对于这种查询却无法绑定到原有的实体类。那么改怎么解决这种需求呢?

2、解决方法一

使用Object[] 数组接收每一行数据,用List<Object[]>接收查询结果。

repository中的写法

    @Query(value = "SELECT domain,sum(visit_count) from Urls GROUP BY domain ORDER BY sum(visit_count) desc", nativeQuery = true)
    List<Object[]> findDomainAndCount();
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用Spring Boot JPA连接SQLite数据库的步骤: 1. 添加依赖 在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.xerial</groupId> <artifactId>sqlite-jdbc</artifactId> <version>3.30.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> ``` 2. 配置数据源 在application.properties文件中添加以下配置: ```properties spring.datasource.url=jdbc:sqlite:/path/to/your/db/file.db spring.datasource.driver-class-name=org.sqlite.JDBC spring.jpa.database-platform=org.hibernate.dialect.SQLiteDialect ``` 其中,`/path/to/your/db/file.db`是你的SQLite数据库文件路径。 3. 创建实体类 创建一个实体类,使用`@Entity`注解标记,并使用`@Id`注解标记主键字段。 ```java @Entity public class User { @Id private Long id; private String name; private Integer age; // 省略getter和setter方法 } ``` 4. 创建Repository 创建一个Repository接口,继承`JpaRepository`,并指定实体类和主键类型。 ```java public interface UserRepository extends JpaRepository<User, Long> { } ``` 5. 使用Repository 在需要使用Repository的地方注入`UserRepository`,即可使用其中的方法进行数据库操作。 ```java @Service public class UserService { @Autowired private UserRepository userRepository; public User getUserById(Long id) { return userRepository.findById(id).orElse(null); } public List<User> getAllUsers() { return userRepository.findAll(); } public User saveUser(User user) { return userRepository.save(user); } public void deleteUserById(Long id) { userRepository.deleteById(id); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值