好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Unity3D使用Siaqodb基本增删改查Demo

UnityEngine; using System.Collections; using System; using System.IO; using Sqo; public class MyDBFactory { public static string siaoqodbPath; private static Siaqodb instance; public static Siaqodb GetInstance() { if (instance == null ) { // if ANDROID: // siaoqodbPath=Application.persistentDataPath; // if Windows or MAC siaoqodbPath = Environment.CurrentDirectory + Path.DirectorySeparatorChar + @" mydatabase " ; Debug.Log(Environment.CurrentDirectory); // if iOS (iPhone /iPad) // siaoqodbPath =Application.dataPath; if (! Directory.Exists(siaoqodbPath)) { Directory.CreateDirectory(siaoqodbPath); } instance = new Siaqodb(siaoqodbPath); } return instance; } public static void CloseDatabase() { if (instance != null ) { instance.Close(); instance = null ; } } }

 

数据结构类,相当于数据库表结构类似

 using   UnityEngine;
  using   System.Collections;
  public   class   Persss  {
      public   string  Name {  get ;  set  ; }

      public   string  Msg {  get ;  set  ; }


      public   int  OID {  get ;  set  ; }
} 

数据操作的相对Persss的一个封装类,使数据操作更清晰

 using   UnityEngine;
  using   System.Collections;
  using   System;
  using   System.Collections.Generic;
  using   System.Linq;
  using   Sqo;

  public   class   MyPManager  {


      public   static  List<Persss> GetRecentPlayers( int   count)
    {
        Siaqodb database  =  MyDBFactory.GetInstance();

        IEnumerable <Persss> query = ( from  Persss player  in   database
                                       orderby   player.OID descending
                                       select   player).Take(count);

          return  query.ToList<Persss> ();
    }
      public   static  Persss LoadPlayer( string   name)
    {

        Siaqodb database  =  MyDBFactory.GetInstance();

        Persss p  = ( from  Persss player  in   database
                      where  player.Name ==  name
                      select  player).FirstOrDefault<Persss> ();

          if  (p ==  null ) //  not exists so create and save 
         {
            p  =  new   Persss();
            p.Name  =  name;
            p.Msg  =  "未找到  "  ;

            
        }
          return   p;

    }
      public   static   int   TotalPlayers()
    {
        Siaqodb database  =  MyDBFactory.GetInstance();

          return  database.Count<Persss> ();
    }
      public   static   void   SavePlayer(Persss p)
    {
        Siaqodb database  =  MyDBFactory.GetInstance();
        database.StoreObject(p);
    }
} 

 

主要的类

 using   UnityEngine;
  using   System.Collections;
  using   System.Collections.Generic;
  using   System;
  using   System.IO;
  using   Sqo;
  using   UnityEngine.UI;
  using   System.Linq;
  public   class   mySiaqodbDemo : MonoBehaviour {
    Siaqodb database;


      public   InputField inset_name;
      public   InputField inset_msg;

      public   InputField read_name;
      public   InputField read_msg;
      public   InputField read_Oid;

      public   Text show_text;

      public   InputField up_name;
      public   InputField up_msg;
      public   InputField up_Oid;


      public   InputField del_input;

      //   Use this for initialization 
     void   Start () {
         database  =  MyDBFactory.GetInstance();
        
        List <Persss> recentPlayers =  MyPManager.GetRecentPlayers(MyPManager.TotalPlayers());

        Debug.Log(  "  Perss count is   "  +  MyPManager.TotalPlayers() );
          foreach  (Persss p3  in   recentPlayers)
        {
            Debug.Log(  "  OID:   "  +p3.OID.ToString() + "    Name:  "  + p3.Name +  "    Message:  "  + p3.Msg + "  --end--  "  );
                 if (p3.OID< 410  )
               {
                  //  database.Delete(p3); 
                 }
        }

    }

      public   void   BtnInSertData()
    {
        Persss p  =  new   Persss();
          string  n =  inset_name.text.Trim();
          string  ms =  inset_msg.text.Trim();
          if ( n.Length > 1  && ms.Length > 1    )
        {
        p.Name  =  inset_name.text;
        p.Msg  =  inset_msg.text;
        MyPManager.SavePlayer(p);
        }
        BtnReadAllData();
    }

      public   void   BtnReadDataByOID()
    {
          int  ood =  Convert.ToInt32(read_Oid.text);
        Debug.Log(ood);
        Persss dss  = ( from  Persss p  in  database  where  (p.OID == ood)  select   p).FirstOrDefault();
          if  (dss !=  null  )
        {
              //  Persss dssp = dss as Persss; 
            read_name.text =  dss.Name;
            read_msg.text  =  dss.Msg;
            read_Oid.text  =  dss.OID.ToString();

            up_Oid.text  =  dss.OID.ToString();
            up_name.text  =  dss.Name;
            up_msg.text  =  dss.Msg;

        }
          else   
        {
            read_Oid.text  =  "  空值  "  ;
        }
        
    }


      public   void   BtnReadAllData()
    { 
          List <Persss> recentPlayers =  MyPManager.GetRecentPlayers(MyPManager.TotalPlayers());

        Debug.Log(  "  Perss count is   "  +  MyPManager.TotalPlayers() );
        show_text.text  =  ""  ;
          foreach  (Persss p3  in   recentPlayers)
        {
            Debug.Log(  "  OID:   "  +p3.OID.ToString() + "    Name:  "  + p3.Name +  "    Message:  "  + p3.Msg + "  --end--  "  );
            Debug.Log(  "  ReadAllDate  "  );
            show_text.text  +=  "  OID:   "  + p3.OID.ToString() +  "    Name:  "  + p3.Name +  "    Message:  "  + p3.Msg +  "  --end--  "  ;
        }
         
    }


      public   void   BtnUpdateDataByOID()
    {
        Persss u  = ( from  Persss p  in  database  where  (p.OID == Convert.ToInt32(up_Oid.text))  select   p).FirstOrDefault();
        Debug.Log(  up_Oid.text);
          if  (u !=  null  )
        {
            u.Name  =  up_name.text;
            u.Msg  =  up_msg.text;
              //   u.OID =Convert.ToInt32( up_Oid.text ); 
            Debug.Log( "  UpdataByOID  "  );
            database.StoreObject(u);
        }

        BtnReadAllData();
    }

      public   void   BtnDeleteDataByName()
    {
        Persss dss  = ( from  Persss p  in  database  where  (p.Name == del_input.text )  select   p).FirstOrDefault();

          if  (dss !=  null  )
        {
            database.Delete(dss);
        }
        BtnReadAllData();
    }

      public   void   BtnDeleteDataByMsg()
    {
        Persss dss  = ( from  Persss p  in  database  where  (p.Msg == del_input.text)  select   p).FirstOrDefault();

          if  (dss !=  null  )
        {
            database.Delete(dss);
        }
        BtnReadAllData();
    }

      public   void   BtnDeleteDataByOID()
    {
        Persss dss  = ( from  Persss p  in  database  where  (p.OID == Convert.ToInt32 (del_input.text))  select   p).FirstOrDefault();

          if  (dss !=  null  )
        {
            database.Delete(dss);
        }
        BtnReadAllData();
    }

      void   OnApplicationQuit()
    {
        database  =  null  ;
    }
    
} 

 

Unity3D主界面

 

插入数据测试

 

其它功能类似可用

Unity3D使用Siaqodb基本增删改查Demo

标签:

查看更多关于Unity3D使用Siaqodb基本增删改查Demo的详细内容...

  阅读:34次