当前位置: 首页 > news >正文

wordpress移动端页面模板文山seo公司

wordpress移动端页面模板,文山seo公司,票付通app下载,如何通过ftp上传网站上次使用的是JdbcTemplate实现的,是比较老的方式,重新用spring boot data jdbc和jdbc client 实现一遍。也比较一下这几种的编码差异。数据库方面JAVA给了太多选择,反而不好选了。 上次就试图直接用: public interface UserRepo…

上次使用的是JdbcTemplate实现的,是比较老的方式,重新用spring boot data jdbc和jdbc client 实现一遍。也比较一下这几种的编码差异。数据库方面JAVA给了太多选择,反而不好选了。

上次就试图直接用:

public interface UserRepository extends CrudRepository<User, Long> {@Query("SELECT u.username, p.address, p.phoneNumber " +"FROM users u JOIN profiles p ON u.profileId = p.id " +"ORDER BY p.id")Page<UserProfileDTO> findUsersWithProfiles(Pageable pageable);

直接就报错了,才改为了jdbcTemplate.

这次改了:

@Repository
public interface AuthorBookRepository extends CrudRepository<Author, Integer> {@Query("SELECT a.id AS author_id, a.name AS author_name, b.id AS book_id, b.title AS book_title " +"FROM Author a JOIN Book b ON a.id = b.author_id " +"ORDER BY a.id " +"LIMIT :limit OFFSET :offset")List<AuthorBook> findAllAuthorsWithBooks(int limit, int offset);
}

注意有个坑:SQL语法错误引起的,特别是在ORDER BYLIMIT子句中使用了占位符?。在SQL中,ORDER BY子句不能使用占位符来指定列名和排序方向。我们需要在代码中动态构建SQL语句来解决这个问题。--这里就直接写,不用占位符了。

service:

@Service
public class AuthorBookService {@Autowiredprivate AuthorBookRepository authorBookRepository;public List<AuthorBook> getAuthorsWithBooks(int page, int size) {int offset = page * size;return authorBookRepository.findAllAuthorsWithBooks(size, offset);}
}

controller

@GetMapping("/authors-books")public ModelAndView getAuWithBooks(@RequestParam(defaultValue = "1") int page,@RequestParam(defaultValue = "3") int size) {List<AuthorBook> authorsWithBooks = authorBookService.getAuthorsWithBooks(page, size);ModelAndView modelAndView = new ModelAndView("authors-books");modelAndView.addObject("authorBooks", authorsWithBooks);modelAndView.addObject("page", page);modelAndView.addObject("size", size);return modelAndView;}

验证通过,这个方法很好。

JDBC Client应该也行,没有试过。

package dev.zzz.repository;import dev.zzz.model.dto.AuthorBook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.jdbc.core.simple.JdbcClient;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class AuthorBookService {@Autowiredprivate AuthorBookRepository authorBookRepository;private final JdbcClient jdbcClient;public AuthorBookService(JdbcClient jdbcClient) {this.jdbcClient = jdbcClient;}public List<AuthorBook> getAuthorsWithBooks(int page, int size) {int offset = page * size;return authorBookRepository.findAllAuthorsWithBooks(size, offset);}public Page<AuthorBook> getAuthors(Pageable pageable) {int limit = pageable.getPageSize();long offset = pageable.getOffset();String baseSql="SELECT a.id AS author_id, a.name AS author_name, b.id AS book_id, b.title AS book_title FROM Author a JOIN Book b ON a.id = b.author_id ";String orderByClause = " ORDER BY a.id";String sql = baseSql + orderByClause + " LIMIT " + limit + " OFFSET " + offset;List<AuthorBook> authorBooks = jdbcClient.sql(sql).query(AuthorBook.class).list();String countQuery = "SELECT count(*) FROM  Author a JOIN Book b ON a.id = b.author_id";Long total = jdbcClient.sql(countQuery).query(Long.class).single();return new PageImpl<>(authorBooks, pageable, total);}}

相应的controller:

package dev.zzz.controller;import dev.zzz.model.dto.AuthorBook;
import dev.zzz.repository.AuthorBookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;@Controller
public class AuthorController {@Autowiredprivate AuthorBookService authorBookService;@GetMapping("/authors-books2")public String getAuthos(@RequestParam(defaultValue = "0") int page,@RequestParam(defaultValue = "10") int size,Model model) {Pageable pageable = PageRequest.of(page, size);Page<AuthorBook> authorsWithBooks = authorBookService.getAuthors(pageable);model.addAttribute("authorBooks",authorsWithBooks.getContent());model.addAttribute("page", page);model.addAttribute("size", size);return "authors-books";}}

http://www.yayakq.cn/news/204814/

相关文章:

  • 网站建设方案500字wordpress后台相应慢
  • 新手学做百度联盟网站类聚seo
  • 网站标题组合南宁网站seo公司
  • 湖州微网站建设专业网站建设 公司排名
  • 广州网站开发定制公司asp.net 网站开发项目化教程
  • 做电子杂志用什么网站wordpress 密码重置
  • 网站开发学的啥南阳网站推广费用
  • 在阿里巴巴上做网站需要什么条件浙江建设信息港网成绩查询
  • 西安网站开发托管代运营设计网站的合同
  • 网站中加入地图导航企业网站网页布局
  • 青岛网站建设哪家权威wordpress iis7.5 伪静态
  • 如何做网站的埋点家装行业网站建设
  • 五大搜索引擎 三大门户网站品牌网络营销案例
  • 哈尔滨快速建站专业定制广州网站建设优化方案
  • 如何评判一个网站建设的怎么样wordpress侧边栏添加分类
  • 阿里指数网站做网站服务器什么配置
  • 新手学建设网站简述嵌入式软件开发流程
  • 东莞五金网站建设做网站需要会什么语言
  • 做网站虚拟主机要多大网站建设_网站制作公司_捷创
  • wordpress主页定制江苏网站seo设计
  • 建设国家游戏网站wordpress 在线知识库
  • 企业网站鉴赏dw 做简单静态网站
  • 织梦网站地图模板下载网站编程薪资
  • 深圳制作网站搜行者seo特效制作软件
  • 可以做关键词优化的免费网站图片设计 五星级酒店网站
  • 邢台建站企业邮箱怎么在本地搭建网站
  • 门户网站简单模板网站面包屑如何做
  • 张家港网站定制注册公司怎么收费标准
  • 做校园网站代码网络公司网站设计维护合同
  • 做仪表宣传哪个网站好海外短视频软件