android greendao框架中,多表怎么插入数据和关联数据

android greendao框架中,多表怎么插入数据和关联数据,第1张

一下载GreenDao

要使用肯定要先下载他的软件包了,官网上有它的连接,对于marven和gradle环境直接到serarchmavenorg上下载jar包就好了。

下载的jar导入到工程里面就可以了,通常都是/libs目录下。

上面那个下载地址下载解压后有三个文件如下图

首先我们要创建java generator工程greendao-generator-130jar 和 freemarker-2320jar是我们创建java generator工程时生成Dao文件需要用到的(什么是我说的Dao文件,往下看就会知道) 

greendao-137jar是Android开发中需要用到的

二创建generator工程(用来生成GreenDao开发过程中需要的java文件)

(1)创建Java工程(非Android工程) 

(2)导入greenDao-generatorjar和freemarkerjar两个包。freemarker是一个用java写的模板引擎,它能够基于模板来生成文本输出。应该就是用来自动生成DAO文件的。eclipse下面就是在properties –> Java build path –> libraries下面导入jar包。 

(3)创建一个包javagreendao 

(4)创建一个类,类名为ExampleDaoGenerator,类的定义如下:

package javagreendao;

import degreenrobotdaogeneratorDaoGenerator;

import degreenrobotdaogeneratorEntity;

import degreenrobotdaogeneratorProperty;

import degreenrobotdaogeneratorSchema;

import degreenrobotdaogeneratorToMany;

/

Generates entities and DAOs for the example project DaoExample

Run it as a Java application (not Android)

@author Markus

/

public class ExampleDaoGenerator

{

   //总之main函数就执行了下面几个函数                                                                                                                                                                                                                                             

   public static void main(String[] args) throws Exception

   {

   // 参数3是数据库版本号,“comcnspeedchatgreendao”是包名,也就是说生成的Dao文件会在这个包下,可以将Schema理解为数据库上下文吧

        Schema schema = new Schema(3, "comcnspeedchatgreendao");

        //addNote() addSession() addReplay()这三个函数相当于建立了三个表,表名你都可以不用管了会自动生成

       addNote(schema);      

       addSession(schema);

       addReplay(schema);

       addCustomerOrder(schema);

   //这个是生成Dao文件的路径的位置,这个代表当前工程的上一级目录的javagreendao的src-gen文件夹里面,其实就是跟src同一级目录,所以你自己要在src同一级目录下新建一个src-gen文件夹待会要生成的文件

       new DaoGenerator()generateAll(schema, "/javagreendao/src-gen");    

   }

     //这个是一个Note表,然后后面的nodeadd是表的字段名以及属性                                                                                                                                                                                          

   private static void addNote(Schema schema)                

   {

       //"MqttChatEntity"相当于是表的类名,用MqttChatEntity生成对象就可以访问这个表属性了,也就是这个表对应了这个类,待会使用你就会明白了

       Entity note = schemaaddEntity("MqttChatEntity");    

       noteaddIdProperty()autoincrement();

       noteaddIntProperty("mode")notNull();

       noteaddStringProperty("sessionid")notNull();

       noteaddStringProperty("from")notNull();

       noteaddStringProperty("to")notNull();

       noteaddStringProperty("v_code");

       noteaddStringProperty("timestamp")notNull();

       noteaddStringProperty("platform");

       noteaddStringProperty("message");

       noteaddBooleanProperty("isread")notNull();

       noteaddLongProperty("gossipid");

       noteaddStringProperty("gossip");

       noteaddIntProperty("chattype")notNull();

       noteaddStringProperty("imagepath");

       noteaddStringProperty("base64image");

   }

   //这个是一个Session表,然后后面的nodeadd是表的字段名以及属性(这是我写的会话的一个表)

   private static void addSession(Schema schema)    

   {

       Entity note = schemaaddEntity("SessionEntity");

       noteaddIdProperty()autoincrement();

       noteaddStringProperty("sessionid")notNull()unique();

       noteaddStringProperty("from")notNull();

       noteaddStringProperty("to")notNull();

       noteaddLongProperty("gossipid")notNull();

       noteaddStringProperty("gossip");

       noteaddIntProperty("sessiontype")notNull();

       noteaddBooleanProperty("asdasd")notNull();

   }

 //这个是一个Replay表,然后后面的nodeadd是表的字段名以及属性(这是我写的回复的一个表)

   private static void addReplay(Schema schema)

   {

       //ReplayEntity对应的类名

       Entity note = schemaaddEntity("ReplayEntity");    

       noteaddIdProperty()autoincrement();

       noteaddIntProperty("mode")notNull();

       noteaddStringProperty("from")notNull();

       noteaddStringProperty("to")notNull();

       noteaddStringProperty("v_code");

       noteaddStringProperty("timestamp")notNull();

       noteaddStringProperty("platform");

       noteaddStringProperty("message");

       noteaddIntProperty("msgtype")notNull();

       noteaddBooleanProperty("isread")notNull();

   }

   //这个不用管了,照抄吧

   private static void addCustomerOrder(Schema schema)    

   {

       Entity customer = schemaaddEntity("Customer");

       customeraddIdProperty();

       customeraddStringProperty("name")notNull();

       Entity order = schemaaddEntity("Order");

       ordersetTableName("ORDERS"); // "ORDER" is a reserved keyword

       orderaddIdProperty();

       Property orderDate = orderaddDateProperty("date")getProperty();

       Property customerId = orderaddLongProperty("customerId")notNull()getProperty();

       orderaddToOne(customer, customerId);

       ToMany customerToOrders = customeraddToMany(order, customerId);

       customerToOrderssetName("orders");

       customerToOrdersorderAsc(orderDate);

   }                                                                                                                                                                                                                                                                                                              

}

1)增加表如果你自己想加一些其他的表的话,你可以自己按照addSession,addNote ,addReplay三个函数的方式加,类名、字段名可以自己随便取比如说,比我我要加一个用户表,字段包括name,age,sex三个,我可以这样做

   private static void addUser(Schema schema)  

   {

       Entity note = schemaaddEntity("UserEntity");    

       noteaddIdProperty()autoincrement();

       noteaddStringProperty("name")notNull();

       noteaddIntProperty("age")notNull();

       //true代表男,false代表女

       noteaddBooleanProperty("sex")notNull();    

   }

然后在main函数里面做如下调用

   public static void main(String[] args) throws Exception

   {

       Schema schema = new Schema(3, "comcnspeedchatgreendao");    

       addNote(schema);        

       addSession(schema);

       addReplay(schema);

       addUser(schema);

       addCustomerOrder(schema);

       new DaoGenerator()generateAll(schema, "/javagreendao/src-gen");

   }

2)删除表当然一些不需要的表你可以不用,删掉就行,比如说你不须要addReplay,你就在main函数里面别调用addReplay(schema)就行

总之呢,这就是一个基于greenDao-generatorjar和freemarkerjar两个包的java工程

然后运行该工程,控制台打印出如下结果:

greenDAO Generator Copyright 2011-2013 Markus Junginger,

greenrobotde Licensed under GPL V3 This program comes with

ABSOLUTELY NO WARRANTY Processing schema version 3… Written

/home/csm/workspace/javagreendao/src-gen/com/cn/speedchat/greendao/MqttChatEntityDaojava

Written

/home/csm/workspace/javagreendao/src-gen/com/cn/speedchat/greendao/MqttChatEntityjava

Written

/home/csm/workspace/javagreendao/src-gen/com/cn/speedchat/greendao/SessionEntityDaojava

Written

/home/csm/workspace/javagreendao/src-gen/com/cn/speedchat/greendao/SessionEntityjava

Written

/home/csm/workspace/javagreendao/src-gen/com/cn/speedchat/greendao/ReplayEntityDaojava

Written

/home/csm/workspace/javagreendao/src-gen/com/cn/speedchat/greendao/ReplayEntityjava

Written

/home/csm/workspace/javagreendao/src-gen/com/cn/speedchat/greendao/CustomerDaojava

Written

/home/csm/workspace/javagreendao/src-gen/com/cn/speedchat/greendao/Customerjava

Written

/home/csm/workspace/javagreendao/src-gen/com/cn/speedchat/greendao/OrderDaojava

Written

/home/csm/workspace/javagreendao/src-gen/com/cn/speedchat/greendao/Orderjava

Written

/home/csm/workspace/javagreendao/src-gen/com/cn/speedchat/greendao/DaoMasterjava

Written

/home/csm/workspace/javagreendao/src-gen/com/cn/speedchat/greendao/DaoSessionjava

Processed 5 entities in 189ms

这代表成功的生成了Dao文件,然后我们按F5刷新该工程,在查看src-gen目录文件,自动生成了很多java文件,这就是我们要的,我这里截图给大家看

但是有很多错误是不是,没关系,这个工程识别不了这些文件,这些文件是基于greendao-137jar包的,是Android工程里面要用到的。先不管这个java工程了。

green是greenmaster品牌移动空调。按暖气需要把每组暖气片进回水管需安装控制阀门,同时暖气片外延与立管间距不应小于200mm。打开暖气片包装时,一定要仔细核对包装箱内的暖气片类型、颜色及附件是否齐全,正规的暖气片厂家如鲁本斯暖气片免费提供跑风、丝堵、胀钉、挂钩等标准配件。

一定要安装进水阀门和回水阀门,不要为了省钱而忽略,不然暖气片出现故障后很难维修。

greenmaster移动空调介绍

greenmaster移动空调非常好,局部范围内,降温效果比普通空调要快。不用和普通空调一般固定墙上,而是可以更灵活地移动,对局部范围进行制冷,快速达到降温效果,也更加节能。

不用考虑室外机的安放位置,就像风扇一样方便,即插即用。只需用排风管将热风导出,立刻拥有凉爽空间。是不仅可以冷却空气,还可以对空气进行除湿。

移动空调有制冷和除湿两种模式,将两个单元合二为一,可以同时消除了空气中的湿气和热量,营造干爽清凉的环境。

侠盗列车手-圣安地列的全部秘籍:

ONSPEED =走的更快

PANZER =给你个坦克

NUTTERTOOLS =变态武器

YOUWONTTAKEMEALIVE =加2个警察抓你的星星

LEAVEMEALONE =警察星星变零

ASPIRINE =加满血

LIFEISPASSINGMEBY =时间过得更快

PRECIOUSPROTECTION =加满防弹衣

PROFESSIONALTOOLS - 得到专业武器

THUGSTOOLS =棍子类武器

PROFESSIONALTOOLS =枪类武器

APLEASANTDAY =好天气

ALOVELYDAY =超好天气

ABITDRIEG =云天

CATSANDDOGS =雨天

CANTSEEATHING =小雨天

THUGSTOOLS - 得到杀手武器

PROFESSIONALTOOLS - 得到专业武器

NUTTERTOOLS - 得到神秘武器

PRECIOUSPROTECTION - 装甲全满

ASPIRINE - 体力全满

YOUWONTTAKEMEALIVE - 通缉级别+2

LEAVEMEALONE - 通缉级别变为0

APLEASANTDAY - 好天气

ABITDRIEG - 阴天

CATSANDDOGS - 雨天

CANTSEEATHING - 雾天

PANZER - 得到一辆坦克

LIFEISPASSINGMEBY - 时间流逝加速

BIGBANG - 附近车辆爆炸

STILLLIKEDRESSINGUP - 改变玩家外貌

FIGHTFIGHTFIGHT - 街上的市民互相残杀

NOBODYLIKESME - 攻击市民造成更大伤害

OURGODGIVENRIGHTTOBEARARMS - 每个人都拥有武器

ONSPEED - 行动速度加快

BOOOOOORING - 行动速度减慢

ICANTTAKEITANYMORE - 自杀

GREENLIGHT - 全部交通信号变为绿灯

MIAMITRAFFIC - 行人加速

TRAVELINSTYLE - 飞车

ROCKANDROLLCAR - 得到豪华轿车

RUBBISHCAR - 得到垃圾车

GETTHEREFAST - 得到大马力车

MYSONISALAWYER - 变成律师

ROCKANDROLLMAN - 变成摇滚歌手

ONEARMEDBANDIT - 变成武装强盗

IDONTHAVETHEMONEYSONNY - 变成黑手党成员

GETTHEREQUICKLY - 得到快车

GETTHEREVERYFASTINDEED - 得到拉力赛车

GETTHEREAMAZINGLYFAST - 得到最快的跑车

FANNYMAGNET - 吸引女性

CHEATSHAVEBEENCRACKED - 变成秃顶

CERTAINDEATH - 嘴里抽雪茄

BIGBANG =附近所有车子爆炸

STILLLIKEDRESSINGUP =换玩家的人物

FIGHTFIGHTFIGHT =街上人打架

NOBODYLIKESME =街上人被你装了会跌到

OURGODGIVENRIGHTTOBEARARMS =街上所有人有武器

SEAWAYS - 下水 (一些版本不可用)

MUCHCASH - 加$500000 (一些版本不可用)

ELVIS IS HERE - 无警察 (一些版本不可用)

IAMASUCKER - 所有关卡和所有武器以及上帝模式 (一些版本不可用)

YAKUZADEATH - 上帝模式 (一些版本不可用)

RSJABBER - 上帝模式 (一些版本不可用)

LIVELONG - 上帝模式(但仍会被拘捕) (一些版本不可用)

<<GTA-SA>>游戏秘籍

LXGIWYL = Weapon Set 1, Thug''s Tools暴徒武器

KJKSZPJ = Weapon Set 2, Professional Tools专业武器

UZUMYMW = Weapon Set 3, Nutter Tools疯狂武器

HESOYAM = Health, Armor, 0k生命、护甲满,加25万美圆

OSRBLHH = Increase Wanted Level Two Stars增加两星通缉度

ASNAEB = Clear Wanted Level清除通缉程度

AFZLLQLL = Sunny Weather万里无云

ICIKPYH = Very Sunny Weather阳光明媚

ALNSFMZO = Overcast Weather阴云密布

AUIFRVQS = Rainy Weather阴雨绵绵

CFVFGMJ = Foggy Weather大雾弥漫

YSOHNUL = Faster Clock时钟加快

PPGWJHT = Faster Gameplay操控加快

LIYOAAY = Slower Gameplay操控减慢

AJLOJYQY = Peds Attack Each Other, Get Golf Club行人互相攻击,得到高尔夫球杆

BAGOWPG = Have a bounty on your head得到一大笔奖励

FOOOXFT = Everyone is armed行人全副武装

AIWPRTON = Spawn Rhino刷新一辆坦克

CQZIJMB = Spawn Bloodring Banger刷新一辆Bloodring Banger

JQNTDMH = Spawn Rancher刷新一辆Rancher

PDNEJOH = Spawn Racecar刷新一辆Racecar

VPJTQWV = Spawn Racecar刷新一辆Racecar

AQTBCODX = Spawn Romero刷新一辆Romero

KRIJEBR = Spawn Stretch刷新一辆Stretch

UBHYZHQ = Spawn Trashmaster刷新一辆Trashmaster

RZHSUEW = Spawn Caddy刷新一辆Caddy

CPKTNWT = Blow Up All Cars所有车辆爆炸

XICWMD = Invisible car隐行车辆

PGGOMOY = Perfect Handling完美操控

SZCMAWO = Suicide自杀

ZEIIVG = All green lights交通信号灯变绿

YLTEICZ = Aggressive Drivers司机有攻击性

LLQPFBN = Pink traffic所有车辆变粉色

IOWDLAC = Black traffic所有车辆变黑色

AFSNMSMW = Boats fly船只飞行

BTCDBCB = Fat主角变胖

JYSDSOD = Max Muscle主角肌肉值最大

KVGYZQK = Skinny主角变得皮包骨

ASBHGRB = Elvis is Everywhere行人变成猫王

BGLUAWML = Peds Attack You With Weapons, Rocket Launcher行人

用武器攻击你,得到火箭发射器

CIKGCGX = Beach Party海滩聚会

MROEMZH = Gang Members Everywhere到处都是黑帮

BIFBUZZ = Gangs Control the Streets黑帮控制街道

AFPHULTL = Ninja Theme忍者模式

BEKKNQV = Slut Magnet吸引女性

BGKGTJH = Traffic is Cheap Cars交通工具慢速

GUSNHDE = Traffic is Fast Cars交通工具快速

RIPAZHA = Cars Fly汽车飞行

JHJOECW = Huge Bunny Hop超级兔子跳

JUMPJET = Spawn Hydra刷新一辆Hydra

KGGGDKP = Spawn Vortex Hovercraft刷新一辆Vortex Hovercraft

JCNRUAD = Smash n'' Boom汽车一击必炸

COXEFGU = All Cars Have Nitro所有车辆得到一氧化二氮加速剂

BSXSGGC = Cars Float Away When Hit车辆被撞击时会漂浮

XJVSNAJ = Always Midnight永远是午夜

OFVIAC = Orange Sky 21:00永远是晚上9点

MGHXYRM = Thunderstorm雷暴天气

CWJXUOC = Sandstorm沙尘暴天气

LFGMHAL = Mega Jump超级跳跃

BAGUVIX = Infinite Health无限生命

CVWKXAM = Infinite Oxygen无限氧气

AIYPWZQP = Have Parachute得到降落伞

BAGUVIX = 无限生命

AEZAKMI = 永远不会被通缉

WANRLTW = 无限弹药,不用换弹夹

IAVENJQ = 超级攻击

JCNRUAD = Smash n' Boom汽车一击必炸

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/meirong/11496853.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-12-02
下一篇2023-12-02

发表评论

登录后才能评论

评论列表(0条)

    保存