学习日志

学习日志,第1张

概述学习目标:1.要求使用SQLite数据库保存通讯录,使得每次运行程序均能显示当前联系人的列表2.主界面包含一个添加联系人按钮和一个联系人列表点击添加联系人按钮能添加新的联系人。3.对数据库进模糊查询学习内容:1.使用OrmLite数据库要去下载jar包implementationfiles('lib 学习目标:

1.要求使用sqlite数据库保存通讯录,使得每次运行程序均能显示当前联系人的列表
2.主界面包含一个添加联系人按钮和一个联系人列表
点击添加联系人按钮能添加新的联系人。
3.对数据库进模糊查询

学习内容:

1.使用Ormlite数据库要去下载jar包

implementation files('libs/ormlite-androID-5.0.jar')implementation files('libs/ormlite-core-5.0.jar')

2.创建数据库DatabaseHelper

package com.example.myapplication;import androID.content.Context;import androID.database.sqlite.sqliteDatabase;import com.j256.ormlite.androID.apptools.OrmlitesqliteOpenHelper;import com.j256.ormlite.dao.Dao;import com.j256.ormlite.support.ConnectionSource;import com.j256.ormlite.table.tableUtils;import java.sql.sqlException;/** * 定义数据库的工具类,继承OrmlitesqliteOpenHelper类,重写 onCreate\onUpgrade方法 */public class DatabaseHelper  extends OrmlitesqliteOpenHelper{    public static final String DB_name = "mydb.db";    public static  final int version = 1;    public DatabaseHelper(Context context){        super(context,DB_name,null,version);    }    /**     * 定义访问表dict的对象     */    public Dao<Dict,Integer> dictDao;    /**     * 返回表dict的 *** 作对象     * @return     * Dao  :database access operate     */    public Dao<Dict,Integer> getDictDao(){        if(dictDao ==null){            try {                /**                 * 通过getDao获取访问某个表的对象,传递的注解的实体类                 */                dictDao =getDao(Dict.class);            } catch (sqlException e) {                e.printstacktrace();            }        }        return dictDao;    }    //第一次创建数据库时调用    @OverrIDe    public voID onCreate(sqliteDatabase sqliteDatabase, ConnectionSource connectionSource) {        //创建相应的表        try {            /*            通过createtable方法创建表            参数1:连接源            参数2:要创建的表(带注解的实体类)             */            tableUtils.createtable(connectionSource, Dict.class);        } catch (sqlException e) {            e.printstacktrace();        }    }    /**     * 数据库升级时调用     * @param sqliteDatabase     * @param connectionSource     * @param oldVersion     * @param newVersion     */    @OverrIDe    public voID onUpgrade(sqliteDatabase sqliteDatabase, ConnectionSource connectionSource, int oldVersion, int newVersion) {        if (newVersion>oldVersion){            try {                //通过droptable删除表                /**                 * 参数说明                 * 参数1:数据库的连接源                 * 参数2:要删除的表(标注了的实体类)                 * 参数3:删除出错时是否 要删除表                 */                tableUtils.droptable(connectionSource,Dict.class,true);                //createtableIfNotExists 如果表不存在,才创建表                tableUtils.createtableIfNotExists(connectionSource,Dict.class);            } catch (sqlException e) {                e.printstacktrace();            }        }    }}

3.写入监听器,并插入数据

package com.example.myapplication;import androID.os.Bundle;import androID.util.Log;import androID.vIEw.VIEw;import androID.Widget.button;import androID.Widget.EditText;import androID.Widget.Toast;import androIDx.appcompat.app.AppCompatActivity;import com.j256.ormlite.dao.Dao;import com.j256.ormlite.stmt.queryBuilder;import java.sql.sqlException;import java.util.List;public class MainActivity extends AppCompatActivity implements VIEw.OnClickListener {    //定义控件    private EditText edtWord;    private EditText edtInterpret;    private button btnInsert;    private button btnRead;    private button btnquery;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_orm);        Log.v("test","one");        //初始化控件        edtWord = (EditText) findVIEwByID(R.ID.edt_word);        edtInterpret = (EditText) findVIEwByID(R.ID.edt_interpret);        btnInsert = (button) findVIEwByID(R.ID.btn_insert);        btnRead = (button) findVIEwByID(R.ID.btn_read);        btnquery = (button) findVIEwByID(R.ID.btn_query);        //绑定点击事件        btnInsert.setonClickListener(this);        btnRead.setonClickListener(this);        btnquery.setonClickListener(this);    }    private DatabaseHelper dbHelper;    @OverrIDe    public voID onClick(VIEw vIEw) {        if (dbHelper==null){            dbHelper = new DatabaseHelper(MainActivity.this);        }        int ID = vIEw.getID();        switch (ID){            case R.ID.btn_insert:                //插入数据                String word  = edtWord.getText().toString();                String interpret = edtInterpret.getText().toString();                //获取 *** 作表的dao对象                Dao<Dict,Integer> dictDao = dbHelper.getDictDao();                //插入对应的数据                Dict dict = new Dict();                dict.setWord(word);                dict.setInterpret(interpret);                try {                    //通过 *** 作实体对象的形式将数据插入到表中                    dictDao.createIfNotExists(dict);                } catch (sqlException e) {                    e.printstacktrace();                }                break;            case R.ID.btn_read:                //读取数据                Dao<Dict ,Integer> dictList = dbHelper.getDictDao();                try {                    List<Dict> dictDataList =  dictList.queryForAll();                    StringBuffer strBuffer = new StringBuffer();                    for(int i =0;i<dictDataList.size();i++){                        strBuffer.append("第"+i+"位置的word="+dictDataList.get(i).getWord()+";单词的含义"+dictDataList.get(i).getInterpret()+"\n");                    }                    Toast.makeText(MainActivity.this, strBuffer.toString(), Toast.LENGTH_SHORT).show();                } catch (sqlException e) {                    e.printstacktrace();                }                break;            case R.ID.btn_query:                //查询数据                Dao<Dict,Integer> dictWhereDao = dbHelper.getDictDao();                //获取对应表或实体的查询构造者                queryBuilder<Dict,Integer> queryBuilder  = dictWhereDao.queryBuilder();                try {                    queryBuilder.selectColumns(new String[]{"tword","interpret"}).where().like("tword","%af%")                            .or().like("tword","%AF%");                    queryBuilder.orderBy("tword",true);                    //执行查询                    List<Dict> dictWhereList = queryBuilder.query();                    StringBuffer strBuffer = new StringBuffer();                    for(int i =0;i<dictWhereList.size();i++){                        strBuffer.append("第"+i+"位置的word="+dictWhereList.get(i).getWord()+";单词的含义"+dictWhereList.get(i).getInterpret()+"\n");                    }                    Toast.makeText(MainActivity.this, strBuffer.toString(), Toast.LENGTH_SHORT).show();                } catch (sqlException e) {                    e.printstacktrace();                }                break;        }    }}

4.新建第一个列表由于在创建数据库出错太多了,浪费了很多时间,没有继续卸载去了。明日再来创建列表。

总结

以上是内存溢出为你收集整理的学习日志全部内容,希望文章能够帮你解决学习日志所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1053168.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存