从数据库提取数据通过jstl显示在jsp页面上
从数据库提取数据通过jstl显示在jsp页面上
1.ConnectDB.java连接数据库,把数据转换成list
public class ConnectDB {
private final static String strDriver = "oracle.jdbc.driver.OracleDriver";
private final static String strConnect = "jdbc:oracle:thin:@localhost:1521:ORCL";
private final static String strDBUserName = "scott";
private final static String strDBPWD = "tiger";
private Connection conn = null;
private Statement stat = null;
private ResultSet rs = null;
//连接oracle数据库
private void getConnectFromOracle() throws ClassNotFoundException,
SQLException {
Class.forName(strDriver);// 实例化oracle.jdbc.driver.OracleDriver
conn = DriverManager.getConnection(strConnect, strDBUserName, strDBPWD);
stat = conn.createStatement();
}
//记录基每行数据存放到值对象,然后把值对象存放一个链表
public List<EMPVO> getListWithVOFromRS() {
String sql = "select * from emp";
List<EMPVO> rowList = new LinkedList<EMPVO>();
EMPVO emp = null;
try {
getConnectFromOracle();
rs = stat.executeQuery(sql);
while (rs.next()) {
emp = new EMPVO();
// 为了简单仅取2个值
emp.setEname(rs.getString("ename"));
emp.setHiredate(rs.getString("hiredate"));
rowList.add(emp);
}
closeConnection();
} catch (ClassNotFoundException e) {
} catch (SQLException e) {
}
return rowList;
}
//记录基每行数据存放到1个链表,然后把这个链表存放另一个链表
public List<List<String>> getListWithListFromRS() {
String sql = "select * from emp";
List<List<String>> rowList = new LinkedList<List<String>>();
List<String> colList = null;
try {
getConnectFromOracle();
rs = stat.executeQuery(sql);
int columnCount = rs.getMetaData().getColumnCount();
while (rs.next()) {
colList = new LinkedList<String>();
for (int i = 1; i <= columnCount; i++) {
colList.add(rs.getString(i));
}
rowList.add(colList);
}
closeConnection();
} catch (ClassNotFoundException e) {
} catch (SQLException e) {
}
return rowList;
}
//关闭数据库
public void closeConnection() throws SQLException {
if (rs != null)
rs.close();
if (stat != null)
stat.close();
if (conn != null)
conn.close();
}
}
2.EMPVO.java emp表的值对象
public class EMPVO {
private String empno;
private String ename;
private String job;
private String mgr;
private String hiredate;
private String sal;
private String comm;
private String deptno;
public String getComm() {
return comm;
}
public void setComm(String comm) {
this.comm = comm;
}
public String getDeptno() {
return deptno;
}
public void setDeptno(String deptno) {
this.deptno = deptno;
}
public String getEmpno() {
return empno;
}
public void setEmpno(String empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getHiredate() {
return hiredate;
}
public void setHiredate(String hiredate) {
this.hiredate = hiredate;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public String getMgr() {
return mgr;
}
public void setMgr(String mgr) {
this.mgr = mgr;
}
public String getSal() {
return sal;
}
public void setSal(String sal) {
this.sal = sal;
}
}
3.JstlServlet 调用ConnectDB,把List放入request对象,跳转到jstl.jsp
public class JstlServlet extends HttpServlet {
private static final long serialVersionUID = 7129164252442979467L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ConnectDB db = new ConnectDB();
request.setAttribute("listinlist", db.getListWithListFromRS());
request.setAttribute("voinlist", db.getListWithVOFromRS());
request.getRequestDispatcher("jstl.jsp").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
4.jstl.jsp
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<table>
<tr><h1>listinlist</h1></tr>
<c:forEach items="${listinlist}" var="rowlist">
<tr>
<c:forEach items="${rowlist}" var="collist">
<td>${collist}</td>
</c:forEach>
</tr>
</c:forEach>
</table>
<table>
<tr><h1>voinlist</h1></tr>
<c:forEach items="${voinlist}" var="empvo">
<tr>
<td>${empvo.ename}</td><td>${empvo.hiredate}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
从数据库提取数据通过jstl显示在jsp页面上的更多相关文章
- 个人总结-7- 实现图片在MySQL数据库中的存储,取出以及显示在jsp页面上
昨天主要是进行对数据库的内容提取出来并进行动态显示,这个只需要设置一个servlet从数据库中获取数据即可,只是图片比较特殊,不能显示. 今天准备继续找方法来实现图片得录入和显示到jsp中,准备从网上 ...
- jquery 获取json文件数据,显示到jsp页面上, 或者html页面上
[{"name":"中国工商银行","code":102},{"name":"中国农业银行",&qu ...
- spring从服务器磁盘读取图片,然后显示于前端页面上
需求是,前台通过传参,确定唯一图片,然后后台在服务器磁盘中读取该图片,然后显示于前台页面上. 后台代码: @RequestMapping("unit/bill/showeinvoice&qu ...
- C#——数据库取数据,DataGridView显示数据
使用未封装的方法连接数据库 步骤: 一.确定连接方式(以SqlServer为例): ①Windows身份验证. string ConnectionType = "server=.;datab ...
- 解决关于:Oracle数据库 插入数据中文乱码 显示问号???
问题: oracle数据库,通过接口插入的中文数据乱码,中文变成了问号??? 解决方案: 计算机=>属性=>高级系统设置=>环境变量=>新建 变量名:NLS_LANG 值:SI ...
- .Net如何在后台设置日期格式,并显示在前台页面上
其实方法比较老咯,有比这个简单的朋友请留言哈,我的思路是先将数据库中的日期格式读出来,在后台转化成DatetTime类型,然后在使用DateTime的内部方法设置日期格式,代码如下: DateTime ...
- 【mysql元数据库】使用information_schema.tables查询数据库和数据表信息
概述 对于mysql和Infobright等数据库,information_schema数据库中的表都是只读的,不能进行更新.删除和插入等操作,也不能加触发器,因为它们实际只是一个视图,不是基本表,没 ...
- (转)【mysql元数据库】使用information_schema.tables查询数据库和数据表信息 ---数据记录大小统计
转:https://www.cnblogs.com/ssslinppp/p/6178636.html https://segmentfault.com/q/1010000007268994?_ea=1 ...
- 把Employees显示在页面上
项目代码下载:https://files.cnblogs.com/files/xiandedanteng/gatling20200429-1.zip 需求:从后台DB取出雇员数据,显示在前台页面上: ...
随机推荐
- iOS Run loop使用实例
http://blog.csdn.net/libaineu2004/article/details/45364737 一.Runloop简介: Run loops 是线程相关的的基础框架的一部分.一个 ...
- MapReduce 简单的全文搜索
上一个已经实现了反向索引,那么为什么不尝试下全文搜索呢.例如有了 Hello file3.txt:1; MapReduce file3.txt:2;fil1.txt:1;fil2.tx ...
- sql2005数据库置疑修复断电崩溃索引损坏 数据库索引错误修复/数据库表损坏/索引损坏/系统表混乱等问题修复
sql2005数据库置疑修复断电崩溃索引损坏 数据库索引错误修复/数据库表损坏/索引损坏/系统表混乱等问题修复 客 户 名 称 济南某电子商务公司 数 据 类 型 SQL2005数据库 故 障 检 测 ...
- Object修改链表
以前学习过链表的时候由于类型的接收不同,每次要重写链表 下面修改可用链表 class Link{ private class Node{ private Object data ; private N ...
- .NET运行机制
.NET运行机制 .NET框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一编程环境..NET框架的目的是便于开发人员更容易地建立Web应用程序和Web服务,使得Internet上的各应 ...
- UVa 10986 - Sending email
题目大意:网络中有n个SMTP服务器,有m条电缆将它们相连,每条电缆传输信息需要一定的时间.现在给出信息的起点和终点,计算所需的最小时间. 有权图上的单源最短路问题(Single-Source Sho ...
- Windows 7 Professional安装多语言包
本文出自 "王春海的博客" 博客,请务必保留此出处http://wangchunhai.blog.51cto.com/225186/223635 下载了Windows 7 Prof ...
- lower_bound和upper_bound算法实现
lower_bound算法要求在已经按照非递减顺序排序的数组中找到第一个大于等于给定值key的那个数,其基本实现原理是二分查找,如下所示: int lower_bound(vector<int& ...
- Nodejs之目录介绍及app.js说明
nodejs目录说明,app.js简单介绍及如何设置app.js启动项目. 新建的项目结构应该是这样 bin:项目的启动文件,也可以放其他脚本. node_modules:用来存放项目的依赖库. pu ...
- [项目回顾]基于Annotation与SpringAOP的缓存简单解决方案
前言: 由于项目的原因,需要对项目中大量访问多修改少的数据进行缓存并管理,为达到开发过程中通过Annotation简单的配置既可以完成对缓存的设置与更新的需求,故而设计的该简易的解决方案. 涉及技术: ...