1、java工程 libs下需要的jar包 freemarker-2.3.10.jar 和greendao-generator-1.3.1.jar 

1-1、java项目代码

package com.dqb.greendao;


import java.io.IOException;


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


public class MyTest
{


    public static void main(String[] args)
    {
        /**
         * 1是版本号,后面的包名是android项目中必须有的包名,等生成的java文件之后,
         * 
         * 可以把这个整个拷去Android中
         * 
         */
        String defaultJavaPackage = "com.dqb.greendao.model";
        Schema schema = new Schema(1, defaultJavaPackage);
        
        addPerson(schema);
        addPerson2(schema);
        addPerson3(schema);
        try
        {
            /**
             * 生成java文件-->> ..是当前路径;GreenDaoSimpleDemo_JAVA是项目名,src是java文件目录
             * 再拼接刚刚的包名,就会在那个包下生成java文件,运行之后,记得刷新,第一次没有刷新,所以一直看不到
             */
            new DaoGenerator().generateAll(schema, "../MyJavaGreenDAO/src/");
        } catch (IOException e)
        {
            e.printStackTrace();
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }


    private static void addPerson(Schema schema)
    {
        /** 一个Entity就是一张表的关系映射 Person既是表名又是类名 */
        Entity entity = schema.addEntity("Person");
        /** 增加属性(表字域) */
        entity.addIdProperty().autoincrement();
        entity.addStringProperty("name").notNull();
        entity.addStringProperty("sex");
        entity.addIntProperty("age");
    }
    private static void addPerson2(Schema schema)
    {
        /** 一个Entity就是一张表的关系映射 Person既是表名又是类名 */
        Entity entity = schema.addEntity("Person2");
        /** 增加属性(表字域) */
        entity.addIdProperty().autoincrement();
        entity.addStringProperty("name").notNull();
        entity.addStringProperty("sex");
        entity.addIntProperty("age");
    }
    private static void addPerson3(Schema schema)
    {
        /** 一个Entity就是一张表的关系映射 Person既是表名又是类名 */
        Entity entity = schema.addEntity("Person3");
        /** 增加属性(表字域) */
        entity.addIdProperty().autoincrement();
        entity.addStringProperty("name").notNull();
        entity.addStringProperty("sex");
        entity.addIntProperty("age");
    }
}

刷新项目 生成的文件:在com.dqb.greendao.model 包下 ,拷贝到android项目下。包名最好一致

2、android项目

2-1 数据库操作类 GreenDaoUtil

package com.example.myandroidgreendao.model.util;


import java.util.List;


import com.example.myandroidgreendao.model.DaoMaster;
import com.example.myandroidgreendao.model.DaoMaster.OpenHelper;
import com.example.myandroidgreendao.model.DaoSession;
import com.example.myandroidgreendao.model.Person;
import com.example.myandroidgreendao.model.PersonDao;
import com.example.myandroidgreendao.model.PersonDao.Properties;


import de.greenrobot.dao.query.QueryBuilder;


import android.content.Context;
import android.database.sqlite.SQLiteDatabase;


public class GreenDaoUtil
{
    Context    context;
    DaoMaster  daoMaster;
    DaoSession daoSession;


    public GreenDaoUtil(Context context)
    {
        this.context = context;
        OpenHelper help = new DaoMaster.DevOpenHelper(context, "Person", null);
        SQLiteDatabase db = help.getWritableDatabase();
        daoMaster = new DaoMaster(db);
        daoSession = daoMaster.newSession();


    }


    // 增加
    public void insertIntoPerson(Person person)
    {
        daoSession.insertOrReplace(person);
    }


    // 删除
    public void deletePersion(long key)
    {
        PersonDao personDao = daoSession.getPersonDao();
        personDao.deleteByKey(key);
    }


    // 更新
    public void updatePerson(Person person, long key, String name)
    {
        person.setId(key);
        person.setName(name);
        daoSession.update(person);
    }


    // 按照name查找
    public List queryByName(String name)
    {
        QueryBuilder query = daoSession.queryBuilder(Person.class);
        List queryByName = query.where(Properties.Name.eq(name)).list();
        return queryByName;
    }


    // 查找所有
    public List queryAll()
    {
        QueryBuilder query = daoSession.queryBuilder(Person.class);
        List all = query.list();
        return all;
    }
}


2-2 MainActivity

package com.example.myandroidgreendao;


import java.util.List;


import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;


import com.example.myandroidgreendao.model.Person;
import com.example.myandroidgreendao.model.util.GreenDaoUtil;


public class MainActivity extends ActionBarActivity
{
    GreenDaoUtil greenDaoUtil;


    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        greenDaoUtil = new GreenDaoUtil(this);
        Button btn_add = (Button) findViewById(R.id.btn_add);
        Button btn_delete = (Button) findViewById(R.id.btn_delete);
        Button btn_update = (Button) findViewById(R.id.btn_update);
        Button btn_query_by_name = (Button) findViewById(R.id.btn_query_by_name);
        Button btn_query_all = (Button) findViewById(R.id.btn_query_all);
        final Person p = new Person(null, "tom", "female", 46);
        final Person p2 = new Person(null, "tom2", "female", 46);
        btn_add.setOnClickListener(new View.OnClickListener()
        {


            @Override
            public void onClick(View v)
            {
                greenDaoUtil.insertIntoPerson(p);
                greenDaoUtil.insertIntoPerson(p2);
                System.out.println("插入成功");
            }
        });
        btn_delete.setOnClickListener(new View.OnClickListener()
        {


            @Override
            public void onClick(View v)
            {
                greenDaoUtil.deletePersion(1l);
                System.out.println("删除成功");


            }
        });
        btn_update.setOnClickListener(new View.OnClickListener()
        {


            @Override
            public void onClick(View v)
            {
                greenDaoUtil.updatePerson(p, 1l, "update-name");
                System.out.println("更新成功");
            }
        });
        btn_query_by_name.setOnClickListener(new View.OnClickListener()
        {


            @Override
            public void onClick(View v)
            {
                List plist = greenDaoUtil.queryByName("tom");
                for (int i = 0; i < plist.size(); i++)
                {
                    String name = plist.get(i).getName() + "";
                    System.out.println("查找的name==" + name == (null) ? "null" : name);
                }


            }
        });


        btn_query_all.setOnClickListener(new View.OnClickListener()
        {


            @Override
            public void onClick(View v)
            {
                StringBuffer sb = new StringBuffer();
                List allPersonList = greenDaoUtil.queryAll();
                for (int i = 0; i < allPersonList.size(); i++)
                {
                    long id = allPersonList.get(i).getId();
                    String name = allPersonList.get(i).getName();
                    int age = allPersonList.get(i).getAge();
                    String sex = allPersonList.get(i).getSex();
                    sb.append("id==" + id).append(",name=" + name).append(",age=" + age).append(",sex=" + sex).append("\n");


                }
                System.out.println(sb.toString());
            }
        });
    }
}

2-3 

讲java代码生成的类放入Android目录下

更多相关文章

  1. 在Android studio 项目中使用 9patch常见问题解决
  2. Android 读取TXT 文件中文乱码 解决方案
  3. android:获取网络时间、文件路径,修改包名,发布release版本
  4. [GeoWay]android用于打开各种文件的intent
  5. Android Studio设置apk文件名
  6. Android文件列表RecyclerView中点击视频播放
  7. Android Dex文件结构
  8. 介绍两个Android开源项目:Android显示GIF动画

随机推荐

  1. android 自定义view 不执行 ondraw的解决
  2. Android(安卓)8. Android(安卓)方法过时
  3. 调试Android第三方应用所需要的工具
  4. AndClear - Android(安卓)Clean-up Manag
  5. android防止控件多次点击
  6. android 重写TextView 实现文字整齐排版
  7. android保存用户名密码
  8. android 全屏去掉底部虚拟导航栏
  9. android studio 56 下载网络歌曲 代码
  10. Android(安卓)Fragment