利用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. PostgreSQL数据类型

    http://blog.csdn.net/neo_liu0000/article/category/797059 第六章  数据类型 6.1概述 PostgreSQL 提供了丰富的数据类型.用户可以使 ...

  2. cpp代码调试,调试扑克牌的代码

    #include <iostream> #include <vector> #include <algorithm> using namespace std; cl ...

  3. docker-企业级镜像仓库harbor

    Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色 ...

  4. overloading and overriding

    What is the difference between method overloading and method overriding in Java? Differences between ...

  5. Mybatis中关于OGNL表达式冲突

    注意设计表字段不能用bor  xor  and  band  eq  neq  lt  gt  lte  gte  shl  shr  ushr

  6. java基础—java制作证书的工具keytool

    一.keytool的概念 keytool 是个密钥和证书管理工具.它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务.在 ...

  7. SQL Server数据库字段类型说明

    SQL Server数据库字段类型说明 目前Sql Server 数据库一共有X个字段类型,大体分为9类,分别是字符串类型.二进制码字符串数据类型.Unincode字符串数据.整数类型.精确数据类型. ...

  8. sphinx中文入门指南 (转自sphinx中文站)

    Sphinx中文入门指南 wuhuiming<blvming在gmail.com>,转载请注明来源和作者 最后修改:2010年1月23日 1.简介 1.1.Sphinx是什么 1.2.Sp ...

  9. DELL PowerEdge R620安装Windows server(你想将windows安装在何处”找不到任何本地磁盘,“找不到驱动器”)已解决!

    你可能碰到过DELL服务器上安装Windows server系列系统时无法识别或找不到硬盘的问题,对于DELL PowerEdge11-14代机器的,大家可以采用DELL的Lifecycle cont ...

  10. cols

    题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子.如果一条路径经过了矩阵中 ...