• Android 利用xUtils框架实现对sqllite的增删改查


    首先下载xUtils,下载地址:https://github.com/wyouflf/xUtils  把下载好的文件压缩,把里面的jar包拷进项目中如图所示:

    这里新建一个User类进行测试增删改查

    package com.example.xutilsdemo;
    
    public class User {
        private int id;
        private String name;
        private String email;
        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 getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public User(String name, String email) {
            this.name = name;
            this.email = email;
        }
        public User(){
            
        }
        @Override
        public String toString() {
            return "User [id=" + id + ", name=" + name + ", email=" + email + "]";
        }
         
    }

    核心代码:

    package com.example.xutilsdemo;
    
    import java.util.List;
    
    import com.lidroid.xutils.DbUtils;
    import com.lidroid.xutils.db.sqlite.Selector;
    import com.lidroid.xutils.db.sqlite.WhereBuilder;
    import com.lidroid.xutils.exception.DbException;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        //直接使用Dbutils,如果不能使用这个类,说明包没有导入成功
        DbUtils db ;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //创建数据库,名称为mydb
            db= DbUtils.create(this,"mydb");
        }
    
        //保存数据事件
        public void saveClick(View v){
            DbUtils db = DbUtils.create(this,"mydb");
            User user = new User("hyy","272958293@qq.com"); //这里需要注意的是User对象必须有id属性,或者有通过@ID注解的属性
            try {
                db.save(user);
                Toast.makeText(this, "ok",Toast.LENGTH_SHORT).show();
            } catch (DbException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            } // 使用saveBindingId保存实体时会为实体的id赋值
        }
        
        //查询数据事件
        public void queryClick(View v){
            try {
                List<User> list=db.findAll(User.class);
                for (User user : list) {
                    System.out.println(user);
                }
            } catch (DbException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
        
        //根据条件查询事件
        public void queryByClick(View v){
            try {
                User user=db.findFirst(Selector.from(User.class).where("name","=","hyy"));
                Toast.makeText(this,user.toString(), Toast.LENGTH_SHORT).show();
            } catch (DbException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
        
        //更新数据事件
        public void updateClick(View v){
            User user=new User();
            user.setId(1);
            user.setName("huyuan");
            user.setEmail("272958293@qq.com");
            
            try {
                db.update(user,"name","email");
            } catch (DbException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
        //删除事件
        public void deleteClick(View v){
            try {
                db.delete(User.class,WhereBuilder.b("id", "=", "1"));
            } catch (DbException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    使用tornado的gen模块改善程序性能
    分析Linux内核中进程的调度(时间片轮转)-《Linux内核分析》Week2作业
    博客园配置MarsEdit客户端
    分析一个C语言程序生成的汇编代码-《Linux内核分析》Week1作业
    微信支付的开发流程
    探究加法操作的原子性
    mac下mysql数据库的配置
    从range和xrange的性能对比到yield关键字(中)
    使用装饰器时带括号与不带括号的区别
    从range和xrange的性能对比到yield关键字(上)
  • 原文地址:https://www.cnblogs.com/hyyweb/p/5220743.html
Copyright © 2020-2023  润新知