框架地址:https://github.com/yangfuhai/afinal

对应源码:

net.tsz.afinal.annotation.sqlite.*

net.tsz.afinal.db.sqlite.*

net.tsz.afinal.db.table.*

net.tsz.afinal.utils.ClassUtils、net.tsz.afinal.utils.FieldUtils

FinalDb

建库

[java] view
plain
copyprint?

  1. FinalDb db = FinalDb.create(context, "mytest.db", true);

有实体bean

[java] view
plain
copyprint?

  1. @Table(name = "user") //@Table 表示orm(对象关系映射)的表名
  1. public class User {
  1. private int id;
  1. private String name;
  1. private String email;
  1. private Date registerDate;
  1. private Double money;
  1. /////////////getter and setter 不能省略哦///////////////
  1. public int getId() {
  1. return id;
  1. }
  1. public void setId(int id) {
  1. this.id = id;
  1. }
  1. public String getName() {
  1. return name;
  1. }
  1. public void setName(String name) {
  1. this.name = name;
  1. }
  1. public String getEmail() {
  1. return email;
  1. }
  1. public void setEmail(String email) {
  1. this.email = email;
  1. }
  1. public Date getRegisterDate() {
  1. return registerDate;
  1. }
  1. public void setRegisterDate(Date registerDate) {
  1. this.registerDate = registerDate;
  1. }
  1. public Double getMoney() {
  1. return money;
  1. }
  1. public void setMoney(Double money) {
  1. this.money = money;
  1. }
  1. }

建表

[java] view
plain
copyprint?

  1. db.save(user);

主键注解:

FinalDB OneToMany懒加载使用方法:

public
class Parent{

private
int id;

@OneToMany(manyColumn=
"parentId")

private OneToManyLazyLoader<Parent,Child>children;

/*....*/

}

public
class Child{

private
int id;

private Stringtext;

@ManyToOne(column=
"parentId")

private Parentparent;

/*....*/

}

List<Parent>all
= db.findAll(Parent.class);

for(Parent
item :
all){

if(item.getChildren().getList().size()>0)

Toast.makeText(this,item.getText()+
item.getChildren().getList().get(0).getText(),Toast.LENGTH_LONG).show();

}

必须有一个主键。默认列名为id,并自增。使用注解@Id(column="id")

实际bean中没有id属性,使用@id(column="name") 使name成主键 ,非integer等整数类型,不会自增

属性注解

@Property(column=“uname") ,  将属性name映射成表中的uname字段

取消orm的注解

@Transient 表示不将某属性映射到表中

一对多关系

@OneToMany(manyColumn="parentid")

多对一关系

@ManyToOne(column="parentid")

模型定义:

使用:

FinalDb对象,有很多方法,CRUD等操作。

参考链接:http://blog.csdn.net/jjwwmlp456/article/details/38562753

Android Afinal框架学习(一) FinalDb 数据库操作的更多相关文章

  1. Android Afinal框架学习(二) FinalActivity 一个IOC框架

    框架地址:https://github.com/yangfuhai/afinal 相应的源代码: net.tsz.afinal.annotation.view.* FinalActivity Fina ...

  2. 十三、EnterpriseFrameWork框架核心类库之数据库操作(多数据库事务处理)

    本章介绍框架中封装的数据库操作的一些功能,在实现的过程中费了不少心思,针对不同数据库的操作(SQLServer.Oracle.DB2)这方面还是比较简单的,用工厂模式就能很好解决,反而是在多数据库同时 ...

  3. Android Afinal框架

    项目如图: 本文参考网络! Afinal是一个开源的android的orm和ioc应用开发框架,其特点是小巧灵活,代码入侵量少.在android应用开发中,通过 Afinal的ioc框架,诸如ui绑定 ...

  4. 开源项目之Android Afinal框架

    项目如图: 本文参考网络! Afinal是一个开源的android的orm和ioc应用开发框架,其特点是小巧灵活,代码入侵量少.在android应用开发中,通过Afinal的ioc框架,诸如ui绑定, ...

  5. 带你走进Android Afinal框架的世界

    1.什么是Afinal框架? Afinal是一个开源的android的orm和ioc应用开发框架,其特点是小巧灵活,代码入侵量少.在android应用开发中,通过Afinal的ioc框架,诸如ui绑定 ...

  6. 学习MySQL之数据库操作(一)

    所有代码,均为自学时用到的测试与注释,知识细节或知识点不会面面俱到,亦不会有任何讲解,只做为自己学习复习用. ##数据库操作 ##创建数据库 myTest ,并将数据库字符集设为GBK CREATE ...

  7. Android:SQLiteOpenHelper类(SQLlite数据库操作)详细解析

    前言 SQLite数据库操作在Android开发中非常常用 今天我将带大家全面了解关于SQLite数据库的操作(增.删.查.改) 目录 1. SQLite数据库介绍 SQLite是Android内置的 ...

  8. ThinkPHP 学习笔记 ( 三 ) 数据库操作之数据表模型和基础模型 ( Model )

    //TP 恶补ing... 一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: publ ...

  9. Android学习四:数据库操作

    1前言 android中使用SQLite作为数据库,在进行相关的开发的时候不需要导入包.SQLite起符合SQL标准,也有自己的一些特性,是一个轻量级的数据库. 2代码 简单的数据库类封装 packa ...

随机推荐

  1. Django基础一

    Django基础一 Web框架本质 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演 ...

  2. Levenshtein距离

    Levenshtein Distance,又称Edit Distance,在自然语言处理中有着广泛的应用.Levenshtein  Distance 指的是两个字符串之间,由一个转换成另一个所需的最少 ...

  3. 笔记2:Jmeter核心组件

    资料来源:开源优测 微信公众号,作者:苦叶子 Jmeter核心组件 1.Thread Group(线程组) 2.逻辑控制器,配置元件,定时器,前置处理器,Sample,后置处理器,断言,监听器: 3. ...

  4. CF335B

    /*CF335B 这个题目的n达到50000,但是串只是有小写字母组成,所以如果字符串的长度大于2600,那么 肯定存在,所开始输入就判断如果长度大于2600,那么直接找当个字母输出100个 否则执行 ...

  5. 【笔记】Maven使用入门

    参考<maven实战> 1.编写POM 2.编写主代码 3.编写测试代码 4.打包和运行 具体如下: 1.编写POM. <!-- XML头,指定了该xml文档的版本和编辑方式 --& ...

  6. J2EE--Struts2基础开发笔记

    内容中包含 base64string 图片造成字符过多,拒绝显示

  7. [Android]AndFix使用说明

    AndFix使用说明 AndFix,全称是Android hot-fix.是阿里开源的一个热补丁框架,允许APP在不重新发布版本的情况下修复线上的bug.支持Android 2.3 到 6.0,并且支 ...

  8. sqlserver一般需求

    1.创建一个函数:将用逗号分隔的字符串变成一个表的一列,这样就可以运用在select 语句的in中查询 create Function StrToTable(@str varchar()) Retur ...

  9. 对拷 使用scp命令在两台linux上对拷文件或者文件夹

    以前一直是在服务器上tar打包压缩,下载到本地电脑上,再上传到另外一台服务器上,再解压. 其实使用scp命令就可以直接对拷文件或者文件夹了. scp就是secure copy,是用来进行远程文件拷贝的 ...

  10. java用servlet、cookie实现一个阅读记录

    效果如图 代码1 package com.xiaostudy.servlet; import java.io.IOException; import java.io.PrintWriter; impo ...