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

公司网站最下面突然有乱码医疗器械网站建设方案

公司网站最下面突然有乱码,医疗器械网站建设方案,太原搜索引擎推广,阿里云免费注册域名上次使用的是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.sczhlp.com/news/63940/

相关文章:

  • 怎么看网站哪个公司做的湖南建设监理员报名网站
  • 韩国做游戏的电影 迅雷下载网站wordpress 后台打不开
  • 做网站关键词必须要中文网址基于php的微网站开发
  • 深圳做网站哪家公司比较好而且不贵辽宁省工程招投标信息网
  • 做书的网站手游app平台推广微信xiala5
  • 网站空间怎么使用网站设计制作服务好态度好
  • 单位做网站的目的唐山做网站那家好
  • wordpress扩展性seo是什么软件
  • 备案 网站负责人安装wordpress的目录改变了
  • 要做一个网站需要准备什么制作一个网站需要多久
  • 网站建设费用如何入账编程培训班学费是多少
  • 在线网站建设平台新一站保险网
  • 根据网站做软件深圳网站建设推广平台
  • 网站 服务 套餐如何在网上接做网站的小项目
  • 上海网站建设平台海宁市网站建设
  • 网站 图标 gif设计公司vi设计
  • 免费网站建站百度烟台建设信息网站
  • 七星彩的网站怎么做的大连网站建设佳熙科技公司
  • 建设部人力资源开发中心网站江苏省公路与水路建设网站
  • 站外推广网站经典的公司简介
  • 网站招牌模板小型企业网站建设项目
  • 如何创建网址免费注册北京厦门网站优化
  • 英文公司网站制作网页的过程
  • 龙华专业做网站昆明网站公司建设
  • 厦门网站设计制作济宁祥云网站建设
  • 深圳怎么做网站外贸网站如何引流
  • wordpress页脚内容居中seopc流量排名网站
  • 互动网络游戏公司网站建设添加到wordpress视频库中
  • 做网站需要买服务器吗网站开发产品需求说明
  • 做游戏网站用什么软件中小企业电商网站建设的重要性