023-67810419
News
網站建設、網站制作、網站設計等相關資訊

當前位置:首頁 > 新聞 > 一步一步開(kāi)發(fā)一個完整的APP(上篇)-數據庫和後(hòu)端服務開(kāi)發(fā)

一步一步開(kāi)發(fā)一個完整的APP(上篇)-數據庫和後(hòu)端服務開(kāi)發(fā)

日期:2024-02-05 11:00:36 訪問: 0 次 作者:

一、引子

近日學(xué)習了Flutter開(kāi)發(fā)APP的技術,原來一直做後(hòu)端,所以現在可以獨力做一個包括前,後(hòu)端的APP,這(zhè)樣可以把這(zhè)些技術做一個串聯。

二、APP功能(néng)概述

簡單的日志APP:支持添加日志,查詢曆史日志功能(néng)。

三、所用技術

前端:Flutter。開(kāi)發(fā)工具:VS Code。運行環境:Android。

後(hòu)端:C#,WebSocket,mysql。開(kāi)發(fā)工具:VS Studio 2017。運行環境:windows。

四、效果

APP最終效果

五、開(kāi)發(fā)步驟

1,數據庫設計

2,後(hòu)端服務開(kāi)發(fā)

3,前端APP開(kāi)發(fā)

六、數據庫設計

數據庫使用mysql,隻需簡單創建一個表即可。

包括以下字段:id(int,自增),date(DateTime,日志的時(shí)間),title(varchar,标題),

content(varchar,内容)。

1,創建數據庫:數據庫名DayLog,字符集gb2312,确定。

創建數據庫

2,創建數據表,表名daylog。

創建數據表

到這(zhè)裡(lǐ)數據庫就(jiù)創建完成(chéng)了,上述步驟比較簡略,如有疑問,請在評論中回複。

七、後(hòu)端服務開(kāi)發(fā)

1,創建一個控制台應用程序,名稱爲websockerServerExample。

創建項目

2,從NuGet添加WebsocketSharp庫引用。

添加Websocket引用

3,從NuGet添加WebsocketSharp庫引用。

添加json庫引用

4,編寫webSocket服務啓動代碼

//創建websocket服務

var server = new WebSocketServer("ws://192.168.1.19:7181");

//添加服務處理

server.AddWebSocketService<Log>( "/log" );

//啓動

server.Start();

Console.WriteLine("WebSocket啓動成(chéng)功!");

while(true)

{

}

5,編寫日志處理程序

public class Log : WebSocketBehavior

{

protected override void OnMessage(MessageEventArgs e)

{

//解析json字符串

dynamic obj = JsonConvert.DeserializeObject(e.Data);

String method = obj.Method;

//連接mysql

String connectStr = $"Server=127.0.0.1;Port=3306;" +

$"User=root;Database=daylog;Password=123456;Min Pool Size=100;" +

$"Pooling=false;SslMode=none;Charset=utf8;Allow User Variables = True";

DayLog log = new DayLog()

{

ConnectionString = connectStr,

};

dynamic res=new ReturnObj();

if(method=="Log.Add") //處理添加日志請求

{

String title = obj.Title;

String content = obj.Content;

dynamic r=log.Add(title, content);

res.Result = r;

Send(JsonConvert.SerializeObject(res));

}

else if (method == "Log.GetList") //處理獲取日志列表請求

{

dynamic r = log.GetList();

res.Result = r;

res.Method = "Log.GetList";

Send(JsonConvert.SerializeObject(res));

}

}

}

6,編寫數據庫交互代碼

//添加日志

public dynamic Add(string title,string content)

{

if(title=="")

return false;

if (content == "")

return false;

String sql=" insert into DayLog(title,content,date)"+

" values('"+title+"','"+content+"','"+DateTime.Now.ToString("yyyyMMddHHmmss")+"')";

var table = MysqlHelper.ExecuteReader(sql, ConnectionString);

if (table.RecordsAffected > 0)

{

table.Close();

return true;

}

table.Close();

return false;

}

/// <summary>

/// 獲得日志列表

/// </summary>

/// <returns></returns>

public dynamic GetList()

{

String sql="select * from DayLog order by date desc";

var table = MysqlHelper.ExecuteReader(sql, ConnectionString);

List<dynamic> list = new List<dynamic>();

while (table.Read())

{

list.Add(new

{

Id=table.GetInt32(table.GetOrdinal("id")),

Title = table["title"].ToString(),

Content = table["content"].ToString(),

Date = table["date"].ToString(),

}) ;

}

table.Close();

return list;

}

6,至此後(hòu)端服務程序就(jiù)可以正常啓動了。App的開(kāi)發(fā)過(guò)程將(jiāng)在下一篇文章中介紹,請關注。有任何疑問請在評論區回複!如需源碼,請在評論區填寫郵箱地址。

下篇地址: https://www.toutiao.com/i6732366510750171656/