日期:2014-05-16 浏览次数:20461 次
以前用dwr写的分页,感觉稍微有点麻烦,简单,可以在csdn的http://download.csdn.net/source/1413703下载,sqlser2000的数据库。
?
说明:我对json不熟悉,也不是陌生的那种,就是没怎么使用过,只是知道一点点。如果你也是这样的话,不妨你先看看
这里我的上一篇,我还是觉得挺简单的,代码没怎么细化,总体上讲简单,附上一下文件的源文件。
?
1、分页毫无疑问肯定有数据库链接类,注意,这里是mssql2005的数据库
package com.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
* @Info 数据库链接管理类
* @Email wwwchendonglisahao@163.com
* @QQ 271069593
*/
public class DBManager {
private static final String URL = "jdbc:sqlserver://localhost:1433;databasename=Struts";
private static final String USERNAME = "sa";
private static final String PASSWORD = "";
public static Connection getConnection(){
Connection con = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (Exception e) {
System.out.println("DBManager.getConnection()" + e.getMessage());
e.printStackTrace();
}
return con;
}
public static void Close(ResultSet rs ,PreparedStatement pst,Connection conn){
try {
if (rs != null)
rs.close();
if (pst != null)
pst.close();
if (conn != null)
conn.close();
} catch (Exception e) {
System.out.println("DBManager.Close()" + e.getMessage());
e.printStackTrace();
}
}
}
?
2、数据库表结构信息
use struts
--drop table account
--新建表
create table account(
id int identity(1,1) primary key,
username varchar(10) default '',
age int ,
sex varchar(2)
)
--向表插入100条数据
declare @age int
declare @sex varchar(2)
set @age = 1
while(@age<=100)
begin
if(@age%3=0)
begin
set @sex = '男'
end
else
set @sex = '女'
insert into account values('冬冬',@age,@sex);
set @age = @age + 1
end
--查询表数据
select * from account
?
3、dwr环境配置
(1)、web.xml配置
<servlet>
<servlet-name>dwr-remote</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-remote</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
?(2)、dwr.xml
?
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "dwr30.dtd"> <dwr> <allow> <create creator="new" javascript="p"> <param name="class" value="com.dao.AnalysePage"></param> </create> </allow> </dwr>
?
说明:我是把dwr3.0的dtd文件下载下来了,所以上面的这一行<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "dwr30.dtd">红字部分请注意。
?
4、分页处理类
package com.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import com.db.DBManager;
/**
* 处理完成分页,让dwr在页面上调用处理
*
*/
public class AnalysePage {
private Connection conn = null;
private PreparedStatement pst = null;
private ResultSet rs = null;
/**
* 处理分页的方法
* 默认为每页显示10条数据
* @param page 页数
*/
public ArrayList<String> loadAll(int page){
ArrayList<String> list = null;
int pageSize = 10;
String sql = "select top " + pageSize + " *,(select count(0) from Account) as datasizes from Account where id not in (select top " + (pageSize * (page-1)) + " id from Account)";
System.out.println(sql);
conn = DBManager.getConnection();
try