利用Mysql创建一个表Car

用Eclipse创建一个Dynamic Web Project

在lib目录下导入Mysql的jar包

创建如下文件

package com.bean;

public class Car {
private String code;
private String name;
private String brand;
private String time;
private double oil;
private int powers;
private int exhaust;
private double price;
private String image;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public double getOil() {
return oil;
}
public void setOil(double oil) {
this.oil = oil;
}
public int getPowers() {
return powers;
}
public void setPowers(int powers) {
this.powers = powers;
}
public int getExhaust() {
return exhaust;
}
public void setExhaust(int exhaust) {
this.exhaust = exhaust;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
} }
package com.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList; import com.bean.Car; public class CarDao {
private Connection conn;
private PreparedStatement stat;
private ResultSet rs; //获取总页数
public int getPageCount(int pageSize) throws Exception{
conn= DBConnection.getconnection();
String sql= "select count(*) from car";
stat=conn.prepareStatement(sql);
rs= stat.executeQuery();
rs.next();
int rowCount = rs.getInt(1);
int pageCount = (int)Math.ceil((1.0*rowCount/pageSize));
conn.close();
return pageCount; }
//获取第几页的数据
public ArrayList<Car> getPageCar(int pageNo,int pageSize){
ArrayList<Car> list = new ArrayList<Car>();
try {
conn=DBConnection.getconnection();
String sql="select * from car limit ?,?";
stat=conn.prepareStatement(sql);
stat.setInt(1, (pageNo-1)*pageSize);
stat.setInt(2, pageSize);
rs=stat.executeQuery();
while(rs.next()){
Car c = new Car();
c.setCode(rs.getString(1));
c.setName(rs.getString(2));
c.setBrand(rs.getString(3));
c.setTime(rs.getString(4));
c.setOil(rs.getDouble(5));
c.setPowers(rs.getInt(6));
c.setExhaust(rs.getInt(7));
c.setPrice(rs.getDouble(8));
c.setImage(rs.getString(9));
list.add(c);
}
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
finally{
try {
conn.close();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
} return list; } public ArrayList<Car> select(){
ArrayList<Car> list = new ArrayList<Car>();
try {
conn=DBConnection.getconnection();
String sql= "select * from car";
stat=conn.prepareStatement(sql);
rs = stat.executeQuery(); while(rs.next()){
Car c = new Car();
c.setCode(rs.getString(1));
c.setName(rs.getString(2));
c.setBrand(rs.getString(3));
c.setTime(rs.getString(4));
c.setOil(rs.getDouble(5));
c.setPowers(rs.getInt(6));
c.setExhaust(rs.getInt(7));
c.setPrice(rs.getDouble(8));
c.setImage(rs.getString(9));
list.add(c);
}
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
finally{
try {
conn.close();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
} return list; }
public Car select(String key){
Car c = null;
try {
conn= DBConnection.getconnection();
String sql = "select * from car where code=?";
stat= conn.prepareStatement(sql);
stat.setString(1, key);
rs= stat.executeQuery();
while(rs.next()){
c = new Car();
c.setCode(rs.getString(1));
c.setName(rs.getString(2));
c.setBrand(rs.getString(3));
c.setTime(rs.getString(4));
c.setOil(rs.getDouble(5));
c.setPowers(rs.getInt(6));
c.setExhaust(rs.getInt(7));
c.setPrice(rs.getDouble(8));
c.setImage(rs.getString(9)); }
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return c; }
}
package com.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.util.ResourceBundle; public class DBConnection {
public static Connection getconnection() throws Exception{
String drv = ResourceBundle.getBundle("db").getString("drv");
String url = ResourceBundle.getBundle("db").getString("url");
String uid = ResourceBundle.getBundle("db").getString("uid");
String pwd = ResourceBundle.getBundle("db").getString("pwd"); Class.forName(drv);
Connection conn = DriverManager.getConnection(url,uid,pwd);
return conn; }
}

db.properties文件是保护文件,里面要写用户密码。如下:

drv=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=GBK
uid=root
pwd=

com.servlet包下的文件都是servlet类型的

package com.servlet;

import java.io.IOException;
import java.util.ArrayList; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.bean.Car;
import com.dao.CarDao; /**
* Servlet implementation class Showservlet
*/
@WebServlet("/show")
public class Showservlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private final int PAGESIZE =3;
/**
* @see HttpServlet#HttpServlet()
*/
public Showservlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取数据
int pageNo = 1;
String s = request.getParameter("pg");
if(s !=null){
pageNo=Integer.parseInt(s);
}
//处理数据
try {
int pageCount = new CarDao().getPageCount(PAGESIZE);
ArrayList<Car> list = new CarDao().getPageCar(pageNo, PAGESIZE); int pagePrev = pageNo>1?pageNo-1:1;
int pageNext = pageNo<pageCount?pageNo+1:pageCount; request.setAttribute("pageNow", pageNo);
request.setAttribute("pagePrev", pagePrev);
request.setAttribute("pageNext", pageNext);
request.setAttribute("pageCount", pageCount);
request.setAttribute("cars",list);
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
//跳转
request.getRequestDispatcher("index.jsp").forward(request, response);
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }

index.jsp内容如下:

<%@page import="com.bean.Car"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<script>
function a(){
document.getElementById("ff").submit();
}
</script>
</head>
<body>
<h1>显示分页</h1>
<%
ArrayList<Car> list =(ArrayList<Car>)request.getAttribute("cars");
for(Car c : list){
%>
<div>
<span style="width:100px; display:inline-block;"><%=c.getCode() %></span>
<span style="width:300px; display:inline-block;"><%=c.getName() %></span>
<span style="width:100px; display:inline-block;"><%=c.getOil() %></span>
</div>
<%
}
%>
<%--分页内容 --%>
<a href="show?pg=1">首页</a>
<a href="show?pg=<%=request.getAttribute("pagePrev") %>">上一页</a>
<%
int pageCount = (int)request.getAttribute("pageCount");
for(int i=1; i<=pageCount;i++){
%>
<a href="show?pg=<%=i %>"><%=i %></a>
<%
}
%>
<a href="show?pg=<%=request.getAttribute("pageNext") %>">下一页</a>
<a href="show?pg=<%=pageCount%>">末页</a>
<form id="ff" method="get" action="show">
<select name="pg" onchange="a()">
<%
for(int i=1;i<=pageCount;i++){
int p = (int)request.getAttribute("pageNow");
if(p==i){
%>
<option value="<%=i %>" selected="selected"><%=i %></option>
<%
}
else{
%>
<option value="<%=i %>" ><%=i %></option>
<%
}
}
%>
</select>
<%-- <input type="submit" value="GO"/>--%>
</form>
</body>
</html>

显示如下:

利用MVC模式简单设计jsp分页效果的更多相关文章

  1. 利用mvc模式,实现用户的注册

    实现功能:利用mvc模式,实现用户的登陆注册功能 1.程序的框架结构 2个包,bean,以及servlet 3个jsp页面,注册页面,注册成功页面,注册失败页面 mysql驱动 2.编程思想 通过js ...

  2. 再谈MV*(MVVM MVP MVC)模式的设计原理—封装与解耦

    精炼并增补于:界面之下:还原真实的MV*模式 图形界面的应用程序提供给用户可视化的操作界面,这个界面提供给数据和信息.用户输入行为(键盘,鼠标等)会执行一些应用逻辑,应用逻辑(application ...

  3. 3.NetDh框架之缓存操作类和二次开发模式简单设计(附源码和示例代码)

    前言 NetDh框架适用于C/S.B/S的服务端框架,可用于项目开发和学习.目前包含以下四个模块 1.数据库操作层封装Dapper,支持多种数据库类型.多库实例,简单强大: 此部分具体说明可参考博客: ...

  4. 基于jsp+servlet+javabean的MVC模式简单应用

    原先写在CSDN的一篇,我直接扒过来吧.之前打算在CSDN的,结果写了几回,发现他那个发布系统简直烂到家,经常丢失图片各种.所以很长一段时间我也没写什么. 一.MVC模式 1.M :  javabea ...

  5. 【转】利用MVC模式开发Java应用程序[组图]

    Java是一种面向对象的语言,是实现面向对象编程的强大工具.我们在实际编程中,应该运用并发挥其最大效能.但是,要利用面向对象编程思想,自己独立开 发出好的Java应用程序,非凡是大.中型程序,并不是一 ...

  6. asp.net下利用MVC模式实现Extjs表格增删改查

    在网上看到有很多人写extjs下的表格控件的增删改查,但是大多数都是直接从后台读取数据,很少有跟数据库进行交互的模式. 今天就来写一个这样的例子.欢迎大家交流指正. 首先简单介绍一下MVC模式,MVC ...

  7. 利用JS实现简单的瀑布流效果

    哈哈, 我又来啦, 在这一段时间里, 我简单的学习了一下javascript(JS), 虽然不是很懂啦, 但是我也简单的尝试着做了点小东西, 就比如现在流行的瀑布流效果, 经过我的努力终于成功的完成了 ...

  8. MVC模式简单介绍

    模型-视图-控件(model-View-Controller)MVC结构是一种开发模块的方法,它将数据存储和数据处理从数据的可视化表示中分离出来.存储和处理数据的组件称为模型,它包括模块的实际内容.表 ...

  9. 简单的JSP分页显示

    1.mysql的limit关键字 (DAO) select * from tablename limit startPoint, numberPerPage; tablename 就是要分页显示的那张 ...

随机推荐

  1. COGS 1215. [Tyvj Aug11] 冗余电网

    ★   输入文件:ugrid.in   输出文件:ugrid.out   简单对比时间限制:1 s   内存限制:128 MB TYVJ八月月赛提高组第2题 测试点数目:5 测试点分值:20 --内存 ...

  2. 爬去豆瓣图书top250数据存储到csv中

    from lxml import etree import requests import csv fp=open('C://Users/Administrator/Desktop/lianxi/do ...

  3. MySQL安装未响应解决方法

    安装MySQL出示未响应,一般显示在安装MySQL程序最后2步的3,4项就不动了. 这种情况一般是你以前安装过MySQL数据库服务项被占用了. 1.卸载MySQL 2.删除安装目录及数据存放目录 3. ...

  4. coredata 删除与更新

    http://blog.csdn.net/rhljiayou/article/details/18037729 //删除 -(void)deleteData { NSManagedObjectCont ...

  5. thisnkphp添加二维码

    Rcode二维码生成类QRcode.class.php实例演示 <?php //import('@.Org.QRcode');//thinkphp include_once('QRcode.cl ...

  6. 苹果市值破万亿,iPhone 会涨价吗?

    今日导读 苹果教父乔布斯曾经说过:“活着就是为了改变世界.”虽然他在 56 岁时就遗憾离世,但他极具创新和变革的精神早已深埋进苹果公司的企业文化里,影响着一代又一代的人.就在最近,这家一直努力“改变世 ...

  7. ctDNA|endosymbiosis

    5.10叶绿体基因组编码多种蛋白质和RNA 叶绿体和线粒体的共同点:叶绿体和线粒体的大小,功能(编码区)大体一致,但叶绿体拥有更多基因,所以在编码tRNA时,也有内含子作为被剪切片段. 因为在原核生物 ...

  8. 安装IAR ewarm

    一  安装准备 (ST方案) 1 嵌入式集成开发环境IAR ewarm 5.41 2 J-Link4.20 3 emberznet-4.3.0协议栈安装包 option1:tools - stm32软 ...

  9. 利用Vue.js实现登录/登出以及JWT认证

    JSON Web Token 入门教程:http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html 后端代码地址:https ...

  10. flowvisor连接ovs

    1 开启flowvisor $ sudo -u flowvisor fvconfig generate /etc/flowvisor/config.json $ sudo /etc/init.d/fl ...