论坛登陆 用户: 密码:
联系我们
设为首页
加入收藏
业界新闻 网络编程 程序开发 网页图象 聊天通讯 软件应用 网络安全 硬件学堂 教育频道 站长club
首页>>网络编程>>jsp专区>>文章正文

java/jsp学习系列之八


 日期:2005-7-18 8:39:40     来源:易特网络技术   编辑:黑鹰  点击:
一、前言

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

上一篇:java/jsp学习系列之九
下一篇:java/jsp学习系列之七
[发送给好友] [打印本页] [关闭窗口] [返回顶部转载请注明来源:http://www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 黑鹰 投稿作者: 易特网络
信息来源: 易特网络技术 录入时间: 2005-7-18 8:39:40
浏览次数: 投稿信箱: shtghy@163.com
设置首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights ©2004-2005 iyit.net all rights reserved. 网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息