您的位置:首页 > 数据库

数据库端分页的写法(即所谓的真分页)

2015-09-23 10:16 417 查看
最近在写代码的时候有很多的时候遇到和数据查询相关的知识,然后就稍微总结了一下关于数据库端分页(真分页)的模板,希望对大家有所帮助吧:

首先,现在常用的数据库有三种(SQLSever)、Oracle、和MySQL,那么我们就按照这三种数据库书写分页的模板:

一、SQLSever: select top(页面显示的信息数目) 列,列 from 表名 where 条件(select top(页面大小*(索引页-1)) 索引列名 from 表名)::注意此处的索引列必须是非空的唯一列;

二、Oracle:select 列名,列名 from (select rownum 任意别名(r),表名.* from 表 where rownum<=最大行数 ) where r>起始页;

三、MySQL: select 列名,列名 from 表 limit 起始页,页大小:::注意,此处的起始页不被包含(即如果你写的起始页为1,那么会从第二页开始显示)

插播别的消息:::(简单整理了一下,在java中连接数据库的连接的写法)

ava连接数据库(jdbc的方式)的通用公式。

第一步,先导入对应数据库的jar包;

第二步,新建一个包dao,然后在dao包下建立一个类BaseDAO(包名和类名都是可变的,用者可以自定义);

第三步,开始书写java连接数据库的语句

①加载数据库驱动(即Class.fromName(DriverName);→String DriverName="a" (a的值随数据库的不同有不同的写法,例如mysql数据库的写法为:“com.mysql.jdbc.Driver”);sqlserver的写法为:"com.microsoft.jdbc.sqlserver.SQLServerDriver";Oracle的写法为:”oracle.jdbc.driver.OracleDriver“);

②建立连接对象:Connection con =new Connection();

③获得连接对象库驱动:con=DriverManager.getConnection(url,sqlname,sqlpassword);

(其中url和sqlname和sqlpassword有不同的写法:

mysql的写法:”jdbc:mysql://localhost:3306/数据库名“ sqlname="数据库用户名" sqlpassword=”数据库用户对象“;

sqlserver的写法:url=”jdbc:microsoftsqlserver://localhost:1433;DatabaseName="数据库名称"“ sqlname="数据库用户名" sqlpassword=”数据库用户对象“;

Oracle的写法:”jdbc:oracle:thin:@localhost:1521:数据库名称“ sqlname="数据库用户名" sqlpassword=”数据库用户对象“;

④创建查询语句:PreparedStatement ps=con.preparestatement("需要执行的sql语句");

⑤创建查询结果集:ResultSet rs=ps.executequery();

以oracle为例的书写样例代码:

创建数据库连接对象:

public class BaseDAO {
public Connection getCon(){
Connection con=null;
try {
Class.forName("oracle.jdbc.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:neuedu","scott","123");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;

}
使用数据库连接对象来完成对数据库的操作:

public class MessageDAOImpl extends BaseDAO{
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
//实现保存一条数据
public int save(Message message){
int result=0;
con=getCon();
String sql="insert into Message values(?,?,to_date(?,'yyyy-mm-dd,hh24:mi:ss'))";
try {
ps=con.prepareStatement(sql);
ps.setString(1,message.getMessage());
ps.setString(2, message.getAuthor());
ps.setString(3,message.getPostTime());
rs=ps.executeQuery();
if(rs.next()){
result=1;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
closeAll(con,ps,rs);
}
return result;
}


其中closeAll()方法为一个关闭数据库连接的方法,其中是用了con.close() and rs.close() and ps.close() 三个关闭方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: