JSP通过表格显示数据库的信息
【step one】
1-1 建立数据库
在jsp中,我们使用的是mysql数据库,对于此数据的优缺点本篇不予以讲述,首先建立news数据库,其数据库中表的信息为:
eg:< id :1 ; name:娱乐; creator:ibbon;createTime:2014-11-21 22:17:43>
【step two】 建立web项目(news)
2-1:首先,我们在web项目的src文件夹写入链接数据库的相关的类,他们分别是:链接数据库的类,数据的实体类
-----------------------------------------------------------------------------------------------------------------------------------------------------
2-1-1 : 数据库实体类,在此类中主要含有数据库的字段,<包:cn.edu.bzu.entity ;实体类:Title.java;>
1 package cn.news.jsp.entity;
2
3 import java.sql.Date;
4
5 public class Title {
/**
*下面这四个属性为数据库表中的四个属性
*/
6 private int id;
7 private String name;
8 private String creator;
9 private Date createTime;
10
11 public int getId() {
12 return id;
13 }
14 public void setId(int id) {
15 this.id = id;
16 }
17 public String getName() {
18 return name;
19 }
20 public void setName(String name) {
21 this.name = name;
22 }
23 public String getCreator() {
24 return creator;
25 }
26 public void setCreator(String creator) {
27 this.creator = creator;
28 }
29 public Date getCreateTime() {
30 return createTime;
31 }
32 public void setCreateTime(Date createTime) {
33 this.createTime = createTime;
34 }
35 public Title(int id, String name, String creator, Date createTime) {
36 super();
37 this.id = id;
38 this.name = name;
39 this.creator = creator;
40 this.createTime = createTime;
41 }
42
43 }
ps:<实体类的作用>
/**
*实体类的作用
*在JAVAWeb中,实体类里面的某一个类,相当于是数据库里的一张表,一个类里面的某个字段相当于表的列名
*在实体里有getter和setter方法,getter是只读,setter是写入
*/
-----------------------------------------------------------------------------------------------------------------------------------------------------
2-2-2 数据库操作类 :下面以对数据库的查询功能书写代码,<包:cn.edu.bzu.dao;类:TitleDAO.java>
1 package cn.edu.bzu.dao;
2 import java.sql.*;
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import cn.edu.bzu.entity.Title;
7
8 public class TitleDAO {
9 public List readFirstTitle(){
10 List<Title> list =new ArrayList<Title>();
11 Connection con=null;
12 PreparedStatement psmt=null;
13 ResultSet rs=null;
14 try {
15 Class.forName("com.mysql.jdbc.Driver");
16 } catch (ClassNotFoundException e) {
17 e.printStackTrace();
18 }
19
20 try {
21 con=DriverManager.getConnection("jdbc:mysql://localhost:3306/news","root","baby123");
22 String sql="select * from title";
23 psmt=con.prepareStatement(sql);
24 rs=psmt.executeQuery();
25
26 while(rs.next())
27 {
28 int id=rs.getInt("id");
29 String name=rs.getString("name");
30 String creator=rs.getString("creator");
31 Date createTime=rs.getDate("createTime");
32 Title tl=new Title(id, name, creator, createTime);
33 list.add(tl);
34 }
35
36 } catch (SQLException e) {
37 e.printStackTrace();
38 }finally
39 {
40 try {
41 if(rs!=null)
42 {
43 rs.close();
44 }
45 if(psmt!=null)
46 {
47 psmt.close();
48 }
49 if(con!=null)
50 {
51 con.close();
52 }
53 } catch (SQLException e) {
54 e.printStackTrace();
55 }
56 }
57 return list;
58 }
59
60 }
ps:现在分析一下上述代码,
one:创建方法(public List readFirstTitle()),之所以选择返回值是List是因为一个标题含有id,name,creator,cteateTime信息,这些信息存在集合中,便于管理,操作
two:创建变量,链接数据库,在这个web project使用的是JDBC技术链接的数据库,这技术需要一类三接口<DriverManager类,Connection接口,Statement接口,ResultSet接口>
ps:与数据库建立链接的步骤:1.注册数据库驱动;2.获取数据库连接;3.获取statement对象;4.关闭资源;
具体的实现步骤,请看上述代码
three:在数据库中读取的信息需要使用List接口,以实现对数据库的一列信息进行封装起来进行来进行后续的使用,就好比:在桌子上有很多的糖,装糖的瓶子,装瓶子的箱子-------->>>>>就好比之前的属性为糖,好几个属性为一个瓶子,好几个瓶子放在箱子中(List)
Four:下面进行细节讲解:
public List readFirstTitle()方法对每一行的数据进行封装, 通过为实体类建立对象(entity),调用他的构造方法,通过构造方法的方式进行复制,然后把通过赋值完成的数据加入list集合中,这样一行的数据就进行封装完成,通过while()循环,从而实现对数据的遍历,进而实现对多行数据的存储,但是在此之前需要创建list对象,并且导入list对象的相关类-------------List<Title> list =new ArrayList<Title>();
----------------------------------------------------------------------------------------------------------------------------------------------------------
2-2-3 在web页面中显示数据库信息<在webroot下建立titleList.jsp,使用TitleDao.java中的查询方法得到所有的记录,然后用表格在页面显示>其具体的代码:
1 <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
2 <%@page import="cn.edu.bzu.dao.TitleDAO,cn.edu.bzu.entity.Title"%>
3 <%
4 String path = request.getContextPath();
5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
6 %>
7
8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
9 <html>
10 <head>
11 <title>Test-newsTitle</title>
12 </head>
13
14 <body>
15 <table border="1">
16 <tr>
17 <td>id</td>
18 <td>name</td>
19 <td>creator</td>
20 <td>createTime</td>
21 </tr>
22 <%
23 TitleDAO dao=new TitleDAO();
24 List<Title> list =dao.readFirstTitle();
25 for(Title tl:list)
26 {%>
27 <tr>
28 <td><%=tl.getId() %></td>
29 <td><%=tl.getName() %></td>
30 <td><%=tl.getCreator() %>></td>
31 <td><%=tl.getCreateTime() %></td>
32 </tr>
33 <%}
34 %>
35 </table>
36 </body>
37 </html>
ps: <%%>小脚本的内容解释:
1.通过TitleDAO dao=new TitleDAO(); 创建对象
2.List <Title> list =dao.readFIrstTitle(); 接口List创建list对象,然后通过对象dao调用TitleDAO中的readFirstTitle()方法,从而把返回的list赋予给list
3.for-each()进行数据的遍历
4.遍历的需要放在行(<tr></tr>)标签外面,这样的话才能把数据进行行存储,由于使用了遍历,所以说明把数据库中的Title表中的数据全部以表格的形式输出
5.具体美化,敬请学习html+css
JSP通过表格显示数据库的信息的更多相关文章
- JSP_通过表格显示数据库的信息
在本篇文章中,小编将介绍在jsp页面中通过表格显示数据库的实现:下面我们以“新闻发布系统”中显示一级标题的信息为例进行讲述,在新闻发布系统中存在一二级标题,在后台可以对标题进行管理,可查询标题等信息 ...
- java web 程序---jsp连接mysql数据库的实例基础+表格显示
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="g ...
- 基于JQuery+JSP的无数据库无刷新多人在线聊天室
JQuery是一款非常强大的javascript插件,本文就针对Ajax前台和JSP后台来实现一个无刷新的多人在线聊天室,该实现的数据全部存储在服务端内存里,没有用到数据库,本文会提供所有源程序,需要 ...
- JSP连接access数据库
一个用jsp连接Access数据库的代码. 要正确的使用这段代码,你需要首先在Access数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数 ...
- 泛微e-cology OA系统某接口存在数据库配置信息泄露漏洞复现
1.简介(开场废话) 攻击者可通过存在漏洞的页面直接获取到数据库配置信息.如果攻击者可直接访问数据库,则可直接获取用户数据,甚至可以直接控制数据库服务器. 2.影响范围 漏洞涉及范围包括不限于8.0. ...
- 泛微ecology OA系统在数据库配置信息泄露
漏洞描述 攻击者可通过该漏洞页面直接获取到数据库配置信息,攻击者可通过访问存在漏洞的页面并解密从而获取数据库配置信息,如攻击者可直接访问数据库,则可直接获取用户数据,由于泛微e-cology默认数据库 ...
- MySQL查看数据库相关信息
使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 mysql> show databases ...
- JSP连接MySQL数据库问题
之前写了一大段,还说了一下具体JDBC连接数据库API的具体包的基本知识,哪知道自己手残不小心按了删除按钮.结果去看自动保存记录时,就只剩下下面这段了.好吧,其实最主要最核心的也就是下面这点了.具体如 ...
- jsp连接sqlServer数据库教程
一.首先讲下我用的工具版本以供参考: jar包:jtds1.3.1.jar 下载地址:点击进入 数据库:SQL Server2012 服务器:Tomcat8.0 下载地址:点击进入 开发IDE工 ...
随机推荐
- Git Bash主题配置
考虑到window的 Vim操作,发现Git Bash自带命令行很好用. Vim写作Markdown真的好用 还不是为了装逼 只是配色很不爽,就找了这个. 不要怕非常简单麻烦,需要2步骤 1- 打开g ...
- 添加mysamba
一. 复制/home/tingpan/openwrt/barrier_breaker/feeds/luci/applications文件夹下的luci-samba文件,将文件中的内容samba改为my ...
- socket()函数介绍
socket()函数介绍 socket函数介绍 函数原型 domain type protocol errno 示例 函数原型 socket()函数的原型如下,这个函数建立一个协议族为domain.协 ...
- SQL Server Management Studio (SSMS) 清除登录记录
对于 SQL Server 2005 Management Studio,可以删除以下文件清空该列表: WinXP: C:\Documents and Settings\<user>\Ap ...
- Real FFT
[文/告别年代 Email:byeyear@hotmail.com] FFT算法是针对复信号的,而现实场景中很多时候时域是实信号,此时有两种办法加快FFT的速度. 1. 使用一个N点的复FFT同时 ...
- signal简述
一个几乎是最简单的应用如下: #include <unistd.h> // for alarm() #include <signal.h> // for signal() #i ...
- MySQL主从同步和半同步配置
mysql主从配置: 1,安装maraidb,使用国内yum镜像站下载:[root@localhost mysql]# cat /etc/yum.repos.d/MairaDB.repo # Mari ...
- thinkphp 5.0手记
场景配置,可配置多个数据库,按需求加载 数组合并:array_merge();键名相同后面覆盖前面 array_merge_recursive();键名相同,键值合并 对与http://localho ...
- CRM 2016 级联过滤 类比省市县
以下以省市为例: function preFilterLookup() { //要进行过滤的lookup按钮加入addPresearch事件 Xrm.Page.getControl("shi ...
- php字符串类型讲解
PHP 支持八种原始类型(type). 四种标量类型: string(字符串) integer(整型) float(浮点型,也作 double ) boolean(布尔型) 两种复合类型: array ...