首页 > 数据库 > MySQL > 正文

改写MySQL翻页例子

2024-07-24 12:57:13
字体:
来源:转载
供稿:网友

一、前言

   其实,改写后的jdbc data-source是运行在servlet中的,通过jndi去查找数据源。我用orion试的,将本站《java/jsp学习系列之六(mysql翻页例子) 》 简单改写了一下。

二、配置

(1)jdbc

   需要将用到的jdbc驱动copy到[orion]/lib目录下

(2)data-source

   在[orion]/config/data-sources.xml文件中加入如下:

〈data-source

class="com.evermind.sql.drivermanagerdatasource"

name="mysqldbpage"

location="jdbc/hypersoniccoreds"

xa-location="jdbc/xa/hypersonicxads"

ejb-location="jdbc/mysqldbpage"

connection-driver="org.gjt.mm.mysql.driver"

username="root"

password=""

url="jdbc:mysql://localhost/test"

inactivity-timeout="30"

/〉

需要注意的是:

(1)ejb-location这个后面的“jdbc/mysqldbpage”是jndi要来查找的。

(2)connection-driver为jdbc数据库驱动

(3)url是jdbc中的url

(4)username为数据库用户名

(5)password为用户密码

(6)inactivity-timeout为数据库连接超时,默认为30秒

对于其他的地方不要改。

三、改写后的代码如下:

<%@ page contenttype="text/html;charset=gb2312" %>

<%@ page import="java.sql.*, javax.sql.datasource, javax.naming.initialcontext" %>

<%

//建立一个jndi查找对象

initialcontext jndi_context = new initialcontext();

//jndi查找数据源

datasource ds = (datasource) jndi_context.lookup("jdbc/mysqldbpage");

//得到一个数据源连接

connection conn = ds.getconnection();

int intpagesize; //一页显示的记录数

int introwcount; //记录总数

int intpagecount; //总页数

int intpage; //待显示页码

java.lang.string strpage;

int i;

//设置一页显示的记录数

intpagesize = 2;

//取得待显示页码

strpage = request.getparameter("page");

if(strpage==null){

//表明在querystring中没有page这一个参数,此时显示第一页数据

intpage = 1;

} else{

//将字符串转换成整型

intpage = java.lang.integer.parseint(strpage);

if(intpage<1) intpage = 1;

}

// 得到结果

stmt = conn.createstatement();

resultset sqlrst = stmt.executequery("select f1 from test");

//获取记录总数

sqlrst.last();

introwcount = sqlrst.getrow();

//记算总页数

intpagecount = (introwcount+intpagesize-1) / intpagesize;

//调整待显示的页码

if(intpage>intpagecount)

intpage = intpagecount;

%>

<html>

<head>

<meta http-equiv="content-type" content="text/html; charset=gb2312">

<title>jsp数据库操作例程 - 数据分页显示 - jdbc 2.0 - mysql</title>

</head>

<body>

<table border="1" cellspacing="0" cellpadding="0">

<tr>

<th>姓名</th>

</tr>

<% if(intpagecount>0)

{

//将记录指针定位到待显示页的第一条记录上

sqlrst.absolute((intpage-1) * intpagesize + 1);

//显示数据

i = 0;

while(i<intpagesize && !sqlrst.isafterlast()){ %>

<tr>

<td>

<%=sqlrst.getstring(1)%>

</td>

</tr>

<% sqlrst.next();

i++;

}

}

%>

</table>

第<%=intpage%>页 共<%=intpagecount%>页

<%if(intpage<intpagecount){%><a href="mysqlpage.jsp?page=<%=intpage+1%>">下一页</a><%}%>

<%if(intpage>1){%><a href="mysqlpage.jsp?page=<%=intpage-1%>">上一页</a><%}%>

</body>

</html>

<%

//关闭结果集

sqlrst.close();

%>

三、怎么去运行?

   见前文《java/jsp学习系列之五(jdbc-odbc翻页例子)》。

注意:mysql数据库为test,中间有个表test,有个字段f1(varchar)

  • 本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。
  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表