本文目录一览:
- jsp中查询数据库得到的结果集rs中有多行数据,怎么取出或者打印其中某一行数据的某一列?
- jsp中怎么把结果集作为session传值
- jsp中如何把servlet中获得的一个数据库结果集传到jsp页面中,然后再jsp页面中显示结果集的内容?
- 如何在jsp页面获取数据库某个值
- 在jsp页面展示从数据库查询出来的数据?
- 在JSP中怎样调用java中的结果集
jsp中查询数据库得到的结果集rs中有多行数据,怎么取出或者打印其中某一行数据的某一列?
用while遍历,从第一行开始,如果想到指定行,需要做判断或直接执行代码
while(rs.next()){
// 这里写你要获取那列的类型,如果是String则
String a = rs.getString(0); // 0表示第1列,以此类推
}
jsp中怎么把结果集作为session传值
好像你的意思是一个一个的放在session里?这样的话,不如把它们放到集合里,然后把集合放到session里。
List list = new ArrayList();
while(rs.next()){
PersonBean pb = new PersonBean(); // 一条记录对应一个对象
pb.setXx();
...
list.add(pb);
}
return list;
该方法返回一个集合,你应该是在servlet或者action类里调用该方法,然后得到session对象然后标记这个list。
request.getSession.setAttribute("list", list);
因为session生命周期比较长,可以通过 List list = (List)request.getSession.getAttribute("list");
在其他的控制层使用。
页面要显示list里的内容,用foreach标签迭代。
jsp中如何把servlet中获得的一个数据库结果集传到jsp页面中,然后再jsp页面中显示结果集的内容?
jsp页面传值个servlet可通过form提交,servlet可通过 request.getRequestDispatcher("跳转的jsp页面")
进行页面跳转,值通过 request.setAttribute("name", value)
进行传递。
你的代码没问题啊,你现在是说test.jsp如何获得这些值么?
如何在jsp页面获取数据库某个值
最简单的JSP页面中的数据库操作方法:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<center>
<h1><font color="blue" size="12">管理中心</font></h1>
<hr />
<table width="80%" border="1">
<tr>
<th>ID</th>
<th>书名</th>
<th>作者</th>
<th>价格</th>
<th>删除</th>
</tr>
<%
// 数据库的名字
String dbName = "zap";
// 登录数据库的用户名
String username = "sa";
// 登录数据库的密码
String password = "123";
// 数据库的IP地址,本机可以用 localhost 或者 127.0.0.1
String host = "127.0.0.1";
// 数据库的端口,一般不会修改,默认为1433
int port = 1433;
String connectionUrl = "jdbc:sqlserver://" + host + ":" + port + ";databaseName=" + dbName + ";user=" + username + ";password=" + password;
// 声明需要使用的资源
// 数据库连接,记得用完了一定要关闭
Connection con = null;
// Statement 记得用完了一定要关闭
Statement stmt = null;
// 结果集,记得用完了一定要关闭
ResultSet rs = null;
try {
// 注册驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 获得一个数据库连接
con = DriverManager.getConnection(connectionUrl);
String SQL = "SELECT * from note";
// 创建查询
stmt = con.createStatement();
// 执行查询,拿到结果集
rs = stmt.executeQuery(SQL);
while (rs.next()) {
%>
<tr>
<td><%= rs.getInt(1) %></td>
<td><a href="prepareupdate?ID=<%= rs.getInt("ID") %>" target="_blank"><%= rs.getString(2) %></a></td>
<td><%= rs.getString(3) %></td>
<td><%= rs.getString(4) %></td>
<td><a href="delete?ID=<%= rs.getInt("ID") %>" target="_blank">删除</a></td>
</tr>
<%
}
} catch (Exception e) {
// 捕获并显示异常
e.printStackTrace();
} finally {
// 关闭我们使用过的资源
if (rs != null)
try {
rs.close();
} catch (Exception e) {}
if (stmt != null)
try {
stmt.close();
} catch (Exception e) {}
if (con != null)
try {
con.close();
} catch (Exception e) {}
}
%>
</table>
<a href="insert.jsp">添加新纪录</a>
</center>
在jsp页面展示从数据库查询出来的数据?
在获取完所有的list后只需要截取你所需要的一部分list就可以了,所以要知道你所需要的是从哪里开始,到哪里结束。 有很多种方法,如果只是JSP里的话可以再次遍历获取的所有list集合,然后把满足条件的截取出来,开始的list下标应该是:(你要查询的页数-1)*页面要显示的数据条数,也就是你这里的(page-1)pageRows,结束的地方也就是pagepageRows-1了。 建议把这个方法封装到一个类里面,一个方法就实现一种功能。当然这是比较麻烦的,现在流行框架,以后会学到的,在hibernate框架里用query语句很容易就实现了,现在时间多,多看看hibernate框架吧,推荐你一本书,hibernate in action,有中文版的。这个是你们以后入门了hibernate后看的。
public List listOrderByItem(int pageRows, int page) { // page是要显示的页数,pageRows是你要显示的行数
Session session = this.getSession(); // 获取hibernate的session,hibernate自动生成的DAO里包含
String hql = "from TBL_storage as tbl_s order by item"; // hql语句
Query query = session.createQuery(hql); // hibernate的query,通过session创建
query.setFirstResult((page-1)*pageRows); // 设置开始的下标
query.setMaxResults(pageRows); // 设置每页显示的行数
return query.list(); // 得到所需要的结果集
}
在JSP中怎样调用java中的结果集
你是用servlet吗。那把list放到request里。然后请求转发到你的JSP页面上,就能访问了。 在SERVLET里:
request.setAttribute("data", arrayList);
request.getRequestDispatcher("showList.jsp").forward(request, response);
页面上(showList.jsp):
<%
List<String> data = (ArrayList<String>)request.getAttribute("data"); // 这一步要强转
for(String str : data){
out.println(str);
}
%>