unity3d 免费好用的数据库处理框架 数据库直连框架

一、概述

前不久有一个哥们做PC游戏开发的.使用到Unity3d,

正好找到我.

我给他提供了Unity3d如何Moon.Orm来智能化编程的方式.

我们先看看怎么更加便捷sqlite.

http://www.cnblogs.com/humble/p/4593133.html

using System;
using Moon_Sqlite;
using Moon.Orm;
using Moon.Orm.Util;
namespace testsome
{
    class Program
    {
        public static void Main(string[] args)
        {
            //添加数据
            using (var db=new Sqlite("sqlite的链接字符串")) {
                /*清空数据表
                db.Remove<ScoreSet>();
                db.Remove<StudentSet>();
                db.Remove<ClassSet>();
                 */
                //添加数据
                Class cl=new Class();
                cl.ClassName="班级"+DateTime.Now.ToString();
                cl.ClassLevel=1;
                db.Add(cl);
                Console.WriteLine("添加[班级]成功,ID={0}",cl.ID);
                
                Student stu=new Student();
                stu.Age=12;
                stu.BirthDay=DateTime.Now;
                stu.Class_ID=cl.ID;
                stu.Name="张三"+DateTime.Now;
                stu.Sex=true;
                db.Add(stu);
                Console.WriteLine("添加[学生]成功,ID={0}",stu.ID);
                
                Score sco=new Score();
                sco.Score_=98;
                sco.Student_ID=stu.ID;
                db.Add(sco);
                Console.WriteLine("添加[分数]成功,ID={0}",stu.ID);
                
                //跟新数据
                Score update=new Score();
                update.Score_=100;
                update.WhereExpression=ScoreSet.ID.Equal(sco.ID);
                db.Update(update);
            }
            //查询数据
            using (var db=Db.CreateDefaultDb()) {
                //连接查询
                var mqlJoin=ScoreSet.SelectAll()
                    .InnerJoin(StudentSet.Select(StudentSet.Name))
                    .InnerJoin(ClassSet.Select(ClassSet.ID.AS("ClassID"),ClassSet.ClassName))
                    .ON(ScoreSet.Student_ID.Equal(StudentSet.ID)
                        .And(StudentSet.Class_ID.Equal(ClassSet.ID) )
                       );
                //查看当前sql
                var sql=mqlJoin.ToDebugSQL();
                var list=db.GetDictionaryList(mqlJoin);
                //展示数据
                list.ShowInConsole();
                
                //让我们无需实体类
                string sql2=mqlJoin.ToParametersSQL();
                dynamic dlist=db.GetDynamicList(sql2,"自定义类名");
                foreach (dynamic entity in dlist) {
                    Console.WriteLine(entity.ID+" "+entity.Score+" "+entity.Student_ID+" "+entity.Name+" "+entity.ClassID+" "+entity.ClassName);
                }
                //获取实体集
                var entityList=db.GetEntities<Score>(ScoreSet.SelectAll().Where(ScoreSet.ID.BiggerThan(0)));
                
                
            }
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}

 

二、Unity3D中如何使用.

1.下载moon.orm

下载地址:

 http://lko2o.com/moon/article/3

2.引用moon.orm.dll

 

3.放置程序库到如下位置

将moon.orm.dll ,System.Data.SQLite.dll ,SQLite.Interop.dll sqlite数据库文件放入unity3d编辑器exe所在位置;

这时候编辑器中就可以直接看到查询结果了.

注意:以及在最终的目标程序那里同样放一份.(生成之后再放)

 

4.使用代码生成器

此链接介绍了如何使用代码生成器: http://www.cnblogs.com/humble/p/4593133.html

 

5.开始编码

using(var db=new Sqlite("sqlite的链接字符串")){

  var mql=UserSet.Select(UserSet.Name).Where(UserSet.ID.Equal(9));

  var name=db.GetScale(mql).ToString();

}

 

posted @ 2015-09-18 18:44  【秦时明月】  Views(3037)  Comments(0Edit  收藏