Hibernate學習第一天

来源:https://www.cnblogs.com/byw-/archive/2018/07/18/9326894.html
-Advertisement-
Play Games

Hibernate框架第一天 今天任務 教學導航 框架和CRM項目的整體介紹 Hibernate框架的學習路線 案例一:完成客戶的CRUD的操作 需求分析 技術分析之Hibernate框架的概述 Hibernate框架的概述 什麼是ORM(對象關係映射) Hibernate優點 技術分析之Hiber ...


Hibernate框架第一天


今天任務

1. 使用Hibernate框架完成對客戶的增刪改查的操作

教學導航

1. 能夠說出Hibernate的執行流程
2. 能夠獨立使用Hibernate框架完成增刪改查的操作

框架和CRM項目的整體介紹

1. 什麼是CRM
    * CRM(Customer Relationship Management)客戶關係管理,是利用相應的信息技術以及互聯網技術來協調企業與顧客間在銷售、營銷和服務上的交互,向客戶提供創新式的個性化的客戶交互和服務的過程
    * 其最終目標是將面向客戶的各項信息和活動集成起來,組建一個以客戶為中心的企業,實現對面向客戶的活動的全面管理

2. CRM的模塊
    * CRM系統實現了對企業銷售、營銷、服務等各階段的客戶信息、客戶活動進行統一管理。
    * CRM系統功能涵蓋企業銷售、營銷、用戶服務等各各業務流程,業務流程中與客戶相關活動都會在CRM系統統一管理。
    * 下邊列出一些基本的功能模塊,包括:
        * 客戶信息管理
        * 聯繫人管理
        * 商機管理
        * 統計分析等

3. 模塊的具體功能
    * 客戶信息管理
        * 對客戶信息統一維護,客戶是指存量客戶或擬營銷的客戶,通過員工錄入形成公司的“客戶庫”是公司最重要的數據資源。

    * 聯繫人管理
        * 對客戶的聯繫人信息統一管理,聯繫人是指客戶企業的聯繫人,即企業的業務人員和客戶的哪些人在打交道。

    * 客戶拜訪管理
        * 業務員要開發客戶需要去拜訪客戶,客戶拜訪信息記錄了業務員與客戶溝通交流方面的不足、採取的策略不當、有待改進的地方或值得分享的溝通技巧等方面的信息。

    * 綜合查詢
        * 客戶相關信息查詢,包括:客戶信息查詢、聯繫人信息查詢、商機信息查詢等

    * 統計分析
        * 按分類統計客戶信息,包括:客戶信息來源統計、按行業統計客戶、客戶發展數量統計等

    * 系統管理
        系統管理屬於crm系統基礎功能模塊,包括:數據字典、賬戶管理、角色管理、許可權管理、操作日誌管理等


Hibernate框架的學習路線

1. 註意:Hibernate框架知識點非常多,比較雜亂,大家要做好筆記記錄的工作
2. 學習的路線
    * 第一天:主要是學習框架的入門,自己搭建框架,完成增刪改查的操作
    * 第二天:主要學習一級緩存、事務管理和基本的查詢
    * 第三天:主要學習一對多和多對多的操作等
    * 第四天:基本查詢和查詢的優化


案例一:完成客戶的CRUD的操作


需求分析

1. CRM系統中客戶信息管理模塊功能包括
    * 新增客戶信息
    * 客戶信息查詢
    * 修改客戶信息
    * 刪除客戶信息

2. 要實現客戶的新增功能

技術分析之Hibernate框架的概述


Hibernate框架的概述

1. Hibernate框架的概述
    * Hibernate稱為
    * Hibernate是一個開放源代碼的對象關係映射(ORM)框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程式員可以隨心所欲的使用對象編程思維來操縱資料庫。 
    * Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程式使用,也可以在Servlet/JSP的Web應用中使用。
    * Hibernate是輕量級JavaEE應用的持久層解決方案,是一個關係資料庫ORM框架

2. 記住:Hibernate是一個持久層的ORM框架!!!

什麼是ORM(對象關係映射)

1. ORM映射:Object Relational Mapping
    * O:面向對象領域的Object(JavaBean對象)
    * R:關係資料庫領域的Relational(表的結構)
    * M:映射Mapping(XML的配置文件)

2. 簡單一句話:Hibernate使程式員通過操作對象的方式來操作資料庫表記錄


Hibernate優點

1. 優點
    * Hibernate對JDBC訪問資料庫的代碼做了封裝,大大簡化了數據訪問層繁瑣的重覆性代碼
    * Hibernate是一個基於jdbc的主流持久化框架,是一個優秀的orm實現,它很大程度的簡化了dao層編碼工作
    * Hibernate的性能非常好,因為它是一個輕量級框架。映射的靈活性很出色。它支持很多關係型資料庫,從一對一到多對多的各種複雜關係

技術分析之Hibernate框架的快速入門


第一步:下載Hibernate5的運行環境

1. 下載相應的jar包等
    * http://sourceforge.net/projects/hibernate/files/hibernate-orm/5.0.7.Final/hibernate-release-5.0.7.Final.zip/download  

2. 解壓後對目錄結構有一定的瞭解

第二步:創建表結構

1. 建表語句如下
    Create database hibernate_day01;
    Use hibernate_day01;
    CREATE TABLE `cst_customer` (
      `cust_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客戶編號(主鍵)',
      `cust_name` varchar(32) NOT NULL COMMENT '客戶名稱(公司名稱)',
      `cust_user_id` bigint(32) DEFAULT NULL COMMENT '負責人id',
      `cust_create_id` bigint(32) DEFAULT NULL COMMENT '創建人id',
      `cust_source` varchar(32) DEFAULT NULL COMMENT '客戶信息來源',
      `cust_industry` varchar(32) DEFAULT NULL COMMENT '客戶所屬行業',
      `cust_level` varchar(32) DEFAULT NULL COMMENT '客戶級別',
      `cust_linkman` varchar(64) DEFAULT NULL COMMENT '聯繫人',
      `cust_phone` varchar(64) DEFAULT NULL COMMENT '固定電話',
      `cust_mobile` varchar(16) DEFAULT NULL COMMENT '行動電話',
      PRIMARY KEY (`cust_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;

第三步:搭建Hibernate的開發環境

1. 創建WEB工程,引入Hibernate開發所需要的jar包
    * MySQL的驅動jar包
    * Hibernate開發需要的jar包(資料/hibernate-release-5.0.7.Final/lib/required/所有jar包)
    * 日誌jar包(資料/jar包/log4j/所有jar包)

第四步:編寫JavaBean實體類

1. Customer類的代碼如下:
    public class Customer {
        private Long cust_id;
        private String cust_name;
        private Long cust_user_id;
        private Long cust_create_id;
        private String cust_source;
        private String cust_industry;
        private String cust_level;
        private String cust_linkman;
        private String cust_phone;
        private String cust_mobile;
        // 省略get和set方法
    }

第五步:創建類與表結構的映射

1. 在JavaBean所在的包下創建映射的配置文件
    * 預設的命名規則為:實體類名.hbm.xml
    * 在xml配置文件中引入約束(引入的是hibernate3.0的dtd約束,不要引入4的約束)
        <!DOCTYPE hibernate-mapping PUBLIC 
            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

2. 如果不能上網,編寫配置文件是沒有提示的,需要自己來配置
    * 先複製http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd --> window --> preferences --> 搜索xml --> 選擇xml catalog --> 點擊add --> 現在URI --> 粘貼複製的地址 --> 選擇location,選擇本地的DTD的路徑

3. 編寫映射的配置文件
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

    <hibernate-mapping>
        <class name="com.itheima.domain.Customer" table="cst_customer">
            <id name="cust_id" column="cust_id">
                <generator class="native"/>
            </id>
            <property name="cust_name" column="cust_name"/>
            <property name="cust_user_id" column="cust_user_id"/>
            <property name="cust_create_id" column="cust_create_id"/>
            <property name="cust_source" column="cust_source"/>
            <property name="cust_industry" column="cust_industry"/>
            <property name="cust_level" column="cust_level"/>
            <property name="cust_linkman" column="cust_linkman"/>
            <property name="cust_phone" column="cust_phone"/>
            <property name="cust_mobile" column="cust_mobile"/>
        </class>
    </hibernate-mapping>

第六步:編寫Hibernate核心的配置文件

1. 在src目錄下,創建名稱為hibernate.cfg.xml的配置文件
2. 在XML中引入DTD約束
    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

3. 打開:資料/hibernate-release-5.0.7.Final/project/etc/hibernate.properties,可以查看具體的配置信息 
    * 必須配置的4大參數                 
        #hibernate.connection.driver_class com.mysql.jdbc.Driver
        #hibernate.connection.url jdbc:mysql:///test
        #hibernate.connection.username gavin
        #hibernate.connection.password

    * 資料庫的方言(必須配置的)
        #hibernate.dialect org.hibernate.dialect.MySQLDialect

    * 可選的配置
        #hibernate.show_sql true
        #hibernate.format_sql true
        #hibernate.hbm2ddl.auto update

    * 引入映射配置文件(一定要註意,要引入映射文件,框架需要載入映射文件)
        * <mapping resource="com/itheima/domain/Customer.hbm.xml"/>             

4. 具體的配置如下
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

    <hibernate-configuration>
        <session-factory>
            <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property>
            <property name="hibernate.connection.username">root</property>
            <property name="hibernate.connection.password">root</property>
            <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

            <mapping resource="com/itheima/domain/Customer.hbm.xml"/>
        </session-factory>
    </hibernate-configuration>

第七步:編寫Hibernate入門代碼

1. 具體的代碼如下
    /**
     * 測試保存客戶
     */
    @Test
    public void testSave(){
        // 先載入配置文件
        Configuration config = new Configuration();
        // 預設載入src目錄下的配置文件
        config.configure();
        // 創建SessionFactory對象
        SessionFactory factory = config.buildSessionFactory();
        // 創建session對象
        Session session = factory.openSession();
        // 開啟事務
        Transaction tr = session.beginTransaction();
        // 編寫保存代碼
        Customer c = new Customer();
        // c.setCust_id(cust_id);   已經自動遞增
        c.setCust_name("測試名稱");
        c.setCust_mobile("110");
        // 保存客戶
        session.save(c);
        // 提交事務
        tr.commit();
        // 釋放資源
        session.close();
        factory.close();
    }

回憶:快速入門

1. 下載Hibernate框架的開發包
2. 編寫資料庫和表結構
3. 創建WEB的項目,導入了開發的jar包
    * MySQL驅動包、Hibernate開發的必須要有的jar包、日誌的jar包
4. 編寫JavaBean,以後不使用基本數據類型,使用包裝類
5. 編寫映射的配置文件(核心),先導入開發的約束,裡面正常配置標簽
6. 編寫hibernate的核心的配置文件,裡面的內容是固定的
7. 編寫代碼,使用的類和方法

技術分析之:Hibernate常用的配置文件


Hibernate配置文件之映射配置文件

1. 映射文件,即Stu.hbm.xml的配置文件
    * <class>標簽     -- 用來將類與資料庫表建立映射關係
        * name          -- 類的全路徑
        * table         -- 表名.(類名與表名一致,那麼table屬性也可以省略)
        * catalog       -- 資料庫的名稱,基本上都會省略不寫

    * <id>標簽            -- 用來將類中的屬性與表中的主鍵建立映射,id標簽就是用來配置主鍵的。
        * name          -- 類中屬性名
        * column        -- 表中的欄位名.(如果類中的屬性名與表中的欄位名一致,那麼column可以省略.)
        * length        -- 欄位的程度,如果資料庫已經創建好了,那麼length可以不寫。如果沒有創建好,生成表結構時,length最好指定。

    * <property>        -- 用來將類中的普通屬性與表中的欄位建立映射.
        * name          -- 類中屬性名
        * column        -- 表中的欄位名.(如果類中的屬性名與表中的欄位名一致,那麼column可以省略.)
        * length        -- 數據長度
        * type          -- 數據類型(一般都不需要編寫,如果寫需要按著規則來編寫)
            * Hibernate的數據類型    type="string"
            * Java的數據類型     type="java.lang.String"
            * 資料庫欄位的數據類型    <column name="name" sql-type="varchar"/>

Hibernate配置文件之核心配置文件

1. 核心配置文件的兩種方式
    * 第一種方式是屬性文件的形式,即properties的配置文件
        * hibernate.properties
            * hibernate.connection.driver_class=com.mysql.jdbc.Driver
        * 缺點
            * 不能載入映射的配置文件,需要手動編寫代碼去載入

    * 第二種方式是XML文件的形式,開發基本都會選擇這種方式
        * hibernate.cfg.xml
            * <property name="hibernate.connection.driver_class" >com.mysql.jdbc.Driver</property>
        * 優點
            * 格式比較清晰
            * 編寫有提示
            * 可以在該配置文件中載入映射的配置文件(最主要的)

2. 關於hibernate.cfg.xml的配置文件方式
    * 必須有的配置
        * 資料庫連接信息:
            hibernate.connection.driver_class           -- 連接資料庫驅動程式
            hibernate.connection.url                    -- 連接資料庫URL
            hibernate.connection.username               -- 資料庫用戶名
            hibernate.connection.password               -- 資料庫密碼

        * 方言:
            hibernate.dialect                           -- 操作資料庫方言

    * 可選的配置
        * hibernate.show_sql                            -- 顯示SQL
        * hibernate.format_sql                          -- 格式化SQL
        * hibernate.hbm2ddl.auto                        -- 通過映射轉成DDL語句
            * create                -- 每次都會創建一個新的表.---測試的時候
            * create-drop           -- 每次都會創建一個新的表,當執行結束之後,將創建的這個表刪除.---測試的時候
            * update                -- 如果有表,使用原來的表.沒有表,創建一個新的表.同時更新表結構.
            * validate              -- 如果有表,使用原來的表.同時校驗映射文件與表中欄位是否一致如果不一致就會報錯.

    * 載入映射
        * 如果XML方式:<mapping resource="cn/itcast/hibernate/domain/User.hbm.xml" />

技術分析之Hibernate常用的介面和類


Configuration類和作用

1. Configuration類
    * Configuration對象用於配置並且啟動Hibernate。
    * Hibernate應用通過該對象來獲得對象-關係映射文件中的元數據,以及動態配置Hibernate的屬性,然後創建SessionFactory對象。

    * 簡單一句話:載入Hibernate的配置文件,可以獲取SessionFactory對象。

2. Configuration類的其他應用(瞭解)
    * 載入配置文件的種類,Hibernate支持xml和properties類型的配置文件,在開發中基本都使用XML配置文件的方式。
        * 如果採用的是properties的配置文件,那麼通過Configuration configuration = new Configuration();就可以假裝配置文件
            * 但是需要自己手動載入映射文件
            * 例如:config.addResource("cn/itcast/domain/Student.hbm.xml");

        * 如果採用的XML的配置文件,通過Configuration configuration = new Configuration().configure();載入配置文件

SessionFactory:重要

1. 是工廠類,是生成Session對象的工廠類
2. SessionFactory類的特點
    * 由Configuration通過載入配置文件創建該對象。
    * SessionFactory對象中保存了當前的資料庫配置信息和所有映射關係以及預定義的SQL語句。同時,SessionFactory還負責維護Hibernate的二級緩存。
        * 預定義SQL語句
            * 使用Configuration類創建了SessionFactory對象是,已經在SessionFacotry對象中緩存了一些SQL語句
            * 常見的SQL語句是增刪改查(通過主鍵來查詢)
            * 這樣做的目的是效率更高

    * 一個SessionFactory實例對應一個資料庫,應用從該對象中獲得Session實例。
    * SessionFactory是線程安全的,意味著它的一個實例可以被應用的多個線程共用。
    * SessionFactory是重量級的,意味著不能隨意創建或銷毀它的實例。如果只訪問一個資料庫,只需要創建一個SessionFactory實例,且在應用初始化的時候完成。
    * SessionFactory需要一個較大的緩存,用來存放預定義的SQL語句及實體的映射信息。另外可以配置一個緩存插件,這個插件被稱之為Hibernate的二級緩存,被多線程所共用

3. 總結
    * 一般應用使用一個SessionFactory,最好是應用啟動時就完成初始化。


編寫HibernateUtil的工具類

1. 具體代碼如下
    public class HibernateUtil {
        private static final Configuration cfg;
        private static final SessionFactory factory;
        static{
            // 給常量賦值 
            // 載入配置文件
            cfg = new Configuration().configure();
            // 生成factory對象
            factory = cfg.buildSessionFactory();
        }
        // 獲取Session對象
        public static Session openSession(){
            return factory.openSession();
        }
    }

Session介面

1. 概述
    * Session是在Hibernate中使用最頻繁的介面。也被稱之為持久化管理器。它提供了和持久化有關的操作,比如添加、修改、刪除、載入和查詢實體對象
    * Session 是應用程式與資料庫之間交互操作的一個單線程對象,是 Hibernate 運作的中心
    * Session是線程不安全的
    * 所有持久化對象必須在 session 的管理下才可以進行持久化操作
    * Session 對象有一個一級緩存,顯式執行 flush 之前,所有的持久化操作的數據都緩存在 session 對象處
    * 持久化類與 Session 關聯起來後就具有了持久化的能力

2. 特點
    * 不是線程安全的。應避免多個線程使用同一個Session實例
    * Session是輕量級的,它的創建和銷毀不會消耗太多的資源。應為每次客戶請求分配獨立的Session實例
    * Session有一個緩存,被稱之為Hibernate的一級緩存。每個Session實例都有自己的緩存

3. 常用的方法
    * save(obj)
    * delete(obj)  
    * get(Class,id)
    * update(obj)
    * saveOrUpdate(obj)                 -- 保存或者修改(如果沒有數據,保存數據。如果有,修改數據)
    * createQuery()                     -- HQL語句的查詢的方式

Transaction介面

1. Transaction是事務的介面
2. 常用的方法
    * commit()              -- 提交事務
    * rollback()            -- 回滾事務

3. 特點
    * Hibernate框架預設情況下事務不自動提交.需要手動提交事務
    * 如果沒有開啟事務,那麼每個Session的操作,都相當於一個獨立的事務

開發步驟

1. 準備環境
    * 在資料/crm/ui/WebRoot下所有的文件,拷貝到工程中
    * 引入JSTL的標簽庫,JSP頁面會報錯

編寫代碼


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.背景:原先node是官網下載安裝的,通過brew更新了下,然後到項目里npm i 安裝包時候,報錯2.解決:卸載官網下載安裝的node,重裝 ...
  • 一、引入 之前一個離職的同事負責的項目大量的引入了AngularJS的JS框架,後來我接手相關他項目里的功能。由於對AngularJS不是太熟,在他的功能上進行二次開發就比較費勁了,印象比較深的一個就是如何創建並初始化一個Select選擇框。最近我又研究了一下AngularJS,研究出一個個人覺得比 ...
  • 緩存是分散式系統中的重要組件,主要解決高併發,大數據場景下,熱點數據訪問的性能問題。提供高性能的數據快速訪問。 一、緩存概述 緩存是分散式系統中的重要組件,主要解決高併發,大數據場景下,熱點數據訪問的性能問題。提供高性能的數據快速訪問。 1.1緩存的原理 (1) 將數據寫入/讀取速度更快的存儲(設備 ...
  • 01 基礎加強六天02 資料庫四天03 SQL和ADO三天04 JavaScript05 DOM06 JQuery07 .NET就業班-三層項目+SVN五天08 ASP.NET十一天09 圖書商城項目五天10 EF11 MVC兩天12 OA項目九天13 就業培訓14 win10APP開發15 Uni ...
  • Description 根據一些書上的記載,上帝的一次失敗的創世經歷是這樣的: 第一天, 上帝創造了一個世界的基本元素,稱做“元”。 第二天, 上帝創造了一個新的元素,稱作“α”。“α”被定義為“元”構成的集合。容易發現,一共有兩種不同的“α”。 第三天, 上帝又創造了一個新的元素,稱作“β”。“β ...
  • python3中str預設為Unicode的編碼格式 Unicode是一32位編碼格式,不適合用來傳輸和存儲,所以必須轉換成utf-8,gbk等等 所以在Python3中必須將str類型轉換成bytes類型的 在Python中使用encode的方式可以進行字元的編碼 實際用法: >>>a = "中國 ...
  • 半夜整理東西,發現一個以前沒留意到的小問題。 PHP 7.0+ 里支持了函數(和方法)的返回值類型提示,上述第二種寫法在解釋運行時會觸發一個 Fatal Error,要求返回值必須是 integer 類的一個實例: 當然,兩者在強制類型轉換時效果是一樣的: 相關鏈接 PHP difference b ...
  • 使用工具(可點擊下載) Microsoft HTML HELP javadoc2html 上述軟體基於Windows系統,javadoc2chm安裝過程中系統會檢測HTML HELP是否存在。簡單地下載安裝即可。 材料:jdk官方文檔 到oracle官網下載一個叫jdk-xuyyy-docs-all ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...