Java Web реализует функцию подкидки и делитесь ею со всеми следующими:
Используйте структуру: SSM
База данных: Oracle
Говоря о том, что запрос Oracle на странице гораздо сложнее, чем MySQL. Давайте кратко поговорим об этом здесь:
Запросите первые десять данных:
Выберите * Отказ (Выберите Rownum WN, RN. * OF (SELECT ID, TILE, CREATE_TIME AS CERENTIME, MUSICTOR, MUSICTITL
Грамматика сложнее.
С тем же результатом синтаксис MySQL: его можно решить с ограничением.
Выберите идентификатор, заголовок, Create_time как CreateTime, Musictor, Musictitlefrom krry_blog Заказ по create_time desclimit 0,5
Я не буду говорить о строительстве платформы SSM. Я подробно представил его в предыдущем блоге. Здесь я расскажу о функции реализации веб -страниц Java.
Используйте плагин JS: krry_page.js и jQuery
Уровень постоянства Mapper:
Blogmapper.java
Пакет com.krry.mapper; import java.util.hashmap; import java.util.list; import com.krry.entity.params;/** * * Mapper: Работая база данных * @author krry * @version 1.0.0 * */public Interface blogmapper {/** * @parum * @parum * @Return * @Return * @@pupirurn * @publicurn * @pupirurn * @publicurn * @publicurn * @publicurn * @pupirurn * @pupirurn * @pupirurn * @pupirurn * @pupirurn * @pupirur Список <hashmap <string, object >> findblogs (params params); / ** * Рассчитайте количество блогов * com.krry.dao.admin * Имя метода: countblogs * @author krry * @param params * @return int * @exception * @since 1.0.0 */ public long countblogs (); } Blogmapper.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapperspace = "com.mapper.brry.mapper.mapper.mapper.bper.brry.mapper.bperog.mapper.dtd"> <mapper = "mapperog.brry. <!-запрос на страницу всех информации в блоге-> <select id = "findblogs" refultype = "java.util.hashmap" parametertype = "params"> select * from (select rownum wn, rn. * From (select id, title, create_time as createme, мусульмант, musictle from krry order wher_time rn). #{pagesize} и wn> #{pageno} </select> <!-Запросить количество блогов-> <select id = "countbrogs" outdetype = "long"> select count (*) из krry_blog </select> </mapper>Сервисный бизнес -уровень:
Интерфейс класс: iblogservice.java
пакет com.krry.service; import java.util.hashmap; import java.util.list; импорт javax.servlet.http.httpservletrequest; import org.apache.ibatis.annotations.param; импорт com.krry.entity.blog; импорт com.krry.Entity.param; в Impl) * @author asusaad * */public interface iblogservice {/** * Запрос страниц для всех блогов * @param params * @return */public <hashmap <string >> findblogs (params params); / ** * Рассчитайте количество блогов * @param params * @return */ public long countblogs (); } Класс реализации IMPL: blogservice.java
пакет com.krry.service.impl; import java.util.hashmap; import java.util.list; import org.springframework.beans.factory.annotation.autowired; import org.springframework.stereoty.service; import org.spramework.web.servlet.modelype.service; импорт org.spramework.web.servle. com.krry.entity.params; import com.krry.mapper.blogmapper; import com.krry.service.iblogservice;/** * Реализация интерфейса уровня услуг * @author asusaad * */ @ @servicepublic class reagservice iblogservice {@autowired private blogmapper; /*** Блог запроса*/public list <hashmap <string, object >> findblogs (params params) {// Query Blog List Information <hashmap <string, object >> blog = blogmapper.findblogs (params); вернуть блог; } / ** * Рассчитайте количество блогов * @param params * @return * / public long countblogs () {long coutblogs = blogmapper.countblogs (); вернуть кутблога; }}Уровень управления контроллером:
Krrycontroller.java
пакет com.krry.controller; import java.util.hashmap; import java.util.list; import org.springframework.beans.factory.annotation.autowired; импорт org.springframework.stereoty.controller; импорт org.spramework.web.bindtation.Requpation; org.springframework.web.bind.annotation.responsebody; import org.springframework.web.servlet.modelandView; import com.krry.entity.params; импорт com.krry.service.iblogservice;/** * krrycontroler * stocketer * @@ahauthor @@ahauthor @@ahauthortor * @@ahaithor * означает, что это мультичастотный шаблон, а веб-слой, возвращаемый каждым пользователем, является различным открытым классом KrryController {@Autowired Private IblogService BlogService; /*** Главная страница и запрос на страницу* @return*/@requestmapping ("/index") public modelandview index (params params) {params.setpageno (0); Params.SetPagesize (10); // В начале запрашиваются только 10 пунктов // вызов списка бизнес -уровней <hashmap <String, Object >> blogs = blogservice.findblogs (params); // Запросить количество блогов Long Coutblogs = blogservice.countblogs (); ModelAndView ModelAndView = new ModelAndView (); modelandview.addobject («Блог», блоги); modelandview.addobject ("coutblogs", coutblogs); modelandView.setViewName ("index"); return ModelandView; }/** * Запрос страниц для запроса ajax * @param params * @return */@responsebody @requestmapping ("/loaddata") public hashmap <String, Object> LoadData (params params) {hashmap <String, Object> Map = new Hashmap <строка, объект> (); Список <hashmap <string, object >> blogs = blogservice.findblogs (params); map.put («блоги», блоги); карта возврата; }}Здесь есть два класса сущности, которые используются в качестве инъецированного блога для запроса в базе данных, и два параметра для параметров запросов страниц:
Установите параметры данных: pageno (следующая страница): количество текущих страниц* количество, которое будет отображаться на следующей странице (следующая страница): количество, которое было запрошено (pageno) + Количество, которое будет отображаться на каждой странице
В базе данных это wn <= pagesize и wn> pageno для запроса данных страницы
Blog.java
пакет com.krry.entity;/** * * * user * @author krry * @version 1.0.0 * */public class blog {// первичный ключ частной строки; // название блога частное название строки; // музыкальный автор частной струны музыка Musictitle; // музыкальное название Private String Musictitle; // время создания частной строки CreateTime; Публичный блог (String ID, название строки, String Musictor, String Musictitle, String CreateTime) {this.id = id; this.title = заголовок; this.musictor = musictor; this.musictitle = musictitle; this.createtime = createTime; } public String getId () {return id; } public void setId (String id) {this.id = id; } public String getTitle () {return title; } public void settitle (строка заголовка) {this.title = title; } public String getMusictor () {return Music; } public void setMusictor (String Music) {this.musictor = musictor; } public String getMusictItle () {return musictitle; } public void setMusictItle (String musictitle) {this.musictitle = musictitle; } public String getCreatetime () {return CreateTime; } public void setCreatetime (String createTime) {this.createtime = createTime; }} Params.java
пакет com.krry.entity;/** * * params * @author krry * @version 1.0.0 * */public class params {private integer pagesize = 0; частное целое число Pageno = 0; public integer getPageno () {return pageno; } public void SetPageno (Integer pageno) {this.pageno = pageno; } public integer getPagesize () {return PageSize; } public void setPagesize (Integer PageSize) {this.pagesize = pagesize; }} веб -страница index.jsp
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c"%> <%string path = request.getcontextpath (); request.getScheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/"; pagecontext.setattribut Body {founal: url ("resource/images/78788.jpg"); фон-размер: Cover;} .titless {font-size: 34px; текст-альбом: Центр; цвет: черный; 0; Padding: 6px; положение: относительно;} .ke_tabbox .sendmy {text-align: center; Фондовая семья: «Microsoft Yahei»; размер шрифта: 28px; -Вебкит-текстовый цвет-цвета: прозрачный; Фон: -вккит -градиент (линейный, левый верх, левый нижний, от (#fd8700), до (#ff00b1)); -Webkit-Background-Clip: текст; Маржа: 8px Auto 0; Line-Height: 35px;} .ke_tabbox .ke_table {width: 100%; Margin-top: 26px;} .ke_tabbox th {founal: #ccc; font-weight: bold;} .ke_tabbox .ke_table td, th {uverflow: hidven; Ellipsis; граница: 1px solid #fff; padding: 4px 12px; color: #666; font-size: 12px;} /*Связанный с страницей* / .tzpage {font-size: 12px; позиция: Absolute; Top: 480px; справа: 0px;} #tbody tr: hovereaeaeA .t_mode {padding-right: 4px;} #tbody .t_avbiaoq: hover {color: #ff6857; переход: .4s} #tbody .t_dele {padding-left: 4px;} .tzpage {Text-Decoration: none; граница: нет; color:#7d7d7d; фоновый цвет:#f2f2f2; border-radius: 3px;} .tzpage a: hover {founal:#dd5862; цвет: #fff;} .tzpage a, 0.5em; правом поля: 5px; маргина-пута: 5px; min-width: 1em; text-align: center; line-height: 22px; высота: 22px;} .tzpage .current {foanly:#dd5862; color: #fff; граница: нет; .current.next {color:#999; Border: 1px Solid#e5e5e5; фон: #fff;} .tm_psize_go {margin-right: 4px; float: левая; высота: 24px; line-height: 33px; положение: относительно; граница: 1px#e5e5e5; #tm_pagego {border-radius: 3px; высота: 18px; ширина: 30px; float: слева; твердый; ширина: 0px; высота: 0px; дисплей: unline block; вертикальный-средний; граница правом: 5px сплошной прозрачный; пограничный левый: 5px Solid Transparent; Margin-lefft: 5px;} .sortasc {Border-Bottom: 5px Solid. твердый; ширина: 0px; высота: 0px; дисплей: встроенный блок; вертикальный альген: середина; граница правом: 5px сплошной прозрачный; граница-левая: 5px solid transparent; маржи-слева: 5px;} .red {color: red} .green {color: green} .hideadd {hipe: 300px; Текст-альбом: Центр; высота линии: 300px; маржинальная версия: 16px; дисплей: none;} .hideadd a {font-size: 28px; -webkit-text-fill; Дисплей </p> <table> <thead> <tr> <th> title </th> <Th> Music Man </th> <Th> Music Title </th> <Th> опубликованное время </th> </tr> </thead> <tbody id = "tbody" data-itemcount = "$ {coutblogs}"> <c: foreach var = "itemcount =" $ {coutblogs} "> <c: for var =" itemcount = "$ {coutblogs}"> <c: for ware var = <td> <a> $ {blog.title} </a> </td> <td> <a> $ {blog.musictor} </a> </td> <td> <a> $ {blog.musictor} </a> </td> <td> <a> $ {blog.musictle} </a> </a> </a> </a> <td> $ {blog.createtime} </td> </tr> </c: foreach> </tbody> </table> <div id = "krrypage"> </div> </div> <script type = "text/javascript" src = "$ {basepath} /resource/js/jquery-1.11.3.min. type = "text/javascript" src = "$ {basepath} /resource/js/krry_page.js"> </script> <script type = "text/javascript"> var basepath = "$ {basepath}"; </script> <script type = "text/javascript"> var krryAdb initPage: function (itemCount) {$ ("#krrypage"). tzPage (itemCount, {num_display_entries: 5, // num of main страниц num_edge_entries: 4, // num of Edge Pages current_page: 0, // Укажите номер выбранной страницы items_peg_page: 10, // Как многие предыдущие Prece_text: Страница ", Showgo: true, // show showselect: false, обратный вызов: функция (pageno, psize) {// два параметра будут переданы обратно. Первое - это количество страниц, а второе - это количество страниц, которые будут отображаться на каждой странице Krryadminblog.loadData (pageno, psize);}}); }, // Установить параметры данных: pageno (следующая страница): количество страниц, которые будут отображаться на следующей странице* Количество страниц, которые будут отображаться на следующей странице // Страницы (следующая страница): количество запросов (pageno) + число страниц, которые будут отображаться на каждой странице // на Page -Page -Pagen> wn> wn> wn> LoadData: функция (Pageno, PageSize) {pageno = pageno * pageSize; PageSize = pageno + 10; $ .ajax ({type: «post», url: basepath+"/loaddata", данные: {pageno: pageno, pageize: pageize}, успех: функция (data) {if (data) {var html = "; var blogarr = data.blogs; for (var i = 0, len = blogar. blogarr [i]; title = '"+json.name+"'> "+json.musictor+" </a> </td> "+" <td> <a class = 't_avbiaoq' title = '"+json.musictle+"'> "+json.musictitle+" </a> </td> "<td>"+json.crate. "</tr>"; }}; krryadminblog.initpage ($ ("#tbody"). Data ("itemcount")); </script> </body> </html>Рендеринги страдания:
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.