java读取mysql数据了过大,如何实现分页读取,求代码

sql = "SELECT id, name, url ,country FROM websites";/*需要从表里面读取的数据*/
ResultSet rs = stmt.executeQuery(sql);

String fn = "F://NEWtest//again1.txt";
wf(fn,"ID ,站点名称, 站点,country.");
while(rs.next()){

    int id  = rs.getInt("id");            
    String name = rs.getString("name");
    String url = rs.getString("url");
    String country = rs.getString("country");



    System.out.print("ID: " + id);

    System.out.print(", 站点名称: " + name);

    System.out.print(", 站点 URL: " + url);
    System.out.print(", country: " + country);

    System.out.print("\n");
    wf(fn,id+"," + name+ "," + url+ "," + country);
}
    这是读取数据库的代码,需要分页读取的代码,麻烦详细些,我刚刚接触java,谢谢

14个回答

下面方法select(String page)的page是前台传到后台的 ,然后处理下page从数据库中分页顺序取出数据
public JSONArray select(String page) {

    int limit = 10;
    JSONArray jsonArr = new JSONArray();
    Statement stmt = null;
    int start = (Integer.valueOf(page).intValue()-1) * limit;
    String sql = "SELECT id, name, url ,country FROM websites ORDER BY CREATTIME DESC LIMIT " + start + ",10;";
    ResultSet rs = stmt.executeQuery(sql);
            while(rs.next()){

int id  = rs.getInt("id");            
String name = rs.getString("name");
String url = rs.getString("url");
String country = rs.getString("country");



System.out.print("ID: " + id);

System.out.print(", 站点名称: " + name);

System.out.print(", 站点 URL: " + url);
System.out.print(", country: " + country);

System.out.print("\n");
wf(fn,id+"," + name+ "," + url+ "," + country);

}
}

SELECT id, name, url ,country FROM websites limit 0,20 0是起始记数(从0开始),20是查询记录个数

mysql 可以用limit

SELECT id, name, url ,country FROM websites limit offset,limit
例如:你要查询数据库结果集中1-5的数据可以 SELECT id, name, url ,country FROM websites limit 0,5 结果就是五条,其他依次类推
offset是起始坐标,limit代表每页记录数

如果你传的参数是页码如第一页,可以
SELECT id, name, url ,country FROM websites limit (offset-1)* limit , limit

把sql = "SELECT id, name, url ,country FROM websites";
改为sql = "SELECT id, name, url ,country FROM websites limit (pageNo-1)*pageSize, pageSize";
pageNo为(页码)、pageSize(每页条数)
其他的不需要怎么改

没用框架吗?一般框架都有分页功能,使用JDBC分页的话MYSQL可以使用LIMIT,不要查所有数据,只查你需要展示的,这样速度就快了

如果你只是显示部分代码到页面,使用LIMIT
如果你数据量十分大,但都要查询出来写到文件,为避免内存溢出,可以多次查询,但还是用LIMIT限制查询数量

sql = "SELECT id, name, url ,country FROM websites limit 1,10;##查询前10条数据

limit 起始数 , 每页显示个数

int pageSize = 10 ;// 每页显示条数(根据业务自行设置)
int pageNumber = 1;//查询的页数
int beginIndex = (pageNumber - 1) * pageSize;

sql = "SELECT id, name, url ,country FROM websites limit beginIndex , pageSize;

共14条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java循环读取mysql并存入java集合里

如果数据库数据过大,用java读取数据库,分页存入集合,每分页一次集合就被调用一次,这个java实现的方式是怎么样的?直接 直接在sql语句上面加个for循环吗?for(){ String sql = "SELECT ID,name, url From websites limit " + (i * 2) + ",2;";......}

用java实现数据库分页查询

怎么样用代码实现数据库中数据的分页查询,实现首页,上一页,下一页,末页的效果啊,求大神们指点一二!

java用limit循环读取mysql直到全部读完,并能显示读了多少条

数据库数据很多,每次读5000条左右,用分页的方式循环读完,下面是测试代码,现在需要分页的代码,可以写在我发的测试代码上面,尽量详细,谢谢。 package webtest; import java.sql.*; import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.File; public class test5{ static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/gumysql"; static final String USER = "root"; static final String PASS = "123456"; public static final String FILE_NAME = "again1.txt";//要创建的文件名 public static final String fn = "F:/NEWtest/";//文件指定存放的路径 public static void creatFile(String fn, String fileName) { File folder = new File(fn); //文件夹路径不存在 if (!folder.exists() && !folder.isDirectory()) { System.out.println("文件夹路径不存在,创建路径:" + fn); folder.mkdirs(); } else { System.out.println("文件夹路径存在:" + fn); } // 如果文件不存在就创建 File file = new File(fn + fileName); if (!file.exists()) { System.out.println("文件不存在,创建文件:" + fn+ fileName); try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } else { System.out.println("文件已存在,文件为:" + fn+ fileName); } } public static void wf(String file, String conent) { BufferedWriter out = null; try { out = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(file, true))); out.write(conent+"\r\n"); } catch (Exception e) { e.printStackTrace(); } finally { try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ creatFile(fn, FILE_NAME); Class.forName("com.mysql.jdbc.Driver"); System.out.println("连接数据库..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); System.out.println(" 实例化Statement对象..."); stmt = conn.createStatement(); String sql; sql = "SELECT id, name, url ,country FROM websites "; ResultSet rs = stmt.executeQuery(sql); String fn = "F://NEWtest//again1.txt"; wf(fn,"ID ,站点名称, 站点,country."); while(rs.next()){ int id = rs.getInt("id"); String name = rs.getString("name"); String url = rs.getString("url"); String country = rs.getString("country"); System.out.print("ID: " + id); System.out.print(", 站点名称: " + name); System.out.print(", 站点 URL: " + url); System.out.print(", country: " + country); System.out.print("\n"); wf(fn,id+"," + name+ "," + url+ "," + country); } rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ se.printStackTrace(); }catch(Exception e){ e.printStackTrace(); }finally{ try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ } try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } System.out.println("Goodbye!"); } }

mysql分页,可以一次性获得数据和数据总数吗

现在我是先获得总行数,再limit,这样就访问了两次数据库,能访问一次就解决吗,因为数据量大(百万),所以不能加载到程序里,想着能用一句sql解决吗,现在还是试

jsp+servlet实现分页

我在做jsp+servlet数据分页的时候,无法实现前后翻页, 下面是我的分层结构 jsp [code="java"] <%@page contentType="text/html;charset=gbk" %> <%@page language="java" import="java.util.*" %> <%@ include file="inc/cmnAuthenticate.jsp" %> <%@page language="java" import="ch05.*" %> <% Vector vMails = null; int totalPage=0; int curPage=0; int countPerPage=10; int pageNumber=1; Hashtable myValues = (Hashtable)session.getAttribute(CommonConst.VIEWID_INBOXLIST); if ( myValues != null ) { vMails = (Vector)myValues.get("mails"); if ( vMails == null ) { vMails = new Vector(); } if(myValues.get("totalPage")!=null){ totalPage=((Integer)myValues.get("totalPage")).intValue(); } if(myValues.get("curPage")!=null){ curPage=((Integer)myValues.get("curPage")).intValue(); } } %> <html> <head> <title>收件箱</title> <meta http-equiv="Content-Type" content="text/html; charset=gbk"> <script language="JAVASCRIPT" src="common\cmnScript.js"></script> <script language="JAVASCRIPT" src="inbox.js"></script> <link rel="stylesheet" type="text/css" href="common\cmnStyle.css" TITLE="common"></link> <script language="JAVASCRIPT"> <% if ( session.getAttribute("errMsg") != null ) { %> var sErrMsg = "<%=session.getAttribute("errMsg")%>"; <% } else { %> var sErrMsg = ""; <% } %> </script> </head> <%@ include file="inc/cmnPagePart1.jsp" %> <table border=0 cellpadding=0 cellspacing=0 width=650 align=center> <tr> <td height=15>&nbsp;</td> </tr> <tr> <td height=30>你当前共有 <font color=blue><%=vMails.size()%></font> 封邮件。</td> </tr> <tr> <td> <table border=1 bordercolor="#13A7FD" cellpadding=2 cellspacing=0 width=650 align=center> <tr> <td width=130> <b>发件人</b> </td> <td width=400> <b>主题</b> </td> <td width=120> <b>发信时间</b> </td> </tr> <% if ( vMails.size() > 0 ) { for ( int i=0; i<vMails.size(); i++ ) { if(i<countPerPage){ MailContent mailContent = (MailContent)vMails.get(i); String sFrom = mailContent.getSender(); String sSubject = mailContent.getSubject(); String sSendTime = mailContent.getSendTime(); String sReadFlg = mailContent.getReadFlg(); if ( sReadFlg.equals("0") ) { %> <tr> <td> <b><%=sFrom%></b> </td> <td> <b><a href="javascript:gotoMail('<%=i%>')"><%=sSubject%></a></b> </td> <td> <%=sSendTime%> </td> </tr> <% } else { %> <tr> <td> <%=sFrom%> </td> <td> <a href="javascript:gotoMail('<%=i%>')"><%=sSubject%></a> </td> <td> <%=sSendTime%> </td> </tr> <% } } } } else { %> <tr> <td colspan=3> 没有任何邮件! </td> </tr> <% } %> </table> </td> </tr> <tr> <td height=20>&nbsp;</td> </tr> </table> <form name="form_main" action="servlet/Inbox" method="post" > <input type="hidden" name="mailIndex" value=""> <div align="right"> 共 <font color=blue><%=totalPage%></font> 页,当前是第 <font color=blue><%=(totalPage==0?0:curPage+1)%></font> 页 &nbsp; <% if ( curPage > 0 ) { %> <a href="javascript: gotoPagePosition('0')">首页</a> &nbsp; <a href="javascript: gotoPagePosition('<%=curPage-1%>')">前一页</a> &nbsp; <% } else { %> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <% } if ( curPage < totalPage-1 ) { %> <a href="javascript: gotoPagePosition('<%=curPage+1%>')">后一页</a> &nbsp; <a href="javascript: gotoPagePosition('<%=totalPage-1%>')">末页</a> &nbsp; <% } else { %> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <% } %> <input type="hidden" name="pageId" value="S0101"> <input type="hidden" name="gotoPageNo" value=""> </div> </form> <%@ include file="inc/cmnPagePart2.jsp" %> [/code] servlet [code="java"]/* * This product includes software developed by the * Apache Software Foundation (http://www.apache.org/). */ package ch05.controller; import java.io.*; import java.util.Hashtable; import javax.servlet.*; import javax.servlet.http.*; import ch05.*; import ch05.module.*; /** * 针对收件箱页面的Servlet * @author Administrator * @version 1.0 */ public class Inbox extends HttpServlet implements java.io.Serializable { /** * */ private static final long serialVersionUID = 1L; public void doGet ( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { //设置提交表单的中文编码 request.setCharacterEncoding("GBK"); HttpSession mySession = request.getSession(true); //清空错误消息 mySession.setAttribute("errMsg",""); //是否非法进入本页面 if ( mySession.getAttribute("username") == null ) { response.sendRedirect("/ch05/login.jsp"); return; } //是否进入默认页面 if ( !request.getParameterNames().hasMoreElements() ) { //设置session中的页面值域 mySession.setAttribute(CommonConst.VIEWID_INBOXLIST, new Hashtable() ); //取得最新邮件 MInbox mInbox = new MInbox(); boolean bGetResult = mInbox.getNewestMail( mySession ); String sGotoPage = request.getParameter("gotoPageNo"); Hashtable myValues = (Hashtable)mySession.getAttribute(ch05.CommonConst.VIEWID_INBOXLIST); myValues.put( "curPage", new Integer(sGotoPage) ); mySession.setAttribute("curPage","inbox"); response.sendRedirect("/ch05/inbox.jsp"); return; } //得到用户输入信息 String sMailIndex = request.getParameter("mailIndex"); String sMailOption = request.getParameter("mailOption"); //如果用户是提交表单 if ( sMailIndex != null && sMailIndex.length() > 0 ) { //设置session中的详细页面值域 mySession.setAttribute(CommonConst.VIEWID_INBOXDETAIL, new Hashtable() ); //获得对应的邮件信息 MInbox mInbox = new MInbox(); boolean bGetResult = mInbox.getDetailMail( mySession, sMailIndex ); if ( bGetResult ) { response.sendRedirect("/ch05/inboxDetail.jsp"); } else { response.sendRedirect("/ch05/inbox.jsp"); } } //如果用户是从详细页面迁移过来的 else if ( sMailOption != null && sMailOption.length() > 0 ) { String sSender = request.getParameter("sender"); String sSendTime = request.getParameter("sendTime"); String sSubject = request.getParameter("subject"); String sContent = request.getParameter("content"); //删除邮件 if ( sMailOption.equals("delete") ) { MInbox mInbox = new MInbox(); boolean bDeleteResult = mInbox.deleteMail( mySession, sSender, sSendTime ); mInbox.getNewestMail( mySession ); response.sendRedirect("/ch05/inbox.jsp"); return; } //回复邮件 else if ( sMailOption.equals("reply") ) { //设置session中的写邮件页面值域 mySession.setAttribute(CommonConst.VIEWID_SENDBOXDETAIL, new Hashtable() ); MInbox mInbox = new MInbox(); boolean bReplyResult = mInbox.replyMail( mySession, sSender, sSubject, sContent ); mySession.setAttribute("curPage","composite"); response.sendRedirect("/ch05/composite.jsp"); return; } try { MInbox mInbox=new MInbox(); mInbox.gotoPage(request, response); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } //如果用户非法进入这个页面 else { response.sendRedirect("/ch05/login.jsp"); } } public void doPost ( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { doGet( request, response ); } }[/code] 数据库处理 [code="java"]/* * This product includes software developed by the * Apache Software Foundation (http://www.apache.org/). */ package ch05.module; import java.sql.*; import java.util.*; import java.text.*; import javax.mail.*; import javax.mail.internet.*; import javax.servlet.http.*; import ch05.*; /** * 针对收件箱页面的后台处理类 * @author Administrator * @version 1.0 */ public class MInbox { public boolean getNewestMail ( HttpSession mySession ) { //设置用户信息用 Hashtable myValues = (Hashtable)mySession.getAttribute(CommonConst.VIEWID_INBOXLIST); String sHost = ""; String sUser = ""; String sPass = ""; //尝试查找用户邮箱设置 try { //载入SQLServer的JDBC驱动类 Class.forName(CommonConst.DB_DRIVER_CLASSNAME); //获得数据库连接 Connection conn = DriverManager.getConnection( CommonConst.DB_CONN_STRING ); Statement stmt = null; ResultSet rs = null; String sUsername = (String)mySession.getAttribute("username"); try { //设置数据库的rollback点 conn.setAutoCommit(false); //检查数据库中是否已经有该用户的邮箱设置 stmt = conn.createStatement(); //执行SQL语句 String sQuery = "select * from mail_setting where username='" + sUsername + "'"; rs = stmt.executeQuery( sQuery ); if (rs.next() ) { sHost = rs.getString(2); sUser = rs.getString(3); sPass = rs.getString(4); } else { mySession.setAttribute("errMsg","请首先进行邮箱设置!"); return false; } //尝试连接Pop3服务器 Properties props = System.getProperties(); Session session = Session.getDefaultInstance(props, null); //获得收件箱 Store store = session.getStore("pop3"); store.connect( sHost, sUser, sPass); //获得Folder,并按照只读打开 Folder folder = store.getFolder( "INBOX" ); folder.open( Folder.READ_WRITE ); //获得所有邮件,并依次获取内容 Message messages[] = folder.getMessages(); //往数据库中登录 for ( int i=0; i<messages.length; i++ ) { //只要不是html格式,大概没有乱码问题。。。 String sFrom = MailContent.getFrom( messages[i].getFrom()[0].toString() ); String sTo = MailContent.getFrom( messages[i].getRecipients( Message.RecipientType.TO )[0].toString() ); String sDate = (new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")).format(messages[i].getSentDate()); String sSubject = messages[i].getSubject(); String sContent = ""; //如果纯文本邮件内容 if ( messages[i].getContent() instanceof String ) { sContent = (String) messages[i].getContent(); } //如果HTML格式邮件内容 else { sContent = ((MimeMultipart)messages[i].getContent()).getBodyPart(0).getContent().toString(); } //插入数据库 String sUpdateQuery = "insert into inbox values('" + sUsername + "', '" + sFrom + "', '" + sTo + "', '" + sDate + "', '" + sSubject + "', '" + sContent + "', '0') "; stmt.executeUpdate( sUpdateQuery ); } conn.commit(); conn.setAutoCommit(true); //删除服务器上的邮件 for ( int i=0; i<messages.length; i++ ) { messages[i].setFlag( Flags.Flag.DELETED, true ); } folder.close(true); store.close(); //重新获取数据库中的所有邮件,并表示在页面上 Vector vMails = new Vector(); sQuery = "select * from inbox where username='" + sUsername + "' order by send_time desc"; rs = stmt.executeQuery( sQuery ); while ( rs.next() ) { String sFrom = rs.getString(2); String sTo = rs.getString(3); String sDate = rs.getString(4); String sSubject = rs.getString(5); String sContent = rs.getString(6); String sReadFlg = rs.getString(7); MailContent mc = new MailContent(); mc.setSender(sFrom); mc.setReceiver(sTo); mc.setSendTime(sDate); mc.setSubject(sSubject); mc.setContent(sContent); mc.setReadFlg(sReadFlg); vMails.add( mc ); } myValues.put( "mails", vMails ); //计算总页数 int countPerPage=10; int totalMail=vMails.size(); int totalPage=0; if(totalMail%countPerPage==0){ totalPage=totalMail/countPerPage; } else{ totalPage=totalMail/countPerPage+1; } int curPage=0; myValues.put("curPage", new Integer(curPage)); myValues.put("totalPage", new Integer(totalPage)); } catch(Exception e) { e.printStackTrace(); mySession.setAttribute("errMsg","查找邮件时出现错误!"); return false; } finally { try { rs.close(); stmt.close(); }catch(Exception ex) { } } }catch(Exception ex) { ex.printStackTrace(); mySession.setAttribute("errMsg","查找邮件时出现错误!"); return false; } return true; } } }[/code] js [code="java"]window.onload = windowLoad; //--------------------------------- //页面载入时调用 function windowLoad() { cmnWindowLoad(); } //查看具体邮件 function gotoMail( index ) { form_main.mailIndex.value = index; form_main.submit(); } //前后翻页 function gotoPagePosition( gotoCount ) { form_main.pageId.value = "goto"; form_main.gotoPageNo.value = gotoCount; form_main.submit(); }[/code]

java从数据库读取百万级数据保存到text文件中,速度慢,怎么解决

代码如下,做一个数据脚本的备份与还原,从数据库查询所有记录,拼接成插入语句,数据库中有600多万条数据,在自的电脑上试,写到txt文件中足足花了半个小时的时间啊。。。。。不知道哪里有问题,麻烦各位指点一下 [code="java"] /** * 如果记录大于10000行,则 分页抓取,每次抓取10000条,这里只适应于在mysql</br> * @param rowCount * 总记录数 * @param table * 表名 * @param writer * 输入流 */ private static BufferedWriter fetchByPage(int rowCount, String table, BufferedWriter writer) { final int fetchSize = 10000; final int pageSize = rowCount % fetchSize == 0 ? rowCount / fetchSize : rowCount / fetchSize + 1; int currentPage = 1; Connection conn = null; Statement stsm = null; ResultSet rs = null; try { conn = newConnection(); conn.setAutoCommit(false); stsm = conn.createStatement(); if (isSqlServer(conn)) { writer .write("SET IDENTITY_INSERT [dbo].[" + table + "] ON; \n"); } else { writer.write("SET FOREIGN_KEY_CHECKS=0;\n"); // 默认是mysql } while (currentPage <= pageSize) { String sql = "select * from " + table + " limit " + (currentPage - 1) * fetchSize + "," + fetchSize; rs = stsm.executeQuery(sql); writeByRow(conn, table, rs, writer); currentPage++; } if (isSqlServer(conn)) { writer.write("SET IDENTITY_INSERT [dbo].[" + table + "] OFF; \n"); } } catch (Exception e) { e.printStackTrace(); } finally { if (conn != null) { try { if (!conn.isClosed()) conn.close(); if (stsm != null) stsm.close(); if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } } } return writer; } private static BufferedWriter writeByRow(Connection conn, String tableName, ResultSet rs, BufferedWriter writer) throws Exception { while (rs.next()) { StringBuilder insertSql = new StringBuilder(); insertSql.append("insert into "); String[] columnNames = getColumnNames(rs); if (isSqlServer(conn)) { insertSql.append("[" + tableName + "] ("); for (String columnName : columnNames) { insertSql.append("[" + columnName + "],"); } } else { insertSql.append("`" + tableName + "`("); for (String columnName : columnNames) { insertSql.append("`" + columnName + "`,"); } } insertSql.deleteCharAt(insertSql.length() - 1); insertSql.append(")"); insertSql.append(" values("); for (int i = 0; i < columnNames.length; i++) { String columnClassName = rs.getMetaData().getColumnClassName( i + 1); if (rs.getObject(i + 1) != null) { if (columnClassName.equalsIgnoreCase("java.lang.String")) { String strValue = rs.getString(columnNames[i]); strValue = strValue.replaceAll("\r", "\\\\r"); strValue = strValue.replaceAll("\n", "\\\\n"); insertSql.append("'" + strValue + "',"); } else { insertSql.append("'" + rs.getObject(i + 1) + "',"); } } else { insertSql.append(rs.getObject(i + 1) + ","); } } int index = insertSql.toString().lastIndexOf(","); String sqlText = insertSql.toString().substring(0, index) + ")"; writer.write(sqlText + ";\n"); } return writer; } [/code]

大数据量Mysql查询后经过循环使用python分片

1 问题描述: (1)使用mysql查询基础数据,这里只有三四个基础的查询条件,联了一个表,同时有limit分页了; (2)之后经过一系列逻辑处理,在这些处理中又包含了很多sql查询,而且是在第(1)条查询出来的结果基础上查询,以前是先分页的,第(1)一次只查询了十条,第二步最多循环十次,但是现在的新逻辑是,查询出来后,经过(2)的处理,不满足筛选条件的数据remove掉,然后再返回最后剩下的数据 (3)由于每一页都会remove()掉部分数据,我曾经尝试定义全局变量,记录删除数据,但是只能得到我当前查询这一页删除了多少,无法获取总共删除了多少,而且每一页的数量都不一定是10条,一般来说是10条以下(因为会删除部分不符合筛选条件的数据),但是要求是要获取满足筛选条件的总数据量,而且需要正常分页 (4)于是我不用limit分页,直接取全量数据,然后再记录删除的数据量,使用切片手动分页,就能获取总数据了,每页也都是10条,但是循环次数过多,数据量稍微大一点儿,就需要49秒左右 2 部分相关代码: (1)基础查询: ``` SELECT op.order_id, opc.order_code, op.created_at AS create_time, opc.departure_date, opc.end_date, opc.company, opc.channel_id, opc.retail, opc.final_cost, opc.has_pay, opc.commission_price, opc.commission_type, opc.commission_value \ FROM order_product_customize AS opc \ LEFT JOIN order_product AS op ON opc.order_product_id = op.order_product_id \ WHERE { 0 } ORDER BY opc.created_at DESC { 1 } ``` (2) 手动分页: ``` nextPage = limit_start+page_size result['data_list'] = result['data_list'][limit_start:nextPage] result['total_num'] = result['total_num'] - self.delNum ``` 3 报错信息: 没有报错,只是执行时间极其长 一台比较好的机器,执行时间为27.72秒,本地执行时间接近40秒,无法上传图片 4 已经尝试过的办法 (1)记录删除次数再减去(因为每次都只查一页,只能获取当前页删除的条数) (2)取符合筛选条件的全量数据(数据量太大,又有循环,导致速度极其慢) (3)每次查20条左右数据,然后获取没删除的前10条,记录最后一条的id(动态分页,无法获取每一页第一条数据,无法保证20条经过筛选后还能剩下10条)

mysql的按条件分页查询,如果没有order by,那么是按照什么顺序分页的呢?

mysql的按条件分页查询,如果没有order by,那么是按照什么顺序分页的呢? 比如select * from address where adcode='440300' limit 20,100 每次查询会乱序吗?

三十万条数据怎么把它从数据库中读取到jsp页面

首先要分页,再进行什么操作,能满足性能的情况下,把数据读取出来

python django如何对多个表的多条数据进行分页

假设我现在mysql上有两个表,A表和B表, A表中有两个字段一个msgid和一个userid, B表中有三个字段一个id字段和一个msg字段还有一个msgid字段, A表中的userid字段可能存在多条相同的userid值, B表中的msgid也有可能存在多条相同的msgid, 现在要根据A表中的userid查询B表中的msg值, 目前我想的查询逻辑大概是这样的: 先拿到一个userid去A表查询 ,然后遍历查询到的所有值data, 然后在用data相关联的msgid查询所有B表的msg值, 但是想分页就不知道怎么分了 !请大神给解答下!

java如何让数据显示在第一条记录上

如何让操作过的数据,显示在第一条数据上。我用的是mysql数据库。

如何通过分页从我的mysql数据库表中每页只显示5条记录?

<div class="post-text" itemprop="text"> <p>I want to display <strong>five record per page through pagination</strong> (mysql,php,html,css) until all the records are displayed, navigation to pages must be like, <strong><em>Page: 1 2 3 4 5 6 7 7 8... Last</em></strong>.</p> <p>HERE IS MY CODE TO VIEW ALL THE RECORDS FROM emp_master table. I am new to PHP so please write an easily understandable code for pagination. I have seen few examples but they are not working.</p> <pre><code>&lt;?php $con=mysqli_connect("localhost","user","password","dataplus"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM emp_master"); echo "&lt;table border='1'&gt;"; $i = 0; while($row = $result-&gt;fetch_assoc()) { if ($i == 0) { $i++; echo "&lt;tr&gt;"; foreach ($row as $key =&gt; $value) { echo "&lt;th&gt;" . $key . "&lt;/th&gt;"; } echo "&lt;/tr&gt;"; } echo "&lt;tr&gt;"; foreach ($row as $value) { echo "&lt;td&gt;" . $value . "&lt;/td&gt;"; } echo "&lt;/tr&gt;"; } echo "&lt;/table&gt;"; mysqli_close($con); </code></pre> <p>I want to display five record per page through pagination untill all the records are displayed, navigation to pages must be like, Page: 1 2 3 4 5 6 7 7 8... Last.</p> <p>This code below is not working:</p> <pre><code> $dbhost="localhost"; $dbuser="10053"; $dbpass="n6867242"; $database="0368"; $rec_limit = 10; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysql_error()); } mysql_select_db('1005368'); /* Get total number of records */ $sql = "SELECT count(emp_id) FROM emp_master "; $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Could not get data: ' . mysql_error()); } $row = mysql_fetch_array($retval, MYSQL_NUM ); $rec_count = $row[0]; if( isset($_GET{'page'} ) ) { $page = $_GET{'page'} + 1; $offset = $rec_limit * $page ; }else { $page = 0; $offset = 0; } $left_rec = $rec_count - ($page * $rec_limit); $sql = "SELECT emp_id, emp_name, e_mail ". "FROM emp_master ". "LIMIT $offset, $rec_limit"; $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "EMP ID :{$row['emp_id']} &lt;br&gt; ". "EMP NAME : {$row['emp_name']} &lt;br&gt; ". "EMP MAIL : {$row['e_mail']} &lt;br&gt; ". "--------------------------------&lt;br&gt;"; } if( $page &gt; 0 ) { $last = $page - 2; echo "&lt;a href = \"$_PHP_SELF?page = $last\"&gt;Last 10 Records&lt;/a&gt; |"; echo "&lt;a href = \"$_PHP_SELF?page = $page\"&gt;Next 10 Records&lt;/a&gt;"; }else if( $page == 0 ) { echo "&lt;a href = \"$_PHP_SELF?page = $page\"&gt;Next 10 Records&lt;/a&gt;"; }else if( $left_rec &lt; $rec_limit ) { $last = $page - 2; echo "&lt;a href = \"$_PHP_SELF?page = $last\"&gt;Last 10 Records&lt;/a&gt;"; } mysql_close($conn); </code></pre> </div>

Mysql按百分比数据查询

mysql的分页查询,如何实现查找一张表的前30%的记录,求大神指教!!

php laravel框架 如何进行分页查询

laravel 如何进行分页查询,我自己做的查询后的分页不对, 点不了第二页第三页往后一样 ![图片说明](https://img-ask.csdn.net/upload/201610/08/1475917135_603523.png)

JSP读取数据库保存的图片

数据库有张指纹表专门用来保存指纹图片(10个手指头),现在想要在JSP页面上显示某个人的10个手指的指纹图片。请教各位大神如何实现?

javaweb获取数据库数据在jsp展示

javaweb maven+spring+MVC框架获取数据库的数据在jsp页面展示在地图上,求大神帮助帮助

使用dataX导数据到MySQL数据库!?

![图片说明](https://img-ask.csdn.net/upload/201803/26/1522063598_470074.png) 在数据库表中查询发现中文显示‘?’数据库的编码utf8,源文件编码utf8,这是什么情况!? 截取的是我的json配置内容,哪位大佬看看是怎么一回事,弄了一天了! 执行命令:[root@jack bin]# python datax.py texttomysql.json

从labview数据库表中提取数据

请问在labview中用数据库工具包,怎么从数据库表中提取一行的数据(非一列),用 执行语句 的vi,怎么获取到这行数据

读取几次mysql数据库信息后,前台转圈圈,点击链接跳不过去

这个情况遇到两次,一个是form表单帐号进行ajax判断用户名是否重复,还有个写分页每次从数据库获得查询列表,不知道有人遇到过这个情况没?感觉挺怪的,代码运行没问题,就是进行数据库提取几次数据就出问题了

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

Java校招入职华为,半年后我跑路了

何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

@程序员:GitHub这个项目快薅羊毛

今天下午在朋友圈看到很多人都在发github的羊毛,一时没明白是怎么回事。 后来上百度搜索了一下,原来真有这回事,毕竟资源主义的羊毛不少啊,1000刀刷爆了朋友圈!不知道你们的朋友圈有没有看到类似的消息。 这到底是啥情况? 微软开发者平台GitHub 的一个区块链项目 Handshake ,搞了一个招募新会员的活动,面向GitHub 上前 25万名开发者派送 4,246.99 HNS币,大约价...

再不跳槽,应届毕业生拿的都比我多了!

跳槽几乎是每个人职业生涯的一部分,很多HR说“三年两跳”已经是一个跳槽频繁与否的阈值了,可为什么市面上有很多程序员不到一年就跳槽呢?他们不担心影响履历吗? PayScale之前发布的**《员工最短任期公司排行榜》中,两家码农大厂Amazon和Google**,以1年和1.1年的员工任期中位数分列第二、第四名。 PayScale:员工最短任期公司排行榜 意外的是,任期中位数极小的这两家公司,薪资...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

华为初面+综合面试(Java技术面)附上面试题

华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。 笔试部分太久远,我就不怎么回忆了。直接将面试。 面试 如果说腾讯的面试是挥金如土...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

win10暴力查看wifi密码

刚才邻居打了个电话说:喂小灰,你家wifi的密码是多少,我怎么连不上了。 我。。。 我也忘了哎,就找到了一个好办法,分享给大家: 第一种情况:已经连接上的wifi,怎么知道密码? 打开:控制面板\网络和 Internet\网络连接 然后右击wifi连接的无线网卡,选择状态 然后像下图一样: 第二种情况:前提是我不知道啊,但是我以前知道密码。 此时可以利用dos命令了 1、利用netsh wlan...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

程序员写出这样的代码,能不挨骂吗?

当你换槽填坑时,面对一个新的环境。能够快速熟练,上手实现业务需求是关键。但是,哪些因素会影响你快速上手呢?是原有代码写的不够好?还是注释写的不够好?昨夜...

!大部分程序员只会写3年代码

如果世界上都是这种不思进取的软件公司,那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业。

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

HTTP与HTTPS的区别

面试官问HTTP与HTTPS的区别,我这样回答让他竖起大拇指!

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

立即提问
相关内容推荐