賓館客房管理系統的設計與實現

来源:https://www.cnblogs.com/chenqiwei/archive/2019/07/07/RunWsh_room.html
-Advertisement-
Play Games

課程設計(論文)任務書 軟體 學院 軟體工程 專業 2016 -07 班 一、課程設計(論文)題目 綜合課程設計2 二、課程設計(論文)工作自 2018 年 1月 1 日起至 2018 年 1月 12 日止。 三、課程設計(論文) 地點:軟體工程實訓中心一部 四、課程設計(論文)內容要求: 1.本課 ...


 

課程設計(論文)任務書

 

     軟體      學院  軟體工程 專業 2016 -07  

一、課程設計(論文)題目 綜合課程設計2 

二、課程設計(論文)工作自 2018 1 1 日起至 2018 1 12 日止。

三、課程設計(論文) 地點:軟體工程實訓中心一部                      

四、課程設計(論文)內容要求:

1.本課程設計的目的

(1)使學生熟練掌握資料庫基本原理;

(2)使學生熟練掌握資料庫的分析和設計能力;

(3)培養學生熟練使用常見的資料庫管理系統;

(4)培養學生使用Java語言進行面向對象設計的能力;

(5)培養學生熟練使用Java語言進行資料庫應用程式設計的能力;

(6)提高學生的科技論文寫作能力。

2.基本要求:

課程設計題目:

設計主要內容:

 

 

 

 

 

 

 

3.課程設計論文編寫要求

(1)要按照書稿的規格列印謄寫課設報告;

(2)報告分為封面、任務書(本文檔)、正文、課程設計體會和參考文獻四部分;

學生簽名:              

2018年1月 1日

 

 

 

 

 

 

 

 

 

 

 

 

課程設計(論文)評審意見

(1)題目分析     (20分):優( )、良( )、中( )、一般( )、差( );

(2)流程分析   (30分):優( )、良( )、中( )、一般( )、差( );

(3)數據定義   (30分):優( )、良( )、中( )、一般( )、差( );

(4)代碼編寫   (10分):優( )、良( )、中( )、一般( )、差( );

(5)創新能力   (10分):優( )、良( )、中( )、一般( )、差( );

(6)格式規範性、設計態度及考勤是否降等級:是( )、否( )

 

評閱人:         職稱:

2018年 1 月 12 日

 

標題:賓館客房管理系統的設計與實現

 

一、 數據設計

1.     實體

賓館客房管理系統設計中用到的實體如下:

1)  實體1:用戶信息

—   屬性1:用戶編號

—   屬性2:用戶姓名

—   屬性3:密碼

—   屬性4:性別(0-男,1-女)

—   屬性5:Email地址

—   屬性6:通訊地址

—   屬性7:聯繫電話

—   屬性8:所在部門

—   屬性9:用戶類型(1-酒店管理員,2-前臺服務員)

2)  實體2:客戶信息

l  屬性1: 身份證號

l  屬性2: 客戶姓名

l  屬性3: 聯繫電話

3)    實體3:客房類型

l  屬性1:客房類型編號

l  屬性2:類型名稱

l  屬性3:客房面積

l  屬性4:配置床位

l  屬性5:客房價格

l  屬性6:配置空調(0-是,1-否)

l  屬性7:配置電視(0-是,1-否)

4)   實體4:客房信息

l  屬性1: 客房號

l  屬性2:客房類型編號

l  屬性3:客房位置

l  屬性4:描述

5)  實體5:客房狀態

l   屬性1:客房編號

l   屬性2:狀態(1-空房,2-入住)

6)  實體6:客房業務

l   屬性1:客房編號

l   屬性2:入住時間

l   屬性3:客戶身份證號

l   屬性4:備註

7)  實體7:業務記錄

l  屬性1:入住時間

l  屬性2:退房時間

l  屬性3:客房編號

l  屬性4:金額

l  屬性5:客戶身份證號

l  屬性6:客戶姓名

l  屬性7:客戶電話

l  屬性8:備註

 

2.     聯繫

賓館客房管理系統設計中實體之間的聯繫如下(E-R圖):

 

 

 

 

 

 

 

二、 資料庫設計

1.     關係模式

賓館客房管理設計中的關係模式如下:

客戶(客戶編號,姓名,電話,E-mail)。關係的主鍵:客戶編號;外鍵:無

用戶(用戶編號,用戶姓名,密碼,性別(0-男,1-女),Email地址,通訊地址,聯繫電話,所在部門,用戶類型(1-酒店管理員,2-前臺服務員)。

關係主鍵:用戶編號;外鍵:無

客戶信息(身份證號,客戶姓名,聯繫電話)

關係主鍵:身份證號;外鍵:客戶姓名

客房類型(客房類型編號,類型名稱,客房面積,配置床位,客房價格,配置空調 (0-是,1-否),配置電視(0-是,1-否))

關係主鍵:客房類型編號;外鍵:類型名稱

客房信息(客房號,客房類型編號,客房位置,描述)

關係主鍵:客房號;外鍵:客房類型編號

客房狀態(客房編號,狀態(1-空房,2-入住))

關係主鍵:客房編號;外鍵:無。

客房業務(客房編號,入住時間客戶身份證號,備註)

關係主鍵:客房編號;外鍵:入住身份證號

業務記錄(入住時間,退房時間,客房編號,金額,客戶身份證號,客,姓名,客戶電話,備註)

關係主鍵:入住時間;外鍵:客房編號,客戶身份證,姓名,電話。

2.     數據表

本設計中創建的資料庫名為:

數據表分別為(將資料庫中設計的數據表表截圖至此)。

 

                            表1:用戶信息

 

 

表2:客戶信息

 

表3:客房信息類型表

 

   表4:客房信息表

 

       表5:客房狀態表

 

表6:客房業績表

             

 

    

 

表7:業務記錄表

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

資料庫關係圖為:

            

 
   

 


    

 

 

 

三、 資料庫實現

設計中實現資料庫操作的SQL 語句如下:

新建數據表:

 

1)用戶信息數據建表

 1  CREATE TABLE [dbo].weiwei( UserId Int 用戶編號
 2 Name Varchar(50) 用戶姓名
 3 Password Varchar(50) 密碼
 4 Gender Int 性別(0-男,1-女)
 5 Email Varchar(50) Email地址
 6 Address Varchar(50) 通訊地址
 7 Telephone Varchar(50) 聯繫電話
 8 Department Varchar(50) 所在部門
 9 
10 Type 
11 Int 用戶類型(1-酒店管理員,2-前臺服務員



2)客戶信息數據建表

1 CREATE TABLE [dbo]. CustomersInfo (  CIdentityId nVarchar(50) 身份證號
2 CName nVarchar(50) 客戶姓名
3 CPhone nVarchar(50) 聯繫電話)

 


3)客戶類型數據建表   

1 CREATE TABLE [dbo]. RoomCategory ( RCategoryId Int 客房類型編號
2 Name nVarchar(50) 類型名稱History
3 Area Float 客房面積
4 BedNum Int 配置床位
5 Price Money 客房價格
6 AirCondition Int 配置空調(0-是,1-否)
7 TV Int 配置電視(0-是,1-否)
8 
9 )

 

4)業務記錄數據建表

 

1 CREATE TABLE [dbo]. History ( BeginTime DateTime 入住時間
2 EndTime DateTime 退房時間
3 RoomId Int 客房編號
4 TotalPrice Money 金額
5 CIdentityId nVarchar(50) 客戶身份證號
6 CName nVarchar(50) 客戶姓名
7 CPhone nVarchar(50) 客戶電話
8 Remarks nVarchar(50) 備註

 

 

5)客房信息表

1 CREATE TABLE [dbo].RomsInfo (Room Int 客房號
2 Rcategoryld Int 客房編號
3 RPostition nvarchar(50) 客房位置
4 
5 Description nvarchar(50)  描述

 

 

6)客房狀態

1 CREATE TABLE [dbo].RoomStatus (Roomld Int 客房編號
2 
3 Status Int 狀態)

 

 

7)客房業務表

1 CREATE TABLE [dbo].RoomOPeration (Roomld Int 客房編號
2 
3 BeginTime DateTime 入住時間
4 
5 CIdentityId nVarchar(50) 客戶身份證號

 

二、查詢

1)業務記錄增加,刪除修改操作

插入:

1 INSERT
2 
3 INTO history(Roomld,Cname)
4 
5 Values(‘223456’,’345’)

 

刪除:

 1 DELETE
 2 
 3 FROM history
 4 
 5 WHERE Roomld=57 6 
 7 修改:UPDATE history
 8 
 9 SET Cname=45610 
11 WHERE Roomld=5678

 

2)用戶編號查詢:

1 SELECT userid
2 
3 From usersinfo
4 
5 Where Gender=’女’

 

 

3)客房類型查詢

1 select *
2 
3 from view_1 where 客房類型 in";
4 
5 where RCategoryld=123’)

 

4)客房信息查詢

select *

from view_1 where 客房信息 in";

where Roomld=‘063’)

5)客房狀態查詢

1 select *
2 
3 from view_1 where 客房狀態 in";
4 
5 where Roomld=723’)

 

6)客房業務表查詢

1 select *
2 
3 from view_1 where 客房業務 in";
4 
5 where Roomld=793’)

 

7)客戶信息查詢

 1 select * 2 3 from Customersinfo 

 

 

 

 

 

 

四、 程式設計

1.     類

設計中定義的Java類如下:

1)  weiwei類,表示設計中所有的客戶信息類,連接資料庫。

 

2)  load類,表示設計中的客房管理,是weiwei的子類。

 

3)  AddRooms類,表示設計中的客房管理,是weiwei的子類。

 

4)  UseOfRooms類,表示設計中的客戶,是weiwei的子類。

 

5)  CustomerInformation類,表示設計中的員工信息,是weiwei的子類。

 

6)  CheckStaff類,表示設計中的客戶,是weiwei的子類。

 

 

2.     類設計

1)weiwei類

  1 public class weiwei
  2 
  3 {
  4 
  5      private TAdminDAO adminDAO;
  6 
  7      private TRenyuanDAO renyuanDAO;
  8 
  9      public TAdminDAO getAdminDAO()
 10 
 11      {
 12 
 13             return adminDAO;
 14 
 15      }
 16 
 17      public void setAdminDAO(TAdminDAO adminDAO)
 18 
 19      {
 20 
 21             this.adminDAO = adminDAO;
 22 
 23      }
 24 
 25     
 26 
 27      public TRenyuanDAO getRenyuanDAO()
 28 
 29      {
 30 
 31             return renyuanDAO;
 32 
 33      }
 34 
 35      public void setRenyuanDAO(TRenyuanDAO renyuanDAO)
 36 
 37      {
 38 
 39             this.renyuanDAO = renyuanDAO;
 40 
 41      }
 42 
 43      public String login(String userName,String userPw,int userType)
 44 
 45      {
 46 
 47             System.out.println("userType"+userType);
 48 
 49             try
 50 
 51             {
 52 
 53                    Thread.sleep(700);
 54 
 55             } catch (InterruptedException e)
 56 
 57             {
 58 
 59                    // TODO Auto-generated catch block
 60 
 61                    e.printStackTrace();
 62 
 63             }
 64 
 65            
 66 
 67             String result="no";
 68 
 69            
 70 
 71             if(userType==0)//系統管理員登陸
 72 
 73             {
 74 
 75                    String sql="from TAdmin where userName=? and userPw=?";
 76 
 77                    Object[] con={userName,userPw};
 78 
 79                    List adminList=adminDAO.getHibernateTemplate().find(sql,con);
 80 
 81                    if(adminList.size()==0)
 82 
 83                    {
 84 
 85                            result="no";
 86 
 87                    }
 88 
 89                    else
 90 
 91                    {
 92 
 93                            WebContext ctx = WebContextFactory.get();
 94 
 95                            HttpSession session=ctx.getSession();
 96 
 97                            TAdmin admin=(TAdmin)adminList.get(0);
 98 
 99                            session.setAttribute("userType", 0);
100 
101                   session.setAttribute("admin", admin);
102 
103                   result="yes";
104 
105                    }
106 
107             }
108 
109             if(userType==1)
110 
111             {
112 
113                    String sql="from TRenyuan where gonghao=? and loginpw=? and del='no'";
114 
115                    Object[] con={userName.trim(),userPw.trim()};
116 
117                    List renyuanList=renyuanDAO.getHibernateTemplate().find(sql,con);
118 
119                    if(renyuanList.size()==0)
120 
121                    {
122 
123                            result="no";
124 
125                    }
126 
127                    else
128 
129                    {
130 
131                            WebContext ctx = WebContextFactory.get();
132 
133                            HttpSession session=ctx.getSession();
134 
135                            TRenyuan renyuan=(TRenyuan)renyuanList.get(0);
136 
137                            session.setAttribute("userType", 1);
138 
139                   session.setAttribute("renyuan", renyuan);
140 
141                   result="yes";
142 
143                    }
144 
145             }
146 
147             if(userType==2)
148 
149             {
150 
151                   
152 
153             }
154 
155             return result;
156 
157      }
158 
159  
160 
161     public String adminPwEdit(String userPwNew)
162 
163     {
164 
165             System.out.println("DDDD");
166 
167         try
168 
169             {
170 
171                    Thread.sleep(700);
172 
173             }
174 
175             catch (InterruptedException e)
176 
177             {
178 
179                    // TODO Auto-generated catch block
180 
181                    e.printStackTrace();
182 
183             }
184 
185             WebContext ctx = WebContextFactory.get();
186 
187             HttpSession session=ctx.getSession();
188 
189              
190 
191             TAdmin admin=(TAdmin)session.getAttribute("admin");
192 
193             admin.setUserPw(userPwNew);
194 
195            
196 
197             adminDAO.getHibernateTemplate().update(admin);
198 
199             session.setAttribute("admin", admin);
200 
201            
202 
203             return "yes";
204 
205     }
206 
207    
208 
209 }
210 
211  
212 
213 2)  load 類
214 
215 public class load extends JFrame implements ActionListener {
216 
217       private  boolean boo1=false,boo2=false;
218 
219     int Type=0;
220 
221       public JTextField []t ={new JTextField("用戶名:",8),new JTextField(27),
222 
223                    new JTextField("密碼:",8),new JPasswordField(27),
224 
225 new JTextField("賓館客房管理系統登陸界面--(設計人員:陳其巍)",36),
226 
227 new JTextField("後臺技術:應用資料庫加密技術--安全保護你的信息!請放心使用!",36),
228 
229 new JTextField("功能:管理賓館客房!",36)};
230 
231      public JButton []b={new JButton("登陸"),new JButton("退出")};
232 
233  ImageIcon ic=new ImageIcon(HoteLand.class.getResource("/百吉星級酒店.jpg"));
234 
235      JFrame app;
236 
237     Statement statement;
238 
239        //構造方法
240 
241      public weiwei(){
242 
243                  app= new JFrame("--賓館客房管理系統登陸界面--");
244 
245                          app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
246 
247                          app.setSize(438,583);
248 
249                          app.setResizable(false);
250 
251                          Container c=app.getContentPane();
252 
253                          c.setLayout(new FlowLayout());
254 
255                          JLabel aLabel=new JLabel(ic,JLabel.LEFT);
256 
257                          t[0].setFont(new Font("TimesRoman",Font.BOLD,13));
258 
259                 t[0].setForeground(Color.red);
260 
261                          t[0].setEditable(false);
262 
263                          t[2].setFont(new Font("TimesRoman",Font.BOLD,13));
264 
265                  t[2].setForeground(Color.red);
266 
267                          t[2].setEditable(false);
268 
269                          for(int i=0;i<4;i++)
270 
271                            c.add(t[i]);
272 
273                            c.add(b[0]);
274 
275                            c.add(b[1]);
276 
277                            for(int j=4;j<7;j++)
278 
279                            {
280 
281                               c.add(t[j]);
282 
283                            t[j].setFont(new Font("TimesRoman",Font.BOLD,13));
284 
285                    t[j].setForeground(Color.blue);
286 
287                            t[j].setEditable(false);
288 
289                           }
290 
291                            c.add(aLabel);
292 
293                     t[0].addActionListener(this);
294 
295                     t[2].addActionListener(this);
296 
297                     b[0].addActionListener(this);
298 
299                     b[1].addActionListener(this);
300 
301                 app.setVisible(true);
302 
303      }
304 
305          //消息響應方法
306 
307      public void actionPerformed(ActionEvent e){
308 
309                     JButton source=(JButton)e.getSource();
310 
311   //如果單擊"登陸"按鍵,執行StudentManager程式,該部分應用到資料庫加密技術
312 
313 if(source==b[0]){
314 
315  
316 
317  try{
318 
319 //基於SQL Server 2000 的 JDBC-ODBC 橋資料庫連接(先要創建一個數據源lib)
320 
321                                                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
322 
323                      //使用網路登錄ID的Windows NT 驗證(W)
324 
325 Connection conn=DriverManager.getConnection("jdbc:odbc:賓館客戶資料庫");                         statement=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
326 
327                                          String s1=t[1].getText();
328 
329                             String s2=t[3].getText();
330 
331 ResultSet resultset=statement.executeQuery("select * from UsersInfo where Name='"+s1+"'and Password='"+s2+"'");
332 
333                              resultset.next();
334 
335                              Type=resultset.getInt("Type");                       
336 
337                            if(resultset!=null){
338 
339                                             boo1=boo2=true;
340 
341                                             resultset.close();
342 
343                                          }
344 
345                                          }
346 
347                                         catch(Exception e1){
348 
349 JOptionPane.showMessageDialog(this,"用戶名和密碼不正確!","警告",JOptionPane.WARNING_MESSAGE);      
350 
351                                            }   
352 
353                                //如果輸入的用戶名和密碼都正確,則登陸
354 
355                              if(boo1&&boo2&&Type==1){
356 
357                                     Type=0;
358 
359                                         boo1=boo2=true;
360 
361                              new HoteMen(statement,"普通員工--"+t[1].getText());
362 
363                                      app.setVisible(false);
364 
365                              }
366 
367                             if(boo1&&boo2&&Type==2){
368 
369                                    Type=0;
370 
371                                                   boo1=boo2=true;
372 
373                      new HotelManagerMen(statement,"管理員--"+t[1].getText());
374 
375                                                    //new StudentManager();
376 
377                                                    app.setVisible(false);
378 
379                              }
380 
381                        }
382 
383                   //如果單擊"退出"按鍵,則退出登陸界面
384 
385                        if(source==b[1]){
386 
387                                  System.exit(0);
388 
389                           }
390 
391      }
392 
393      public static void main(String args[]){
394 
395         new weiwei();
396 
397       }
398 
399 }
400 
401 }

 

3)AddRooms類

  1 public class AddRooms extends weiwei implements ActionListener
  2 
  3 {
  4 
  5 Hashtable 基本信息表=null;
  6 
  7 JTextField 房間號,房間位置;
  8 
  9 JTextArea 描述;
 10 
 11 JButton 錄入,重置;
 12 
 13 Choice 房間類型;
 14 
 15 Statement  statement=null;
 16 
 17 JLabel 添加客房信息=null;
 18 
 19 public AddRooms(Statement statement)
 20 
 21 {
 22 
 23 this.statement=statement;
 24 
 25 房間號=new JTextField(10);

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

-Advertisement-
Play Games
更多相關文章
  • 整理 Kindle 標註、書簽和筆記從未如此簡單! Kindle 標註管理應用 "Kindle Mate" 只支持 Windows,不支持 Mac。標註只是解析 我的剪貼 文本文件,配合 "FileReader" API,寫個 Chrome 擴展解析文本文件就好了。 <! more "Chrome ...
  • 使用new關鍵字調用函數 test.js 代碼如下 function Person(name, age, obj) { var o = new Object(); o.name = name; o.age=age; o.obj=obj; o.sayName=function(){ alert(thi ...
  • 由於筆記比較雜,本身學習程度並不理想,所以暫時沒有整理這些繁雜的筆記。 ps:博客園markdown用起來和看起來都舒服太多了,這才是我瞭解的那個markdown,又回來了! 筆記 DOM對象 document object model DOM 中節點種類一共有三種 註:在JS中所有的節點都是對象 ...
  • 重新建立引用關係: 導出多個成員(必須在對象中): 方法一(使用 exports): exports.a = 123; exports.b = 'hello'; exports.c = () => { console.log('ccc'); }; exports.d = { foo: 'bar' } ...
  • 在http://www.w3school.com.cn/ 學習前端知識,利用暑假,自主學習以拓展知識面 DAY 1 HTML 不是一種編程語言,而是一種標記語言 (markup language) 標記語言是一套標記標簽 (markup tag) HTML 使用標記標簽來描述網頁 HTML 文檔描述 ...
  • 這裡總結一下上次使用bootstrap-select的過程中遇到的一些問題。至於bootstrap-select的具體使用方法這裡就不介紹了,網上有很多例子。 地址: 官方插件地址:https://developer.snapappointments.com/bootstrap-select Git ...
  • SpringCloud系列教程 | 第八篇:Spring Cloud Bus 消息匯流排 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如無特殊說明,本系列教程全採用以上版本 前面兩篇文章我們聊了Spring Cloud Config配置中心 ...
  • 課程設計(論文)任務書(文章末尾--源文檔下載) 軟體 學院 軟體工程 專業 2016 -7 班 一、課程設計(論文)題目 綜合課程設計2 二、課程設計(論文)工作自 2018 年 1月 1 日起至 2018 年 1月 12 日止。 三、課程設計(論文) 地點:軟體工程實訓中心一部 四、課程設計(論 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...