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创建数据的一个简单案例。