Code Monkey home page Code Monkey logo

litepalsample's Introduction

Android数据库框架之LitePal

简述

LitePal是郭神(郭霖)在2014年的杰作,Github地址:LitePal。LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式,并将我们平时开发时最常用到的一些数据库功能进行了封装,使得不用编写一行SQL语句就可以完成各种建表、増删改查的操作。并且LitePal很"轻",jar包只有100k不到,而且近乎零配置,这一点和hibernate这类的框架有很大区别。

LitePal的基本配置

引入Jar包或依赖

dependencies 
{
	compile 'org.litepal.android:core:1.6.1'
}

配置litepal.xml

在main/assets目录下创建一个litepal.xml文件,复制以下代码进去

<?xml version="1.0" encoding="utf-8"?>  
<litepal>  
	<dbname value="数据库名" ></dbname>  
	<version value="数据库版本号,用于更新数据库" ></version>  
<list>
    <!--这里是类映射-->  
</list>  
</litepal>

配置LitePalApplication

这里有两种方式:

  • 指定application name为LitePalApplicatio
  • 自定义Application,并添加application name

LitePal的用法

创建实体类

每个实体类对应一张数据表,这里创建两个实体类Song和Album

public class Song extends DataSupport 
{
	@Column(nullable = false)
	private String name;
	private int duration;
	// generated getters and setters.
}

public class Album extends DataSupport 
{

	@Column(unique = true, defaultValue = "unknown")
	private String name;
	private float price;
	private int number;
	//generated getters and setters.
}

创建的数据表分别为:

加入新表对就实体类的引用

增删改查

增加数据(保存数据)

	Album album = new Album();
    album.setName("album");
    album.setPrice(10.99f);
    album.setNumber(100);
    album.save();

    Song song1 = new Song();
    song1.setName("song1");
    song1.setDuration(150);
    song1.save();

修改数据(更新数据)

这里有提供两种操作:

  • 第一种:

      Song songToUpdate = DataSupport.find(Song.class, 1);
      songToUpdate.setDuration(300);
      songToUpdate.save();
      Toast.makeText(this, "数据已更新" , Toast.LENGTH_SHORT).show();
    
  • 第二种:

      Song songToUpdate = new Song();
      songToUpdate.setDuration(300); // raise the price
      songToUpdate.update(1);
    

删除数据

这里也有两种操作:

  • 删除某一条件
    DataSupport.delete(Song.class, 1);
  • 删除满足条件所有 DataSupport.deleteAll(Song.class, "duration > ?", "100");

查找数据

List<Song> allSongs = DataSupport.findAll(Song.class);      

参考:
LitePalSample

litepalsample's People

Contributors

pgzxc avatar

Stargazers

dengwei avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.