本文目录一览:
- 1、jsp中查询数据库得到的结果集rs中有多行数据,怎么取出或者打印其中某一行数据的某一列?
- 2、jsp中怎么把结果集作为session传值
- 3、jsp中如何把servlet中获得的一个数据库结果集传到jsp页面中,然后再jsp页面中显示结果集的内容?
- 4、如何在jsp页面获取数据库某个值
- 5、在jsp页面展示从数据库查询出来的数据?
- 6、在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
thID/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,结束的地方也就是page*pageRows-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)
%
ListString data = (ArrayListString)request.getAttribute("data");//这一步要强转
for(String str : data){
out.println(str);
}
%