搜尋
首頁web前端html教學web前端如何更新快取?單例模式封裝opendatabase

本篇文章帶給大家的內容是關於web前端如何更新快取?單例模式封裝opendatabase ,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

如果不了解opendatabase資料庫的操作的各位,建議先學上一篇《web前端緩存之四opendatabase》後,再來看這篇的內容,本章內容也是前端緩存系列的最後一遍, opendatabase資料庫的一個簡單的封裝,當然對於具有java基礎的童鞋們,可以忽略這篇文章。

好了,廢話不多說,直接直奔主題,請看正文吧(還是基於上一篇的實例來寫的):

nbsp;html>


    <meta>
    <title>Title</title>



<!--
openDatabase与android里面的sqlite差不多
最好的选型存储
-->

<h1 id="opendatabse数据库操作">opendatabse数据库操作</h1>

<button>创建user数据表</button>
<button>插入数据</button>
<button>查询数据</button>
<button>修改数据</button>
<button>删除数据</button>
<button>删除user数据表</button>

<script>

    let findId = id => document.getElementById(id);

    //模拟一条user数据
    let user = {
        username: "liuqiang",
        password: "123569874",
        info: "beaconApp开发团队中一员"
    };

    /**
     * 创建数据库 或者此数据库已经存在 那么就是打开数据库
     * name: 数据库名称
     * version: 版本号
     * displayName: 对数据库的描述
     * estimatedSize: 设置数据的大小
     * creationCallback: 回调函数(可省略)
     */
    let db = openDatabase("MySql", "1.0", "我的数据库描述", 1024 * 1024);
    let result = db ? "数据库创建成功" : "数据库创建失败";
    console.log(result);


    const USER_TABLE_SQL = "create table if not exists userTable (id integer primary key autoincrement,username varchar(12)," +
        "password varchar(16),info text)";

    const INSERT_USER_SQL = "insert into userTable (username, password,info) values(?,?,?)";

    const QUERY_USER_SQL = "select * from userTable";

    const UPDATE_USER_SQL = "update userTable set password = ? where username = ?";

    const DELETE_USER_SQL = "delete from userTable where username = ?";

    const DROP_USER_SQL = "drop table userTable";

    /**
     * 封装数据库工具类
     */
    class DatabaseUtil {
        /**
         * 构造方法
         * @param sqlSentence 数据库语句
         * @param params 数据库操作的参数
         */
        constructor(sqlSentence, ...params) {
            this.sqlSentence = sqlSentence;
            this.params = params;
        }

        //获取当前实例
        static getInstance(sqlSentence, ...params) {
            return new DatabaseUtil(sqlSentence, ...params)
        }

        /**
         * 执行数据库操作
         * @param callback  成功的回调
         * @param errorCallback 失败的回调
         */
        execute(callback, errorCallback) {
            db.transaction(tx => {
                tx.executeSql(this.sqlSentence, this.params, callback, errorCallback)
            })
        }
    }

    /**
     * 点击事件 增删查改
     */
    let btnCreate = findId("btn-create");
    let btnInsert = findId("btn-insert");
    let btnQuery = findId("btn-query");
    let btnUpdate = findId("btn-update");
    let btnDelete = findId("btn-delete");
    let btnDrop = findId("btn-drop");
    //创建数据表
    btnCreate.onclick = () => DatabaseUtil.getInstance(USER_TABLE_SQL)
        .execute(function (transaction, resultSet) {
            alert(&#39;创建user表成功:&#39; + result);
        }, function (transaction, error) {
            alert(&#39;创建user表失败:&#39; + error.message);
        });
    //插入数据
    btnInsert.onclick = () => DatabaseUtil.getInstance(INSERT_USER_SQL, user.username, user.password, user.info)
        .execute(function (transaction, resultSet) {
            alert("添加数据成功")
        }, function (transaction, error) {
            alert("添加数据失败:" + error.message)
        });
    //查询数据
    btnQuery.onclick = () => DatabaseUtil.getInstance(QUERY_USER_SQL)
        .execute(function (transaction, resultSet) {
            console.log(resultSet);
        }, function (transaction, error) {
            alert("查询失败:" + error.message)
        });
    //修改数据
    btnUpdate.onclick = () => {
        user.password = "111666666";//修改密码
        DatabaseUtil.getInstance(UPDATE_USER_SQL, user.password, user.username)
            .execute(function (transaction, resultSet) {
                alert("修改数据成功")
            }, function (transaction, error) {
                alert("修改数据失败:" + error.message)
            })
    };
    //删除数据
    btnDelete.onclick = () => DatabaseUtil.getInstance(DELETE_USER_SQL, user.username)
        .execute(function (transaction, resultSet) {
            alert("删除数据成功")
        }, function (transaction, error) {
            alert("删除数据失败:" + error.message)
        });
    //删除数据表
    btnDrop.onclick = () => DatabaseUtil.getInstance(DROP_USER_SQL)
        .execute(function (transaction, resultSet) {
            alert("删除数据表成功")
        }, function (transaction, error) {
            alert("删除数据表失败:" + error.message)
        });

</script>

以上就是對web前端如何更新快取?單例模式封裝opendatabase 的完整介紹,如果您想了解更多有關HTML視訊教學,請關注PHP中文網。


以上是web前端如何更新快取?單例模式封裝opendatabase的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除
了解HTML,CSS和JavaScript:初學者指南了解HTML,CSS和JavaScript:初學者指南Apr 12, 2025 am 12:02 AM

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML的角色:構建Web內容HTML的角色:構建Web內容Apr 11, 2025 am 12:12 AM

HTML的作用是通過標籤和屬性定義網頁的結構和內容。 1.HTML通過到、等標籤組織內容,使其易於閱讀和理解。 2.使用語義化標籤如、等增強可訪問性和SEO。 3.優化HTML代碼可以提高網頁加載速度和用戶體驗。

HTML和代碼:仔細觀察術語HTML和代碼:仔細觀察術語Apr 10, 2025 am 09:28 AM

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代碼” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代碼”代碼“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML,CSS和JavaScript:Web開發人員的基本工具HTML,CSS和JavaScript:Web開發人員的基本工具Apr 09, 2025 am 12:12 AM

HTML、CSS和JavaScript是Web開發的三大支柱。 1.HTML定義網頁結構,使用標籤如、等。 2.CSS控製網頁樣式,使用選擇器和屬性如color、font-size等。 3.JavaScript實現動態效果和交互,通過事件監聽和DOM操作。

HTML,CSS和JavaScript的角色:核心職責HTML,CSS和JavaScript的角色:核心職責Apr 08, 2025 pm 07:05 PM

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

HTML容易為初學者學習嗎?HTML容易為初學者學習嗎?Apr 07, 2025 am 12:11 AM

HTML適合初學者學習,因為它簡單易學且能快速看到成果。 1)HTML的學習曲線平緩,易於上手。 2)只需掌握基本標籤即可開始創建網頁。 3)靈活性高,可與CSS和JavaScript結合使用。 4)豐富的學習資源和現代工具支持學習過程。

HTML中起始標籤的示例是什麼?HTML中起始標籤的示例是什麼?Apr 06, 2025 am 12:04 AM

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

如何利用CSS的Flexbox佈局實現菜單中虛線分割效果的居中對齊?如何利用CSS的Flexbox佈局實現菜單中虛線分割效果的居中對齊?Apr 05, 2025 pm 01:24 PM

如何設計菜單中的虛線分割效果?在設計菜單時,菜名和價格的左右對齊通常不難實現,但中間的虛線或點如何...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具