zoukankan      html  css  js  c++  java
  • 第一行代码 6.4 数据存储全方案-详解持久化数据- 数据库

     

     

     

     

     

     

     

    参看前面:

     

    之前创建的数据

    Book表中,通过values传入一组数据

    数据中有 price要修改

    来修改原来的数据

     

     

     

     

     

     

                   

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 24
        buildToolsVersion "24.0.2"
    
        defaultConfig {
            applicationId "com.example.litepaltest"
            minSdkVersion 15
            targetSdkVersion 24
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:24.2.1'
        compile 'org.litepal.android:core:1.3.2'
    }
    

      

    <?xml version="1.0" encoding="utf-8"?>
    <litepal>
        <dbname value="BookStore" ></dbname>
    
        <version value="2" ></version>
    
        <list>
           
    </list> </litepal>

      

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.litepaltest">
    
        <application
            android:name="org.litepal.LitePalApplication"
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    

      

              

     

    package com.example.litepaltest;
    
    import org.litepal.crud.DataSupport;
    
    public class Book extends DataSupport {
    
        private int id;
    
        private String author;
    
        private double price;
    
        private int pages;
    
        private String name;
    
        private String press;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getAuthor() {
            return author;
        }
    
        public void setAuthor(String author) {
            this.author = author;
        }
    
        public double getPrice() {
            return price;
        }
    
        public void setPrice(double price) {
            this.price = price;
        }
    
        public int getPages() {
            return pages;
        }
    
        public void setPages(int pages) {
            this.pages = pages;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPress() {
            return press;
        }
    
        public void setPress(String press) {
            this.press = press;
        }
    
    }
    

       

    <?xml version="1.0" encoding="utf-8"?>
    <litepal>
        <dbname value="BookStore" ></dbname>
    
        <version value="2" ></version>
    
        <list>
            <mapping class="com.example.litepaltest.Book"></mapping>
            <mapping class="com.example.litepaltest.Category"></mapping>
        </list>
    </litepal>
    

      

     

    package com.example.litepaltest;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;

    import org.litepal.crud.DataSupport;
    import org.litepal.tablemanager.Connector;

    import java.util.List;

    public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button createDatabase = (Button) findViewById(R.id.create_database); createDatabase.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Connector.getDatabase(); } });
    }
    }

      

     

     

    package com.example.litepaltest;
    
    import org.litepal.crud.DataSupport;
    
    public class Book extends DataSupport {
    
        private int id;
    
        private String author;
    
        private double price;
    
        private int pages;
    
        private String name;
    
        private String press;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getAuthor() {
            return author;
        }
    
        public void setAuthor(String author) {
            this.author = author;
        }
    
        public double getPrice() {
            return price;
        }
    
        public void setPrice(double price) {
            this.price = price;
        }
    
        public int getPages() {
            return pages;
        }
    
        public void setPages(int pages) {
            this.pages = pages;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPress() {
            return press;
        }
    
        public void setPress(String press) {
            this.press = press;
        }
    
    }
    

      

    package com.example.litepaltest;
    
    public class Category {
    
        private int id;
    
        private String categoryName;
    
        private int categoryCode;
    
        public void setId(int id) {
            this.id = id;
        }
    
        public void setCategoryName(String categoryName) {
            this.categoryName = categoryName;
        }
    
        public void setCategoryCode(int categoryCode) {
            this.categoryCode = categoryCode;
        }
    
    }

     

    <?xml version="1.0" encoding="utf-8"?>
    <litepal>
        <dbname value="BookStore" ></dbname>
    
        <version value="2" ></version>
    
        <list>
            <mapping class="com.example.litepaltest.Book"></mapping>
            <mapping class="com.example.litepaltest.Category"></mapping>
        </list>
    </litepal>
    

      

     

     

     Button addData = (Button) findViewById(R.id.add_data);
            addData.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Book book = new Book();
                    book.setName("The Da Vinci Code");
                    book.setAuthor("Dan Brown");
                    book.setPages(454);
                    book.setPrice(16.96);
                    book.setPress("Unknow");
                    book.save();
                }
            });
    

      

     

      

     

     Button updateData = (Button) findViewById(R.id.update_data);
            updateData.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Book book = new Book();
                    book.setPrice(14.95);
                    book.setPress("Anchor");
                    book.updateAll("name = ? and author = ?", "The Lost Symbol", "Dan Brown");
                }
            });
    

      

     

       Button deleteButton = (Button) findViewById(R.id.delete_data);
            deleteButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    DataSupport.deleteAll(Book.class, "price < ?", "15");
                }
            });
    

      

      Button queryButton = (Button) findViewById(R.id.query_data);
            queryButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    List<Book> books = DataSupport.findAll(Book.class);
                    for (Book book: books) {
                        Log.d("MainActivity", "book name is " + book.getName());
                        Log.d("MainActivity", "book author is " + book.getAuthor());
                        Log.d("MainActivity", "book pages is " + book.getPages());
                        Log.d("MainActivity", "book price is " + book.getPrice());
                        Log.d("MainActivity", "book press is " + book.getPress());
                    }
                }
            });
    

      

    文件工程:

    1AndroidManifest

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.litepaltest">
    
        <application
            android:name="org.litepal.LitePalApplication"
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    

     

    2数据库

    <?xml version="1.0" encoding="utf-8"?>
    <litepal>
        <dbname value="BookStore" ></dbname>
    
        <version value="2" ></version>
    
        <list>
            <mapping class="com.example.litepaltest.Book"></mapping>
            <mapping class="com.example.litepaltest.Category"></mapping>
        </list>
    </litepal>
    

      

    3 类

     

    MainActivity

    package com.example.litepaltest;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    
    import org.litepal.crud.DataSupport;
    import org.litepal.tablemanager.Connector;
    
    import java.util.List;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button createDatabase = (Button) findViewById(R.id.create_database);
            createDatabase.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Connector.getDatabase();
                }
            });
    
            Button addData = (Button) findViewById(R.id.add_data);
            addData.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Book book = new Book();
                    book.setName("The Da Vinci Code");
                    book.setAuthor("Dan Brown");
                    book.setPages(454);
                    book.setPrice(16.96);
                    book.setPress("Unknow");
                    book.save();
                }
            });
            Button updateData = (Button) findViewById(R.id.update_data);
            updateData.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Book book = new Book();
                    book.setPrice(14.95);
                    book.setPress("Anchor");
                    book.updateAll("name = ? and author = ?", "The Lost Symbol", "Dan Brown");
                }
            });
            Button deleteButton = (Button) findViewById(R.id.delete_data);
            deleteButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    DataSupport.deleteAll(Book.class, "price < ?", "15");
                }
            });
            Button queryButton = (Button) findViewById(R.id.query_data);
            queryButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    List<Book> books = DataSupport.findAll(Book.class);
                    for (Book book: books) {
                        Log.d("MainActivity", "book name is " + book.getName());
                        Log.d("MainActivity", "book author is " + book.getAuthor());
                        Log.d("MainActivity", "book pages is " + book.getPages());
                        Log.d("MainActivity", "book price is " + book.getPrice());
                        Log.d("MainActivity", "book press is " + book.getPress());
                    }
                }
            });
        }
    
    }
    

    Book

    package com.example.litepaltest;
    
    import org.litepal.crud.DataSupport;
    
    public class Book extends DataSupport {
    
        private int id;
    
        private String author;
    
        private double price;
    
        private int pages;
    
        private String name;
    
        private String press;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getAuthor() {
            return author;
        }
    
        public void setAuthor(String author) {
            this.author = author;
        }
    
        public double getPrice() {
            return price;
        }
    
        public void setPrice(double price) {
            this.price = price;
        }
    
        public int getPages() {
            return pages;
        }
    
        public void setPages(int pages) {
            this.pages = pages;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPress() {
            return press;
        }
    
        public void setPress(String press) {
            this.press = press;
        }
    
    }

    Category

    package com.example.litepaltest;
    
    public class Category {
    
        private int id;
    
        private String categoryName;
    
        private int categoryCode;
    
        public void setId(int id) {
            this.id = id;
        }
    
        public void setCategoryName(String categoryName) {
            this.categoryName = categoryName;
        }
    
        public void setCategoryCode(int categoryCode) {
            this.categoryCode = categoryCode;
        }
    
    }
    

      4 主布局

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
    
        <Button
            android:id="@+id/create_database"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Create database"
            />
    
        <Button
            android:id="@+id/add_data"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Add data"
            />
    
        <Button
            android:id="@+id/update_data"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Update data"
            />
    
        <Button
            android:id="@+id/delete_data"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Delete data"
            />
    
        <Button
            android:id="@+id/query_data"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Query data"
            />
    
    </LinearLayout>
    

      

  • 相关阅读:
    F#周报2019年第33期
    The .NET World——gPRC概览
    编程杂谈——Non-breaking space
    F#周报2019年第32期
    F#周报2019年第31期
    F#周报2019年第30期
    pat 乙级 1015. 德才论 (25) c++
    pat 乙级 1008. 数组元素循环右移问题 (20)
    PAT 乙级 1007. 素数对猜想 (20) c++ 筛选法求素数
    PAT-B 1005. 继续(3n+1)猜想 (25) c++
  • 原文地址:https://www.cnblogs.com/kekeoutlook/p/9222123.html
Copyright © 2011-2022 走看看