当前页面: 开发资料首页 → JSP 专题 → 改写MySQL翻页例子
摘要: 改写MySQL翻页例子
一、前言
其实,改写后的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;
%>
<head>