ORM, which is Object Relation Mapping, objects relational mapping, realizes the correspondence between the class inside the program and the data inside the database, and the operation of the database can be realized by the operation of the class, without writing the SQL statement, thus improving the development efficiency and saving the development time.
In Java Web Development, there are many ORM frameworks, such as Hibernate. In Android development, there are also some ORM frameworks that enable the operation of the SQLite database. such as Litepal, Greendao, Ormlite and so on. This article focuses on Litepal.
1. mapping files and entity classes
Download the Litpal jar file and copy it to the Libs folder below. Create a new Litepal.xml file under the Assets folder:
<?XML version= "1.0" encoding= "Utf-8"?><Litepal> <dbnamevalue= "Easydb" /> <versionvalue= "1" /> <List> <Mappingclass= "Com.example.hzhi.fragmentdemo.Myclass" /> </List></Litepal>
Where MyClass is the entity class:
PackageCom.example.hzhi.fragmentdemo;ImportOrg.litepal.crud.DataSupport;/*** Created by Administrator on 2016/8/27.*/ Public classMyclassextendsDatasupport {PrivateInteger Id; PrivateString Name; PrivateString Teacher; PrivateInteger Studytime; PrivateString picture; PublicMyclass () {} PublicMyclass (integer ID, string name, Integer studytime, string teacher, string picture) {ID=ID; Name=name; Studytime=Studytime; Teacher=teacher; picture=Picture ; } PublicInteger getId () {returnId; } Public voidsetId (Integer ID) {ID=ID; } PublicString GetName () {returnName; } Public voidsetName (String name) {Name=name; } PublicString Getteacher () {returnTeacher; } Public voidSetteacher (String teacher) {teacher=teacher; } PublicInteger Getstudytime () {returnStudytime; } Public voidsetstudytime (Integer studytime) {studytime=Studytime; } PublicString getpicture () {returnPicture ; } Public voidsetpicture (String picture) { picture=Picture ; }}
This sets the database's table and entity class correspondence, when the database operation, if the database does not have this table, will create a new table, the name of the table and the entity class name is the same, the table field is the entity class properties.
2. Inserting Data
The code is simple:
New Myclass (); Mc.setid (0); Mc.setname ("Computer network"); Mc.setteacher ("Zhang San"); Mc.setstudytime (+); Mc.save ();
Is it almost identical to hibernate's insert data? Eliminates the hassle of writing SQL statements!
3. Querying Data
Public Static list<myclass>= Datasupport.findall (Myclass. Class);
The above statement is to query out all records. There are a few other ways:
(1) Datasupport.findall (Myclass. Class, 1, 3, 5), indicating query 1th, 3, 5 data;
(2) Datasupport.select (). where (). order (). Find (Myclass. Class), indicating the field to query and the query criteria;
(3) cursor cursor = DATASUPPORT.FINDBYSQL (), query by SQL statement.
Android ORM--litepal (1)