利用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. 命令方式重新签名apk

    1.(每个指令之间要有一个空格) 注:拿到一个apk后,首先删除META-INF. 1.如果你的电脑装的是jdk1.6,就用下面的命令: 打开命令符,首先直接输入: Jarsigner -keysto ...

  2. LeetCode Pascal's Triangle Pascal三角形

    题意:给一个数字,返回一个二维数组,包含一个三角形. 思路:n=0.1.2都是特例,特别处理.3行以上的的头尾都是1,其他都是依靠上一行的两个数.具体了解Pascal三角形原理. class Solu ...

  3. python爬虫之路——对字符串的处理

    对字符串的处理分类:分段,连接,剔除,提取,综合 连接:+,* +(加法)的使用 a='i' b=' love' c=' you' print(a+b+c) #return i love you *( ...

  4. 【Orange Pi Lite2】 ——1《如何开始使用开源硬件》

    [Orange Pi Lite2] --1<如何开始使用开源硬件> 本文只在博客园发布 在开始前你需要准备的材料与软件 用户手册_Orange Pi Lite2 OrangePi_Lite ...

  5. vue中的修饰符

    Vue2.0学习笔记:Vue事件修饰符的使用   事件处理 如果需要在内联语句处理器中访问原生DOM事件.可以使用特殊变量$event,把它传入到methods中的方法中. 在Vue中,事件修饰符处理 ...

  6. MFC:Unicode和多字节字符集下 CString和char的转化(MFC中)

    2011-05-16 00:10 1166人阅读 评论(0) 收藏 举报 mfcdelete Unicode下 CString转TCHAR TCHAR* szMsg = new TCHAR[wcsle ...

  7. 直接用bcdedit创建bootmgr数据库和修复启动菜单

    直接用bcdedit创建bootmgr数据库和修复启动菜单 使用下面方法之前需要bcdedit和bootsect两条命令,这两条命令可以到vista或者windows 7安装光盘上获得.bootsec ...

  8. JavaScript中面向对象的三大特性(一个菜鸟的不正经日常)

    经过几天的学习,把jQuery给啃会了,但是运用的还不算特别熟练,总感觉自己在JavaScript方面的基础十分欠缺,所以继续拾起JavaScript,开始更好的编程之旅~ 今天学的是JavaScri ...

  9. git使用stash存储相关操作

    git stash  将当前修改存储起来 git stash apply 恢复最近一次存储 git stash apply stash@{2} 恢复某一次存储 git stash list 查看存储列 ...

  10. RSA与AES实现数据加密传输

    RSA.AES简介 RSA:非对称加密,需要提前生成两个密钥(一对的),通过其中一个密钥加密后的数据,只有另一个密钥能解密.通常这两个密钥中有一个会暴漏出来,即对外公开的,这个密钥称为“公钥”,反之另 ...