日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java代碼獲取數(shù)據(jù)庫(kù)表里數(shù)據(jù)的總數(shù)操作

瀏覽:4日期:2022-08-27 09:48:46

在訪問(wèn)數(shù)據(jù)庫(kù)時(shí),特別是新手,可能會(huì)需要查詢表中數(shù)據(jù)總數(shù),以下這段代碼可以非常簡(jiǎn)便的獲取到數(shù)據(jù)數(shù)目

//先建立數(shù)據(jù)庫(kù)連接,執(zhí)行查詢語(yǔ)句Connection conn = DriverManager.getConnection(URL, USER, PassWord);Statement st=conn.createStatement();ResultSet rs =st.executeQuery('select count(*) as result from tablename');//創(chuàng)建變量存取個(gè)數(shù)int count=0;while(rs.next()){count=getInt(1);}

補(bǔ)充知識(shí):JavaWeb 之 Listener監(jiān)聽(tīng)器及Session的鈍化與活化

概念

監(jiān)聽(tīng)器用于監(jiān)聽(tīng)web應(yīng)用中某些對(duì)象、信息的創(chuàng)建、銷毀、增加,修改,刪除等動(dòng)作的

發(fā)生,然后作出相應(yīng)的響應(yīng)處理。當(dāng)范圍對(duì)象的狀態(tài)發(fā)生變化的時(shí)候,服務(wù)器自動(dòng)調(diào)用

監(jiān)聽(tīng)器對(duì)象中的方法。

常用于統(tǒng)計(jì)在線人數(shù)和在線用戶,系統(tǒng)加載時(shí)進(jìn)行信息初始化,統(tǒng)計(jì)網(wǎng)站的訪問(wèn)量等。

創(chuàng)建步驟

創(chuàng)建類

實(shí)現(xiàn)指定的監(jiān)聽(tīng)器接口中的方法

在web.xml文件中配置監(jiān)聽(tīng)/在類上標(biāo)注@WebListener 注解

第一類:域?qū)ο蟊O(jiān)聽(tīng)器

監(jiān)聽(tīng)域?qū)ο?創(chuàng)建與銷毀的監(jiān)聽(tīng)器

監(jiān)聽(tīng)器接口 描述 ServletContextListener 監(jiān)聽(tīng)Servlet上下文對(duì)象的創(chuàng)建、銷毀 HttpSessionListener 監(jiān)聽(tīng)會(huì)話對(duì)象的創(chuàng)建、銷毀 ServletRequestListener 監(jiān)聽(tīng)請(qǐng)求對(duì)象的創(chuàng)建、銷毀

Servlet上下文對(duì)象 創(chuàng)建和銷毀的監(jiān)聽(tīng)器

public class ApplicationListener implements ServletContextListener {//Servlet上下文對(duì)象創(chuàng)建的時(shí)候被調(diào)用@Overridepublic void contextInitialized(ServletContextEvent contextEvent) {System.out.println('Servlet上下文對(duì)象被創(chuàng)建啦...'); //項(xiàng)目一旦啟動(dòng),此處代碼運(yùn)行!Timer timer=new Timer();//5秒鐘之后開(kāi)始執(zhí)行,以后每間隔2秒發(fā)送一封郵件!timer.schedule(new TimerTask() {@Overridepublic void run() {//System.out.println('發(fā)郵件....'+new Date());}}, 5000, 2000);}//Servlet上下文對(duì)象銷毀的時(shí)候被調(diào)用@Overridepublic void contextDestroyed(ServletContextEvent contextEvent) {System.out.println('Servlet上下文對(duì)象被銷毀啦...');//服務(wù)器在停止的時(shí)候,要執(zhí)行某些動(dòng)作,那么就可以把代碼寫在這個(gè)位置!!!}}

<!-- web.xml中配置 --><listener><listener-class>com.dream.listener.ApplicationListener</listener-class></listener>

會(huì)話對(duì)象 創(chuàng)建和銷毀的監(jiān)聽(tīng)器

@WebListenerpublic class SessionListener implements HttpSessionListener{ @Override public void sessionCreated(HttpSessionEvent event) { HttpSession session = event.getSession(); System.out.println('session對(duì)象創(chuàng)建啦....'+session.getId()); } @Override public void sessionDestroyed(HttpSessionEvent event) { HttpSession session = event.getSession(); System.out.println('session對(duì)象銷毀啦....'+session.getId()); }}

請(qǐng)求對(duì)象的創(chuàng)建和銷毀的監(jiān)聽(tīng)器

@WebListenerpublic class RequestListener implements ServletRequestListener{ @Override public void requestInitialized(ServletRequestEvent event) { ServletRequest request = event.getServletRequest(); System.out.println('Request對(duì)象的創(chuàng)建....'+request); } @Override public void requestDestroyed(ServletRequestEvent event) { ServletRequest request = event.getServletRequest(); System.out.println('Request對(duì)象的銷毀....'+request); }}

案例:統(tǒng)計(jì)網(wǎng)站在線人數(shù)

@WebListenerpublic class ApplicationListener implements ServletContextListener{ @Override public void contextInitialized(ServletContextEvent event) { //項(xiàng)目啟動(dòng),向application對(duì)象中存一個(gè)變量,初始值0 ServletContext application = event.getServletContext(); application.setAttribute('count', 0); } @Override public void contextDestroyed(ServletContextEvent event) { }}@WebListenerpublic class SessionListener implements HttpSessionListener { @Override public void sessionCreated(HttpSessionEvent event) { // 有人訪問(wèn)了 count++ HttpSession session = event.getSession(); ServletContext application = session.getServletContext(); int count =(Integer) application.getAttribute('count'); count++; application.setAttribute('count', count); } @Override public void sessionDestroyed(HttpSessionEvent event) { // 有人離開(kāi)了 count-- HttpSession session = event.getSession(); ServletContext application = session.getServletContext(); Integer count =(Integer) application.getAttribute('count'); count--; application.setAttribute('count', count); }}

第二類:屬性監(jiān)聽(tīng)器

監(jiān)聽(tīng)域?qū)ο髮傩宰兓谋O(jiān)聽(tīng)器

監(jiān)聽(tīng)器接口 描述 ServletContextAttributeListener 監(jiān)聽(tīng)Servlet上下文對(duì)象屬性的創(chuàng)建、刪除、替換 HttpSessionAttributeListener 監(jiān)聽(tīng)會(huì)話對(duì)象屬性的創(chuàng)建、刪除、替換 ServletRequestAttributeListener 監(jiān)聽(tīng)請(qǐng)求對(duì)象屬性的創(chuàng)建、刪除、替換

Servlet上下文對(duì)象屬性變化的監(jiān)聽(tīng)器

@WebListenerpublic class ApplicationAttributeListener implements ServletContextAttributeListener{ //Servlet上下文對(duì)象新增值的時(shí)候被調(diào)用 @Override public void attributeAdded(ServletContextAttributeEvent event) { String str = 'Servlet上下文對(duì)象中添加了屬性:'+event.getName() +',屬性值是:'+event.getValue(); System.out.println(str); } //Servlet上下文對(duì)象刪除值的時(shí)候被調(diào)用 @Override public void attributeRemoved(ServletContextAttributeEvent event) { String str = 'Servlet上下文對(duì)象中刪除了屬性:'+event.getName() +',屬性值是:'+event.getValue(); System.out.println(str); } //Servlet上下文對(duì)象替換值的時(shí)候被調(diào)用 @Override public void attributeReplaced(ServletContextAttributeEvent event) { String str = 'Servlet上下文對(duì)象中替換了屬性:'+event.getName() +',屬性值是:'+event.getValue(); System.out.println(str); }}

第三類:監(jiān)聽(tīng)HttpSession中的對(duì)象(JavaBean)

前兩類監(jiān)聽(tīng)器是作用在 ServletContext HttpSession ServletRequest上

第三類監(jiān)聽(tīng)器是作用在JavaBean上的。

注意:這類監(jiān)聽(tīng)器不需要在web.xml中配置

監(jiān)聽(tīng)器接口 描述 HttpSessionBindingListener 監(jiān)聽(tīng)會(huì)話對(duì)象中JavaBean對(duì)象的綁定、刪除 HttpSessionActivationListener 監(jiān)聽(tīng)會(huì)話對(duì)象中JavaBean對(duì)象的鈍化、活化

會(huì)話對(duì)象中JavaBean對(duì)象的綁定和刪除的監(jiān)聽(tīng)器

實(shí)現(xiàn)了HttpSessionBindingListener接口的JavaBean對(duì)象可以感知自己被綁定到Session中和 Session中刪除的事件

當(dāng)對(duì)象被綁定到HttpSession對(duì)象中時(shí),web服務(wù)器調(diào)用該對(duì)象的

void valueBound(HttpSessionBindingEvent event)方法

當(dāng)對(duì)象從HttpSession對(duì)象中解除綁定時(shí),web服務(wù)器調(diào)用該對(duì)象的

void valueUnbound(HttpSessionBindingEvent event)方法

public class User implements HttpSessionBindingListener { private int id; private String name; public User() { } public User(int id, String name) { this.id = id; this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void valueBound(HttpSessionBindingEvent event) { System.out.println('對(duì)象綁定到了Session中'); } public void valueUnbound(HttpSessionBindingEvent event) { System.out.println('對(duì)象從Session中移除'); }}

<%@ page import='com.dream.vo.User'%><%@ page language='java' pageEncoding='UTF-8'%><!DOCTYPE HTML><html><head><title>ServletContextAttributeListener監(jiān)聽(tīng)器測(cè)試</title></head><body> <% User user = new User(1, 'aaa'); session.setAttribute('user', user); session.removeAttribute('user'); %></body></html>

會(huì)話對(duì)象中JavaBean對(duì)象的鈍化和活化的監(jiān)聽(tīng)器

實(shí)現(xiàn)了HttpSessionActivationListener接口的JavaBean對(duì)象可以感知自己被活化(反序列化)和鈍化(序列化)的事件

鈍化(序列化):在內(nèi)存中JavaBean對(duì)象通過(guò)Session存儲(chǔ)硬盤的過(guò)程

活化(反序列化):從硬盤中通過(guò)Session取出JavaBean對(duì)象到內(nèi)存的過(guò)程

javabean對(duì)象將要隨Session對(duì)象被鈍化(序列化)之前,web服務(wù)器調(diào)用該對(duì)象的

void sessionWillPassivate(HttpSessionEvent event) 方法

這樣javabean對(duì)象就可以知道自己將要和Session對(duì)象一起被鈍化到硬盤中

javabean對(duì)象將要隨Session對(duì)象被活化(反序列化)之后,web服務(wù)器調(diào)用該對(duì)象的void sessionDidActive(HttpSessionEvent event)方法

這樣javabean對(duì)象就可以知道自己將要和Session對(duì)象一起被活化回到內(nèi)存中

注意: 想要隨著Session 被鈍化、活化的對(duì)象它的類必須實(shí)現(xiàn)Serializable 接口,放在

Session中沒(méi)有實(shí)現(xiàn)Serilizable接口的對(duì)象,在Session鈍化時(shí),不會(huì)被序列化到磁盤上。

public class User implements Serializable, HttpSessionActivationListener{ private static final long serialVersionUID = -1566395353697458460L; private int id; private String name; public User() { } public User(int id, String name) { this.id = id; this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } //鈍化 @Override public void sessionWillPassivate(HttpSessionEvent event) { System.out.println('對(duì)象被鈍化.......' + event.getSource()); } //活化 @Override public void sessionDidActivate(HttpSessionEvent event) { System.out.println('對(duì)象被活化......'); }}

在WebContentMETA-INF文件夾下創(chuàng)建一個(gè)context.xml文件

<?xml version='1.0' encoding='UTF-8'?><Context> <!-- maxIdleSwap:'1': session如果1分鐘沒(méi)有使用就序列化 directory: 序列化后文件所保存的路徑 --> <Manager className='org.apache.catalina.session.PersistentManager' maxIdleSwap='1'> <Store className='org.apache.catalina.session.FileStore' directory='C:text' /> </Manager></Context>

面試題:Session 的鈍化與活化

鈍化:當(dāng)服務(wù)器正常關(guān)閉時(shí),還存活著的session(在設(shè)置時(shí)間內(nèi)沒(méi)有銷毀) 會(huì)隨著服務(wù)

器的關(guān)閉被以文件(“SESSIONS.ser”)的形式存儲(chǔ)在tomcat 的work 目錄下,這個(gè)過(guò)程叫

做Session 的鈍化。

活化:當(dāng)服務(wù)器再次正常開(kāi)啟時(shí),服務(wù)器會(huì)找到之前的“SESSIONS.ser” 文件,從中恢

復(fù)之前保存起來(lái)的Session 對(duì)象,這個(gè)過(guò)程叫做Session的活化。

注意事項(xiàng)

想要隨著Session 被鈍化、活化的對(duì)象它的類必須實(shí)現(xiàn)Serializable 接口,還有的是只有在服務(wù)器正常關(guān)閉的條件下,還未超時(shí)的Session 才會(huì)被鈍化成文件。當(dāng)Session 超時(shí)、調(diào)用invalidate方法或者服務(wù)器在非正常情況下關(guān)閉時(shí),Session 都不會(huì)被鈍化,因此也就不存在活化。

在被鈍化成“SESSIONS.ser” 文件時(shí),不會(huì)因?yàn)槌^(guò)Session 過(guò)期時(shí)間而消失,這個(gè)文件會(huì)一直存在,等到下一次服務(wù)器開(kāi)啟時(shí)消失。

當(dāng)多個(gè)Session 被鈍化時(shí),這些被鈍化的Session 都被保存在一個(gè)文件中,并不會(huì)為每個(gè)Session 都建立一個(gè)文件。

以上這篇java代碼獲取數(shù)據(jù)庫(kù)表里數(shù)據(jù)的總數(shù)操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品视频一区二区三区四区五区| 久久字幕精品一区| 亚洲人成在线网站| 欧美有码在线| 欧美天堂在线| 国产精品毛片久久久| 国产精品一区二区美女视频免费看| 日韩精品久久久久久| 69精品国产久热在线观看| 日韩福利在线观看| 国产美女精品视频免费播放软件| 国产精品日韩精品在线播放 | 久久精品国语| 久久高清免费| 夜夜嗨一区二区| 午夜一级久久| 丝袜美腿成人在线| 亚洲区第一页| 国产乱码精品一区二区亚洲| 国产激情综合| 日韩欧美一区二区三区在线视频| 久久婷婷丁香| 久久国产精品久久w女人spa| 日韩欧美四区| 美女尤物国产一区| 亚洲成人av观看| 日韩午夜免费| 日本aⅴ亚洲精品中文乱码| 国产精品一区二区av交换| 精品国产成人| 韩日一区二区三区| 亚洲精品日韩久久| 国产欧美亚洲一区| 鲁鲁在线中文| 香蕉精品999视频一区二区| 日本成人中文字幕在线视频| 美女高潮久久久| 国产在线日韩| 免费不卡在线视频| 毛片不卡一区二区| 午夜国产欧美理论在线播放| 日韩va亚洲va欧美va久久| 久久精品九色| 黄色av一区| 国产精品久一| 亚洲国产不卡| 欧美午夜网站| 久久久久美女| 91福利精品在线观看| 日本一区二区高清不卡| 在线亚洲一区| 免费在线观看一区| 在线一区欧美| 国产一区二区三区亚洲| 亚洲综合三区| 精品免费视频| 喷白浆一区二区| 成人高清一区| 香蕉久久久久久| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 日韩av一级| 亚洲精品激情| 88xx成人免费观看视频库| 亚洲精品在线二区| 日韩免费高清| 欧美欧美黄在线二区| 欧美日韩一区二区三区视频播放| 日韩三级一区| 日韩久久一区二区三区| 欧美日韩亚洲一区二区三区在线 | 美女尤物久久精品| 狂野欧美性猛交xxxx| 国产手机视频一区二区 | 欧美一区网站| 精品中文字幕一区二区三区av| 久久99久久久精品欧美| 国产精品色网| 国产在线观看www| 天堂va欧美ⅴa亚洲va一国产| 久久狠狠婷婷| 老司机免费视频一区二区| 久久午夜影视| 丝袜美腿诱惑一区二区三区| 国产情侣久久| 天使萌一区二区三区免费观看| 高清在线一区| 国产日产一区| 亚洲精品字幕| 欧美精选一区二区三区| 加勒比视频一区| 欧美日韩18| 亚洲精品乱码日韩| 欧美精品一卡| 高清av不卡| 麻豆一区二区99久久久久| 日韩高清在线观看一区二区| 99国产精品久久久久久久| 欧美国产偷国产精品三区| 国产日韩欧美在线播放不卡| 蜜臀国产一区二区三区在线播放| 美女网站视频一区| 精品国产欧美| 美女久久久久久| 国产亚洲第一伦理第一区| 亚洲色图国产| 三级欧美韩日大片在线看| 婷婷精品进入| 欧美午夜精彩| 久久国产直播| 久久九九99| 岛国精品一区| 成人精品国产亚洲| 国产成人免费视频网站视频社区| 久久国内精品自在自线400部| 久久av一区二区三区| 国产综合精品一区| 999国产精品视频| 成人av三级| 日本欧美国产| 免费观看亚洲| 久久天堂成人| 激情91久久| 欧美中文字幕| 免费成人在线视频观看| 蜜桃91丨九色丨蝌蚪91桃色| 日韩在线卡一卡二| 久久午夜精品| 日韩在线网址| 综合欧美精品| 综合欧美精品| 日韩福利视频导航| 欧美日韩夜夜| 久久成人福利| 麻豆一区二区三| 久久久久久夜| 精精国产xxxx视频在线野外 | 亚洲午夜电影| 欧美精品自拍| 日本中文字幕一区二区| 欧美亚洲一级| 久久麻豆视频| www.51av欧美视频| 蜜臀久久精品| 欧美午夜精品一区二区三区电影| 午夜久久久久| 亚洲精品免费观看| 国产乱子精品一区二区在线观看 | 国产高清不卡| 午夜电影亚洲| 亚洲91网站| 国产精品亚洲综合久久| 国产一区二区三区不卡av | 国产精品亚洲欧美一级在线 | 国产精品一二| 伊人久久国产| 国产免费成人| 97精品资源在线观看| 国产高清亚洲| 国产v综合v| 蜜桃av一区二区在线观看| 久久精品99国产精品日本| 精品国产一区二区三区2021| 国产精品字幕| 亚洲精品美女91| 精品欧美日韩精品| 激情偷拍久久| 亚洲日本久久| 精品91福利视频| 亚洲一区二区三区免费在线观看| 日韩欧美精品一区二区综合视频| 久久精品亚洲| 国产国产精品| 国产精品欧美在线观看| 午夜久久中文| 少妇精品久久久| 六月婷婷综合| 日韩专区在线视频| 国产成人久久| 久热re这里精品视频在线6| 久久国产欧美日韩精品| 精品欧美一区二区三区在线观看| 国产精品社区| 成人在线免费观看网站| 久久一二三区| 欧美xxxx中国| 日韩有吗在线观看| 亚洲永久av| 日本欧美久久久久免费播放网| 在线一区av| 日韩高清欧美激情| 日韩精品久久久久久久电影99爱| 日韩精品亚洲专区在线观看| 精品国产第一福利网站| 亚洲精品激情| 欧美日韩一区二区综合| 国产精品天堂蜜av在线播放| 欧美手机在线| 精品国产一区二区三区性色av| 国产精品日韩久久久| 色欧美自拍视频|