一步一步开发一个完整的APP(上篇)-数据库和后端服务开发

手机APP/开发
392
0
0
2022-04-12
标签   APP开发

一、引子

近日学习了Flutter开发APP的技术,原来一直做后端,所以现在可以独力做一个包括前,后端的APP,这样可以把这些技术做一个串联。

一步一步开发一个完整的APP(上篇)-数据库和后端服务开发

二、APP功能概述

简单的日志APP:支持添加日志,查询历史日志功能。

三、所用技术

前端:Flutter。开发工具:VS Code。运行环境:Android。

后端:C#,WebSocket,mysql。开发工具:VS Studio 2017。运行环境:windows。

四、效果

一步一步开发一个完整的APP(上篇)-数据库和后端服务开发APP最终效果

五、开发步骤

1,数据库设计

2,后端服务开发

3,前端APP开发

六、数据库设计

数据库使用mysql,只需简单创建一个表即可。

包括以下字段:id(int,自增),date(DateTime,日志的时间),title(varchar,标题),

content(varchar,内容)。

1,创建数据库:数据库名DayLog,字符集gb2312,确定。

一步一步开发一个完整的APP(上篇)-数据库和后端服务开发创建数据库

2,创建数据表,表名daylog。

一步一步开发一个完整的APP(上篇)-数据库和后端服务开发创建数据表

到这里数据库就创建完成了,上述步骤比较简略,如有疑问,请在评论中回复。

七、后端服务开发

1,创建一个控制台应用程序,名称为websockerServerExample。

一步一步开发一个完整的APP(上篇)-数据库和后端服务开发创建项目

2,从NuGet添加WebsocketSharp库引用。

一步一步开发一个完整的APP(上篇)-数据库和后端服务开发添加Websocket引用

3,从NuGet添加WebsocketSharp库引用。

一步一步开发一个完整的APP(上篇)-数据库和后端服务开发添加json库引用

4,编写webSocket服务启动代码

/创建websocket服务
var server = new WebSocketServer("ws://192.168.1.19:7181");
//添加服务处理
server.AddWebSocketService<Log>( "/log" );
//启动
server.Start();
Console.WriteLine("WebSocket启动成功!");
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,至此后端服务程序就可以正常启动了。App的开发过程将在下一篇文章中介绍,请关注。有任何疑问请在评论区回复!如需源码,请在评论区填写邮箱地址。

下篇地址:

https://www.toutiao.com/i6732366510750171656/