android orm之greendao

前提:最近写android项目,android自带数据库api有点复杂,于是偷懒用了greendao。greendao好处自己查,这里不赘述,但是零基础的的我用起来还是费了3天的功夫,取之于网络,特在此奉献与网络。

1:通过daoGenerator生成所需要的关键文件

步骤1、新建的java工程,起名daoGenerator

步骤2:导入两个jar包,分别是freemarker-2.3.20.jar和greendao-generator-1.3.1.jar,下载路径:http://search.maven.org,你可以在这里搜索上述两个包,自己导入到java工程中,

导入的时候记着不要有中文路径

步骤3:新建daoGenerator.java文件,文件格式如下

import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Property;
import de.greenrobot.daogenerator.Schema;
import de.greenrobot.daogenerator.ToMany;


public class daoGenerator {

    public static void main(String[] args) throws Exception {
        Schema schema = new Schema(1,"com.example.menu");
        
        addMenuDetail(schema);
        addMenuTable(schema);

        new DaoGenerator().generateAll(schema, "./");
    }
    
    private static void addMenuTable(Schema schema)
    {
        Entity menuTable = schema.addEntity("MenuTable");
        menuTable.addStringProperty("menuName");//菜单的名称(周一早餐通用版)
        menuTable.addIntProperty("menuType");//0早餐 1午餐 2晚餐
        menuTable.addLongProperty("menuId").primaryKey().autoincrement();//菜单id
        menuTable.addStringProperty("menuCreateTime");//菜单创建时间
        menuTable.addLongProperty("storeId");//店铺的编号        
    }
    
    
    private static void addMenuDetail(Schema schema) {
        Entity menuDetail = schema.addEntity("MenuDetail");
        menuDetail.addStringProperty("menuDateId");
        menuDetail.addLongProperty("menuId");//菜单id
        menuDetail.addIntProperty("widgetId");//控件id
        menuDetail.addStringProperty("type");//控件类型:textview、pic、line、verticalLine、theme、tips
        menuDetail.addStringProperty("name");//控件内容 "疙瘩汤"
        menuDetail.addDoubleProperty("x");//x
        menuDetail.addDoubleProperty("y");//y
    }
    
    

}

该工程运行完毕会在当前目录下产生一个文件夹com,进入example再进入到menu(为什么会产生这样一个文件夹,这是由我们在程序中 Schema schema = new Schema(1,"com.example.menu"), new DaoGenerator().generateAll(schema, "./");这两行决定的,如果你运行出错,请查看你是不是路径写错),可以发现生成如下几个文件:

 

简要说明:menuDetail和menuTable就是我们在daoGenerator中指定生成的表,在生成的文件中每张表分别对应两个文件,举例:表menuTable对应的两个文件一个是menuTable,一个是menuTableDao。

menuTable.java文件主要是menuDetail中取得和设置列中元素的方法,见下图,注意:这是自动生成的代码,如果要修改列中元素名称可以在daoGenerator中修改

 1 package com.ShanFuBao.SmartCall.menu;
 2 
 3 // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. Enable "keep" sections if you want to edit. 
 4 /**
 5  * Entity mapped to table MENU_TABLE.
 6  */
 7 public class MenuTable {
 8 
 9     private String menuName;
10     private Integer menuType;
11     private Long menuId;
12     private String menuCreateTime;
13     private Long storeId;
14 
15     public MenuTable() {
16     }
17 
18     public MenuTable(Long menuId) {
19         this.menuId = menuId;
20     }
21 
22     public MenuTable(String menuName, Integer menuType, Long menuId, String menuCreateTime, Long storeId) {
23         this.menuName = menuName;
24         this.menuType = menuType;
25         this.menuId = menuId;
26         this.menuCreateTime = menuCreateTime;
27         this.storeId = storeId;
28     }
29 
30     public String getMenuName() {
31         return menuName;
32     }
33 
34     public void setMenuName(String menuName) {
35         this.menuName = menuName;
36     }
37 
38     public Integer getMenuType() {
39         return menuType;
40     }
41 
42     public void setMenuType(Integer menuType) {
43         this.menuType = menuType;
44     }
45 
46     public Long getMenuId() {
47         return menuId;
48     }
49 
50     public void setMenuId(Long menuId) {
51         this.menuId = menuId;
52     }
53 
54     public String getMenuCreateTime() {
55         return menuCreateTime;
56     }
57 
58     public void setMenuCreateTime(String menuCreateTime) {
59         this.menuCreateTime = menuCreateTime;
60     }
61 
62     public Long getStoreId() {
63         return storeId;
64     }
65 
66     public void setStoreId(Long storeId) {
67         this.storeId = storeId;
68     }
69 
70 }
View Code

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。