Hive表的基本操作
Hive中的集合数据类型
Hive动态分区详解
hive中orc格式表的数据导入
Java通过jdbc连接hive
通过HiveServer2访问Hive
SpringBoot连接Hive实现自助取数
hive关联hbase表
Hiveudf使用方法
Hive基于UDF进行文本分词
Hive窗口函数rownumber的用法
数据仓库之拉链表关注公众号:大数据技术派,回复:资料,领取1024G资料。
我的博客地址:原文链接SpringBoot结合Thymeleaf实现分页,很方便。
项目结构
由于hibernate自动建表字符集为latin不能插入中文,故需要在application.properties中指定:spring.jpa.properties.hibernate.dialect=com.ikeguang.paging.config.MysqlConfig。
MysqlConfig.java代码: packagecom.ikeguang.paging.config; importorg.hibernate.dialect.MySQL5Dialect; importorg.springframework.stereotype.Component; /** *@Author:keguang *@Date:2019/7/169:58 *@version:v1.0.0 *@description:解决hibernate自动建表字符集为latin不能插入中文的问题。 */ @Component @SuppressWarnings("deprecation") publicclassMysqlConfigextendsMySQL5Dialect{ @Override publicStringgetTableTypeString(){ return"ENGINE=InnoDBDEFAULTCHARSET=utf8"; } }UserRepository.java代码
packagecom.ikeguang.paging.repository; importcom.ikeguang.paging.model.User; importorg.springframework.data.jpa.repository.JpaRepository; /** *@Author:keguang *@Date:2019/7/1810:23 *@version:v1.0.0 *@description: */ publicinterfaceUserRepositoryextendsJpaRepository<User,Long>{ UserfindById(longid); voiddeleteById(longid); }UserService代码
packagecom.ikeguang.paging.service; importcom.ikeguang.paging.model.User; importorg.springframework.data.domain.Page; /** *@Author:keguang *@Date:2019/7/1810:26 *@version:v1.0.0 *@description: */ publicinterfaceUserService{ Page<User>getUserList(intpageNum,intpageSize); UserfindUserById(longid); voidsave(Useruser); voidedit(Useruser); voiddelete(longid); } service实现层UserServiceImpl.java代码
packagecom.ikeguang.paging.service.impl; importcom.ikeguang.paging.model.User; importcom.ikeguang.paging.repository.UserRepository; importcom.ikeguang.paging.service.UserService; importorg.springframework.beans.factory.annotation.Autowired; importorg.springframework.data.domain.Page; importorg.springframework.data.domain.PageRequest; importorg.springframework.data.domain.Pageable; importorg.springframework.data.domain.Sort; importorg.springframework.stereotype.Service; /** *@Author:keguang *@Date:2019/7/1810:27 *@version:v1.0.0 *@description: */ @Service publicclassUserServiceImplimplementsUserService{ @Autowired privateUserRepositoryuserRepository; @Override publicPage<User>getUserList(intpageNum,intpageSize){ Sortsort=newSort(Sort.Direction.DESC,"id"); Pageablepageable=PageRequest.of(pageNum,pageSize,sort); Page<User>users=userRepository.findAll(pageable); returnusers; } @Override publicUserfindUserById(longid){ returnuserRepository.findById(id); } @Override publicvoidsave(Useruser){ userRepository.save(user); } @Override publicvoidedit(Useruser){ userRepository.save(user); } @Override publicvoiddelete(longid){ userRepository.deleteById(id); } }UserController.java代码
packagecom.ikeguang.paging.web; importcom.ikeguang.paging.model.User; importcom.ikeguang.paging.service.UserService; importorg.springframework.data.domain.Page; importorg.springframework.stereotype.Controller; importorg.springframework.ui.Model; importorg.springframework.web.bind.annotation.RequestMapping; importorg.springframework.web.bind.annotation.RequestParam; importjavax.annotation.Resource; importjava.util.Iterator; /** *@Author:keguang *@Date:2019/7/1810:29 *@version:v1.0.0 *@description: */ @Controller publicclassUserController{ @Resource UserServiceuserService; @RequestMapping("/") publicStringindex(){ return"redirect:/list"; } @RequestMapping("/list") publicStringlist(Modelmodel,@RequestParam(value="pageNum",defaultValue="0")intpageNum,@RequestParam(value="pageSize",defaultValue="2")intpageSize){ System.out.println("============================"); Page<User>users=userService.getUserList(pageNum,pageSize); System.out.println("总页数"+users.getTotalPages()); System.out.println("当前页是:"+pageNum); System.out.println("分页数据:"); Iterator<User>u=users.iterator(); while(u.hasNext()){ System.out.println(u.next().toString()); } model.addAttribute("users",users); return"user/list"; } @RequestMapping("/toAdd") publicStringtoAdd(){ return"user/userAdd"; } @RequestMapping("/add") publicStringadd(Useruser){ userService.save(user); return"redirect:/list"; } @RequestMapping("/toEdit") publicStringtoEdit(Modelmodel,Longid){ Useruser=userService.findUserById(id); model.addAttribute("user",user); return"user/userEdit"; } @RequestMapping("/edit") publicStringedit(Useruser){ userService.edit(user); return"redirect:/list"; } @RequestMapping("/delete") publicStringdelete(Longid){ userService.delete(id); return"redirect:/list"; } }主要配制了mysql数据源,数据库驱动com.mysql.cj.jdbc.Driver,对于mysql-connector-java用的6.0以上的,如果用com.mysql.jdbc.Driver,就会报错。
spring.datasource.url=jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=true spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver #表不存在则新建表 spring.jpa.properties.hibernate.hbm2ddl.auto=update spring.jpa.properties.hibernate.dialect=com.ikeguang.paging.config.MysqlConfig spring.jpa.show-sql=true spring.thymeleaf.cache=false这里用了bootstrap.css里面的样式。这里主要展示一下分页代码,前面的table主要装一个Pageable的N条数据,接着是一个add添加数据的按钮,最下面就是分页部分,主要有5部分:首页,上一页,中间页,下一页,尾页。
<!DOCTYPEhtml> <htmllang="en"xmlns:th="http://www.thymeleaf.org"> <head> <metacharset="UTF-8"/> <title>userList</title> <linkrel="stylesheet"th:href="@{/css/bootstrap.css}"></link> </head> <bodyclass="container"> <br/> <h1>用户列表</h1> <br/><br/> <div class="with:80%"> <tableclass="tabletable-hover"> <thead> <tr> <th>#</th> <th>userName</th> <th>passWord</th> <th>email</th> <th>nickName</th> <th>regTime</th> <th>Edit</th> <th>Delete</th> </tr> </thead> <tbody> <trth:each="user:${users}"> <thscope="row"th:text="${userStat.index+1}">1</th> <tdth:text="${user.userName}">neo</td> <tdth:text="${user.passWord}">Otto</td> <tdth:text="${user.email}">6</td> <tdth:text="${user.nickName}">6</td> <tdth:text="${user.regTime}">6</td> <td><ath:href="@{/toEdit(id=${user.id})}">edit</a></td> <td><ath:href="@{/delete(id=${user.id})}">delete</a></td> </tr> </tbody> </table> </div> <div class="form-group"> <div class="col-sm-2control-label"> <ahref="/toAdd"th:href="@{/toAdd}"class="btnbtn-info">add</a> </div> </div> <div class="modal-footerno-margin-top"> <ulclass="paginationpull-rightno-margin"> <!--首页--> <li> <ath:href="/list?pageNum=0">首页</a> </li> <!--上一页--> <lith:if="${users.hasPrevious()}"> <ath:href="/list?pageNum=+${users.previousPageable().getPageNumber()}"th:text="上一页"></a> </li> <!--中间页--> <lith:each="pageNum:${#numbers.sequence(0,users.getTotalPages()-1)}"> <ath:href="/list?pageNum=+${pageNum}"th:text="${pageNum+1}"th:if="${pageNumneusers.pageable.getPageNumber()}"></a> <ath:href="/list?pageNum=+${pageNum}"th:text="${pageNum+1}"th:if="${pageNumequsers.pageable.getPageNumber()}"th:style="font-weight:bold;background:#6faed9;"></a> </li> <!--下一页--> <lith:if="${users.hasNext()}"> <ath:href="/list?pageNum=+${users.nextPageable().getPageNumber()}"th:text="下一页"></a> </li> <!--尾页--> <li> <ath:href="/list?pageNum=+${users.getTotalPages()-1}">尾页</a> </li> </ul> </div> </body> </html>关注公众号:大数据技术派,回复:资料,领取1024G资料。
代码的Github地址:代码地址
本文内容总结:效果如下,后台代码,1.数据库Config,2.实体类Model,3.Jpa操作数据库,4.service层,5.Controller层,application.properties配置文件,模板文件,代码Github,
原文链接:https://www.cnblogs.com/data-magnifier/p/11511404.html