欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA/JSP学习系列之八(改写MySQL翻页例子)

程序员文章站 2024-02-26 11:44:10
一、前言    其实,改写后的jdbc data-source是运行在servlet中的,通过jndi去查找数据源。我用orion试的,将本站《java/jsp学习系列之六...
一、前言

   其实,改写后的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)