當前位置:首頁 > 新聞 > 一步一步開(kāi)發(fā)一個完整的APP(上篇)-數據庫和後(hòu)端服務開(kāi)發(fā)
一步一步開(kāi)發(fā)一個完整的APP(上篇)-數據庫和後(hòu)端服務開(kāi)發(fā)
一、引子
近日學(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。
四、效果
五、開(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庫引用。
3,從NuGet添加WebsocketSharp庫引用。
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/