数据库端分页的写法(即所谓的真分页)
来源:互联网 发布:弗洛伊德算法 编辑:程序博客网 时间:2024/06/06 20:01
最近在写代码的时候有很多的时候遇到和数据查询相关的知识,然后就稍微总结了一下关于数据库端分页(真分页)的模板,希望对大家有所帮助吧:
首先,现在常用的数据库有三种(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 blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.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 blocke.printStackTrace();}finally{closeAll(con,ps,rs);}return result;}
其中closeAll()方法为一个关闭数据库连接的方法,其中是用了con.close() and rs.close() and ps.close() 三个关闭方法。
- 数据库端分页的写法(即所谓的真分页)
- 分页存储的写法
- java分页的写法
- 几种分页的写法
- 几种分页的写法
- SQLServer的一种分页写法
- oracle 分页的sql 写法
- 兼容ie的分页写法
- store 的数据库端分页
- 几种常用数据库(SQLServer Oracle db2 mysql等)分页SQL的写法总结
- 海量数据库的分页
- 数据库的分页实现
- 数据库的分页算法
- 数据库的分页处理
- 各种数据库的分页
- 数据库的分页练习
- 数据库的分页练习
- 各种数据库的分页
- [MFC]动态对象创建、文档模板加载.rc资源
- Xpages 主题的使用
- 轻码云(PaaS), 携码验证创业梦
- Neural Networks, Manifolds, and Topology
- 【VC++】程序运行到if (CMDIFrameWndEx::OnCreate(lpCreateStruct) == -1)异常的解决方案
- 数据库端分页的写法(即所谓的真分页)
- 验证Xcode真伪的方法,来自苹果官网
- linux下yum安装配置mysql数据库
- linux 安装问题make: 没有指明目标并且找不到makefile。 停止
- JS自动弹出广告窗口
- StoryBoard中一像素的分割线
- Unity3D PoolManager缓冲池插件
- 腾讯协程库libco的原理分析
- web前端学习之路