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开源项目:Android显示GIF动画
  2. solve build_static_library with nothing issue
  3. 八款android日历 [Calendar] 开源项目框架分类总汇
  4. Android(安卓)新加几个开源项目
  5. Android天气预报项目
  6. Android第七期 - 二维码扫描与生成图
  7. 最常用的GitHub—— Android(安卓)开源项目整理(精品)
  8. android junit入门(一) JUNIT测试
  9. Android系列之Android(安卓)命令行手动编译打包详解

随机推荐

  1. 正式工作后的一些变化和感受
  2. 爬虫智能解析库 Readability 和 Newspape
  3. 这个面试官不讲套路,怎么上来就问个架构问
  4. Leader:这样的 Bug 你也写的出来???
  5. 面试官问了我分布式事务,我感觉他有想给我
  6. 持续输出|我的 2019 年
  7. IDEA Debug 无法进入断点的解决方法
  8. 这可能是 Python 面向对象编程的最佳实践
  9. 协作,才能更好的中断线程
  10. 别再造假数据了,来试试 Faker 这个库吧!