unity3d 免费好用的数据库处理框架 数据库直连框架
2015-09-18 18:44
239 查看
一、概述
前不久有一个哥们做PC游戏开发的.使用到Unity3d,正好找到我.
我给他提供了Unity3d如何Moon.Orm来智能化编程的方式.
我们先看看怎么更加便捷sqlite.
/article/4815885.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.使用代码生成器
此链接介绍了如何使用代码生成器: /article/4815885.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(); }
相关文章推荐
- unity的forward rendering 中光源的使用和light的render mode
- Unity脚本中使用NGUI的预先准备
- 【unity-lua】笔记(备忘)
- Unity3D for Android 纹理压缩支持
- Ogre中四元数与三维向量(Unity3D异曲同工)
- Unity将来时:IL2CPP是什么?
- Unity开发shader中要用到的内置状态变量
- unity3d 在UGUI中制作自适应调整大小的滚动布局控件
- unity3d 中进行安卓版本的发布
- Default clip could not be found in attached animations list
- Unity3D Resources TextAsset 正文
- unity3d实现插件快速开发对话系统
- Unity3D中关于场景销毁时事件调用顺序的一点记录
- Unity3D实现3D立体游戏原理及过程
- Unity3D研究院之利用缓存池解决Instantiate慢的问题
- Unity 性能
- unity实现鼠标点击位置小脚印标志
- unity3d常用函数
- unity在加载场景时传递参数
- unity3d获取物体的一点总结