安卓之Afinal的使用(创建数据库)

Afinal的介绍:
Afinal是一个开源的android的orm和ioc应用开发框架,其特点是小巧灵活,代码入侵量少。在android应用开发中,通过Afinal的ioc框架,诸如UI绑定,事件绑定,通过注解可以自动绑定。通过Afinal的orm框架,无需任何配置信息,一行代码就可以对android的sqlite数据库进行增删改查操作。(引用大佬的讲解)
FinalDB模块:android中的orm框架,一行代码就可以进行增删改查。支持一对多,多对一等查询。(具体的讲解链接: https://blog.csdn.net/banketree/article/details/8900262)你直接观看大佬的讲解,我在这里就不仔细的讲解了。
afinal下载地址为:
链接: https://github.com/yangfuhai/afinal(需要下载)
这就是我最后下载的:
在这里插入图片描述
首先需要创建一个安卓项目:
在这里插入图片描述
在你的项目中找到libs(类似于JSP中和数据库连接)把你下载完的afinal复制到libs里面.
在这里插入图片描述
然后点击你复制的afinal右键:
在这里插入图片描述
选择Add As Library之后就把afinal和安卓连接成功了。
接下来在编写一个类名字为Use类,代码如下:


@Table(name = "userTable")
public class Use {
    @Id
    int id;
    String name;
    String password;
    String repassword;

    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 getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getRepassword() {
        return repassword;
    }

    public void setRepassword(String repassword) {
        this.repassword = repassword;
    }
}

这个和我之前讲解的LitePal差不多(安卓创建数据库有许多种方法,你可以去寻找了解)
@Table(name = “userTable”)代表是userTable的表名。
@Id表示id为主键
备注:
在这里必须得有id,如果没有就会出错,不信你试一试会不会插不进数据。

接下来在xml中编写如下代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="用户名:"
        android:layout_marginTop="40dp"
        android:layout_marginLeft="50dp"
        />
    <EditText
        android:id="@+id/editText1"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/textView1"
        android:layout_marginTop="20sp"
        />
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:text="密码:"
        android:layout_marginLeft="50dp"
        android:layout_marginTop="40dp"
        />
    <EditText
        android:id="@+id/editText2"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/textView2"
        android:layout_marginTop="80dp"
        android:layout_marginLeft="15dp"
        />
    <Button
        android:id="@+id/insert"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView2"
        android:layout_marginTop="20sp"
        android:text="添加"
        />
    <Button
        android:id="@+id/select"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/insert"
        android:text="查看"
        />
    <Button
        android:id="@+id/update"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/select"
        android:text="更新"
        />
    <Button
        android:id="@+id/delete"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/update"
        android:text="删除"
        />


</RelativeLayout>

在java中编写如下代码:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        EditText editText=(EditText)findViewById(R.id.editText1);
        EditText editText2=(EditText)findViewById(R.id.editText2);
        final String name=editText.getText().toString();
        String password=editText2.getText().toString();
        Button insert=(Button)findViewById(R.id.insert);
        insert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EditText editText=(EditText)findViewById(R.id.editText1);
                EditText editText2=(EditText)findViewById(R.id.editText2);
              String name=editText.getText().toString();
                String password=editText2.getText().toString();
                FinalDb db=FinalDb.create(MainActivity.this,"Use.db");
                Use use=new Use();
                use.setName(name);
                use.setPassword(password);
                use.setRepassword(password);
                db.save(use);
                editText.setText("");
                editText2.setText("");
                Toast.makeText(MainActivity.this,"插入成功",Toast.LENGTH_SHORT).show();

            }
        });
        Button select=(Button)findViewById(R.id.select);
        select.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                FinalDb db=FinalDb.create(MainActivity.this,"Use.db");
                List<Use> uses=db.findAll(Use.class);
                for (Use use:uses){
                    Log.i("查询","用户信息:");
                    Log.i("用户名 :",use.getName());
                    Log.i("密码 :",use.getPassword());
                    Toast.makeText(MainActivity.this,"查询成功!",Toast.LENGTH_SHORT).show();

                }
            }
        });
        Button update=(Button)findViewById(R.id.update);
        update.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                FinalDb db=FinalDb.create(MainActivity.this,"Use.db");
                Use use=new Use();
                use.setName("马云");
                db.update(use,"name='刘强东'");//把名字为刘强东的改变为马云
            }
        });
        Button delete=(Button)findViewById(R.id.delete);
        delete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                FinalDb db=FinalDb.create(MainActivity.this,"Use.db");
                Use use=new Use();
                db.deleteById(Use.class,1);//删除id为1
            }
        });

    }
}
FinalDb db=FinalDb.create(MainActivity.this,"Use.db");表示创建数据库,创建名为Use的数据库。

上面的代码我相信大家都懂,没有什么太难理解的。(我只讲解一部分,具体的就需要你去完成)
下面是效果图:

在这里插入图片描述
点击添加按钮就会添加到数据库中,点击查看按钮在LogCat就会显示:
在这里插入图片描述
好了这就是使用afinal创建数据的一个简单案例。

原创文章 16 获赞 18 访问量 5069

猜你喜欢

转载自blog.csdn.net/jzdcuccess/article/details/106130778