欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

afinal框架FinalDb数据库应用

程序员文章站 2022-07-12 18:03:12
...

                        在我们学习afinal框架前,大家一定学过安卓自带的数据库,Sqlite,这种数据虽然也提供了很多方便的方法建表,插入删除什么的,但是对于初学者来说无疑是非常麻烦的,冗余的步骤,多的要死的代码,写完就忘,格式记不住。别担心,现在使用afinal框架,建表,插入删除一步到位。

  • 首先我们需要把afinal框架的jar拖入到lib中

  • afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 
     这里的包会上传,大家自行下载,拖入
  • 然后就可以使用了finaldb了

Finaldb的工作原理非常简单,就是你首先定义一个类,去存储任何你想要存的,之后Finaldb会把这个类直接封装成一个表,现在我们看看具体实现。

首先建立一个User类,这里我们因为形象化定义类名,类名随意。

注意一点,建立User类必须包含id,否则建表出错

public class User {
    
    private int id;
    private String name;
    private String course;//课程
    private int grade;//成绩
   
     
    /////////////getter and setter 不能省略哦///////////////
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
   
    
    public String getCourse() {
        return course;
    }
    public void setCourse(String course) {
        this.course = course;
    }
    public int getGrade() {
        return grade;
    }
    public void setGrade(int grade) {
        this.grade = grade;
    }
    
     
     
     
     
     
}

 然后,在主MainActivity里面写入

public class MainActivityActivity extends FinalActivity {
     
     
    @ViewInject(id=R.id.textView) TextView textView; //这里使用了afinal的ioc功能,以后将会讲到
     
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         
        FinalDb db = FinalDb.create(this);
         
        User user = new User();
        user.setName("zyy");
        user.setCourse("离散");
        user.setGrade(78);
                 
        db.save(user);
         
        List<User> userList = db.findAll(User.class);//查询所有的用户
         
        Log.e("AfinalOrmDemoActivity", "用户数量:"+ (userList!=null?userList.size():0));
         
        textView.setText(userList.get(0).getName()+":"+user.getRegisterDate());
    }
}

 

注意让Activity继承FinalActivity,到这里就完了,一定很惊讶这么简单就完成了?!!!!

然后注意添加权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

 大家查看的时候可以用DDMS查看


afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 
 接下来我们建立较为复杂数据库,可以存入多值,并可以查找离散,高数成绩的平均分

public class MainActivity extends FinalActivity {

	@ViewInject(id=R.id.info) TextView info;
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//直接建表
		FinalDb db=FinalDb.create(this);
		db.deleteAll(User.class);
		for (int i = 0; i < 5; i++) {
			User user=new User();
			user.setName("张依依"+i);
			user.setCourse("高数");
			user.setGrade(100-i);
			db.save(user);
			
		}
		for (int i = 0; i < 5; i++) {
			User user=new User();
			user.setName("张依依"+(i+5));
			user.setCourse("离散");
			user.setGrade(78+i);
			db.save(user);
			
		}
//		List<User> userlist=db.findAll(User.class);
//		String text="";
//		for (int i = 0; i < userlist.size(); i++) {
//			text+=userlist.get(i).getName()+userlist.get(i).getCourse()+userlist.get(i)
//					.getGrade()+"\n";
//		}
//		info.setText(text);
		List<User> userlist=db.findAllByWhere(User.class, "course='离散'");
		List<User> userlist1=db.findAllByWhere(User.class, "course='高数'");
		CourseAverage course=new CourseAverage();
		
//		Toast.makeText(getApplicationContext(), ""+userlist.size(), Toast.LENGTH_SHORT).show();
		int average=0;
		for (int i = 0; i < userlist.size(); i++) {
			average+=userlist.get(i).getGrade();
		}
		course.setCourse("离散");
		course.setAverage(average/userlist.size());
		db.save(course);
		CourseAverage course1=new CourseAverage();
		int average2=0;
		for (int i = 0; i < userlist.size(); i++) {
			average2+=userlist1.get(i).getGrade();
		}
		course1.setCourse("高数");
		course1.setAverage(average2/userlist.size());
		db.save(course1);
		List<User> userlist2=db.findAllByWhere(User.class, "grade<95");
		Toast.makeText(getApplicationContext(), ""+userlist2, Toast.LENGTH_SHORT).show();
		List<User> userlist3=db.findAllByWhere(User.class, "1=1","grade");
		
	}



}

 看见我们又定义一个表用来存储高数离散平均分,我们看一下另一个类的建立

public class CourseAverage {

	private int average;
	private int id;
	private String course;// 课程

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getCourse() {
		return course;
	}

	public void setCourse(String course) {
		this.course = course;
	}

	public int getAverage() {
		return average;
	}

	public void setAverage(int average) {
		this.average = average;
	}

}

 

这样就完成了,整个数据库建立,我们来看一下效果图吧

手机必须root才能查看,下载root explorer


afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 
afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 


afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 

 afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 
 我们会发现表名是系统定义的,但是为什么我的数据库可以自己命名呢,诀窍在这里

@Table(name = "CourseAverage")
public class CourseAverage {

 在class上方加入自己定义的表名即可

学习了这么方便的数据库,是不是雀雀欲试呢?

 

 
 
 

 

  • afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 
  • 大小: 2.1 KB
  • afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 
  • 大小: 79.5 KB
  • afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 
  • 大小: 101.3 KB
  • afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 
  • 大小: 60 KB
  • afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 
  • 大小: 53.4 KB
  • afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 
  • 大小: 34.5 KB
  • afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 
  • 大小: 47.3 KB
  • afinal框架FinalDb数据库应用
            
    
    博客分类: Android数据存储 afinal框架FinalDb安卓数据库 
  • 大小: 18.5 KB