import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import com.hcwy.basic.jdbc.DBConnection; import com.hcwy.basic.page.PageBean; public class ArticlesDAO { private static final Map HashMap = null; private PreparedStatement pstmt; private ResultSet rs; private Connection con; // private DBConnection conn; public Connection conn(){ try { Class.forName("com.mysql.jdbc.Driver"); try { con=DriverManager.getConnection("jdbc:mysql://localhost:3316/hcwy","root","root"); } catch (SQLException e) { e.printStackTrace(); } } catch (ClassNotFoundException e) { e.printStackTrace(); } return con; } //查询SQL public ArrayList chaSQL(String sql){ ArrayList list=new ArrayList(); try { pstmt=this.conn().prepareStatement(sql); rs=pstmt.executeQuery(); ResultSetMetaData rsmd=rs.getMetaData(); int count=rsmd.getColumnCount(); while(rs.next()){ // System.out.println("名字是-->"+rsmd.getColumnName(i)+"/t 得到的object是-->"+rs.getObject(i)+" "+i); HashMap map=new HashMap(); for(int i=0;i<count;i++){ map.put(rsmd.getColumnName(i+1), rs.getObject(i+1)); } list.add(map); } } catch (SQLException e) { e.printStackTrace(); } return list; } //查询所总条数 public int count(String name){ String sql="select count(*) as aa from "+name; int i=0; try { pstmt=this.conn().prepareStatement(sql); rs=pstmt.executeQuery(); if(rs.next()){ i=rs.getInt("aa"); } } catch (SQLException e) { e.printStackTrace(); } return i; } //查询SQL带分页 public ArrayList chaSQL(String sql,String name,PageBean page){ ArrayList list=new ArrayList(); if(page!=null){ page.setTotalCount(this.count(name)); sql=sql+" limit "+page.getStart()+","+page.getPageSize(); } System.out.println(sql); try { pstmt=this.conn().prepareStatement(sql); rs=pstmt.executeQuery(); ResultSetMetaData rsmd=rs.getMetaData(); int count=rsmd.getColumnCount();//得到表里字段的总数 while(rs.next()){ // System.out.println("名字是-->"+rsmd.getColumnName(i)+"/t 得到的object是-->"+rs.getObject(i)+" "+i); HashMap map=new HashMap(); for(int i=0;i<count;i++){ map.put(rsmd.getColumnName(i+1), rs.getObject(i+1));//名字和值 } list.add(map); } } catch (SQLException e) { e.printStackTrace(); } return list; } public static void main(String[] args) { PageBean page=new PageBean(); ArticlesDAO dd=new ArticlesDAO(); ArrayList list=dd.chaSQL("select * from articles","articles",page);//如果这里不写page和articles的意思 就是说不要分页 //任何对象都能解析 for(int i=0;i<list.size();i++){ HashMap map=(HashMap)list.get(i); Iterator it=map.keySet().iterator(); while(it.hasNext()){ Object id=it.next(); System.out.println(""+map.get(id)); } System.out.println("/n"); } // ArticlesDAO dd=new ArticlesDAO(); // System.out.println(dd.count("articles")); } }
Bean:
package com.hcwy.basic.page; public class PageBean { private static final int DEFAULT_PAGE_SIZE = 20; private int pageSize = DEFAULT_PAGE_SIZE; // 每页的记录数 private int start=0; // 当前页第一条数据在List中的位置,从0开始 private int page=1; //当前页 private int totalPage=0; //总计有多少页 private int totalCount=0; // 总记录数 //////////////// // 构造函数 public PageBean() { } public PageBean(int page) { this.page=page; } ///////////////// public void setPage(int page) { if(page>0) { start=(page-1)*pageSize; this.page = page; } } public int getPage() { return page; } public int getPageSize() { return pageSize; } public PageBean setPageSize(int pageSize) { this.pageSize = pageSize; return this; } /** * @return the start */ public int getStart() { return start; } // 此位置根据计算得到 protected void setStart() { } /** * @return the totalCount */ public int getTotalCount() { return totalCount; } public void setTotalCount(int totalCount) { this.totalCount=totalCount; totalPage = (int) Math.ceil((totalCount + pageSize - 1) / pageSize); start=(page-1)*pageSize; } // 总页面数根据总数计算得到 protected void setTotalPage() { } public int getTotalPage() { return totalPage; } /////////////// //获取上一页页数 public int getLastPage() { if(hasLastPage()) { return page-1; } return page; } public int getNextPage() { if(hasNextPage()) { return page+1; } return page; } /** * 该页是否有下一页. */ public boolean hasNextPage() { return page < totalPage; } /** * 该页是否有上一页. */ public boolean hasLastPage() { return page > 1; } }
查詢Linux的clibc版本 rpm -qa | grep glibc 現在mysql官網找到對應glibc版本的下載url 然後在linux內下載 wget https://dev.mysql.com/get/Downloads
數據庫交接後因 persist_only 級別的參數設置引發的故障分析。 作者:不喫芫荽,愛可生華東交付服務部 DBA 成員,主要負責 MySQL 故障處理及相關技術支持。 愛可生開源社區出品,原創內容未經授權不得隨意使用,轉載請聯繫小編
轉載自劉茫茫看山 問題背景 某天我們的租戶反饋數據庫連接缺少必要的驅動,我們通過日誌查看確實是缺少部分數據庫的驅動,因爲DolphinScheduler默認只帶了Oracle和MySQL的驅動,並且需要將pom文件中的test模式去掉纔可以
社區王牌專欄《一問一實驗:AI 版》全新改版歸來,得到了新老讀者們的關注。其中不乏對 ChatDBA 感興趣的讀者前來諮詢,表達了想試用體驗 ChatDBA 的意願,對此我們表示感謝 🤟。 目前,ChatDBA 還在最後的準備階段,會盡快跟
在迅速變化的技術領域,本地環境的搭建和調試對於軟件開發的效率和效果至關重要。本文將詳細介紹如何爲Apache DolphinScheduler搭建一個高效的本地開發環境,包括2.x和3.x版本的設置方法。 無論您是初學者還是有經驗的開發者
本文分享自華爲雲社區《【MySQL技術專欄】MySQL8.0直方圖介紹》,作者:GaussDB 數據庫。 背景 數據庫查詢優化器負責將SQL查詢轉換爲儘可能高效的執行計劃,但因爲數據環境不斷變化導致優化器對查詢數據瞭解的不夠充足,可能無法
作者:vivo 互聯網數據庫團隊- Qiu Xinbo 本文主要通過圖示介紹了用主鍵進行分片查詢的過程,介紹了主鍵分頁查詢存在SQL性能問題,如何去創建高效的索引去優化主鍵分頁查詢的SQL性能問題 對於數據分佈不均
您可以在這裏檢查和比較這兩種排序規則提供的排序順序: https://collation-charts.org/mysql60/mysql604.utf8_unicode_ci.european.html https://collation
本文分享自華爲雲社區《KubeEdge v1.17.0發佈!數據處理能力與易用性全面提升》 ,作者: 雲容器大未來。 KubeEdge社區v1.17.0 版本正式發佈。新版本爲邊緣節點和設備帶來了更多的新能力,同時持續在易用性上
InnoDB 有哪幾種行鎖,其中比較特殊的插入意向鎖爲什麼而存在? 作者:操盛春,愛可生技術專家,公衆號『一樹一溪』作者,專注於研究 MySQL 和 OceanBase 源碼。 愛可生開源社區出品,原創內容未經授權不得隨意使用,轉載請聯繫
拿到這個網站,通過對比查詢,我們發現 閉合參數 finsh 時,查詢出的內容更多 經過進一步判斷,確實存在漏洞 不過在測試的時候發現存在一定的過濾 但是可以通過內聯註釋進行繞過。 這裏也是加深瞭解了內聯註釋的知識點,之前只會簡單的
在生產環境中經常會有一些隱式類型轉換導致SQL索引失效,性能極差,進而影響影響集羣負載和業務的情況。本文總結了隱式轉換常見的場景,在生產中要儘量避免 SQL 隱式轉換的出現。 作者:張洛丹,熱衷於數據庫技術,不斷探索,期望未來能夠撰寫更有
一般我們在Linux下執行某些外部程序的時候可能會提示找不到共享庫的錯誤, 比如: tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open sha
🥳 社區王牌專欄《一問一實驗:AI 版》全新歸來,在 520 這個充滿愛的特殊日子裏,獻上一份屬於 DBA 們的愛(AI)。 什麼是《一問一實驗》? 《一問一實驗》是愛可生開源社區的王牌專欄。每一期通過一個數據庫問題對應一組實驗的形式,
繼續運行 🥋 回憶上次內容 上上次 真寫了 萬行 代碼 這 萬行 代碼 都是寫在 明面 上的 這次 使用git命令 下載了 github上面的倉庫