Android ORMapping库

自己用Java的注解实现了Android SQLite的ORM库,之前写过XML的,不过感觉不是很稳定,效率、鲁棒性各方面都不太好,今天花了一下午的时间,补全了所有的注解、注释,生成了javadoc,写了样例程序,并发布到了Github上,地址是:https://github.com/Steven-Luo/AnnotationDao,感兴趣的可以试着用用,比之前纯手动实现SQLite数据库的操作简单了许多,可扩展性也较好,用法如下:

 1 //实体类
 2 @Table(name = "dog")
 3 public class Dog {
 4     private boolean alive;
 5     private int id;
 6     private String name;
 7 
 8     public Dog() {
 9 
10     }
11 
12     public Dog(boolean alive, String name) {
13         this.alive = alive;
14         this.name = name;
15     }
16 
17     @Id(name = "id")
18     @Column(name = "id", type = DataType.Integer)
19     public int getId() {
20         return id;
21     }
22 
23     @Column(name = "name", type = DataType.Varchar, length = 20)
24     public String getName() {
25         return name;
26     }
27 
28     @Column(name = "alive", type = DataType.Boolean)
29     public boolean isAlive() {
30         return alive;
31     }
32 
33     public void setAlive(boolean alive) {
34         this.alive = alive;
35     }
36 
37     public void setId(int id) {
38         this.id = id;
39     }
40 
41     public void setName(String name) {
42         this.name = name;
43     }
44 }
45 
46 //添加
47 AnnotationDao dao = new AnnotationDao(this, Dog.class);
48 
49 String name = "dog1";
50 boolean alive = true;
51 
52 Dog dog = new Dog(alive, name);
53 dao.insert(dog);
54 
55 //查找
56 //列出所有对象
57 List list = dao.list();
58 //根据ID查询
59 dao.query(3);
60 
61 //删除
62 dao.delete(dog);
63 
64 //更新,更新时需要保证id字段跟数据库中的值是对应的,也就是之前调用list或query取出来的
65 dog.setName("dog2");
66 dao.update(dog);

这几天做一个项目,其中需要画一些曲线,虽然AChartEngine已经很好用了,但有几个图感觉还不太合意,最后决定自己画一个。其实主要是因为看了多看阅读上面的阅读时间曲线,觉得画得不错,所以我也就创新了一下,或者说山寨了一下,哈哈,效果如下图所示:

等改天把注释写好了,也放到GitHub上去,好东西,大家要一起分享^_^

posted @ 2014-07-28 18:14  Steven.Luo  阅读(773)  评论(0编辑  收藏  举报