安卓开发之sql语句增删改查2(利用谷歌封装好的API进行增删改查)
2024-09-07 14:09:13
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/tv_name"
android:textSize="20sp"
android:layout_weight="1"
android:textColor="#d20606" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="20sp"
android:id="@+id/tv_phone"
android:layout_weight="1"/> </LinearLayout>
package com.lidaochen.test; public class Person {
private String name;
private String phone; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getPhone() {
return phone;
} public void setPhone(String phone) {
this.phone = phone;
}
}
package com.lidaochen.test; import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; public class MyOpenHelper extends SQLiteOpenHelper {
public MyOpenHelper(Context context)
{
super(context, "lidaochen.db", null, 4);
} @Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL("create table info(_id integer primary key autoincrement,name varchar(20),phone varchar(20))");
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("alter table info add phone varchar(20)");
}
}
package com.lidaochen.test; import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast; import java.util.ArrayList;
import java.util.List; public class MainActivity extends AppCompatActivity {
private ListView listView;
private MyOpenHelper myOpenHelper;
private List<Person> lists;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 找到ListView控件
listView = (ListView) findViewById(R.id.lv);
myOpenHelper = new MyOpenHelper(this);
// 定义一个集合用来存取ListView要展示的数据
lists = new ArrayList<Person>();
}
public void add(View v)
{
// 获取数据库对象
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
// 执行增加一条的sql语句
// table 就是表名
// ContentValues 内部封装了一个map key: 对应列的名字 value对应的值
ContentValues values = new ContentValues();
values.put("name", "王五");
values.put("phone", "110");
// 返回值代表新插入行的行ID,如果发生错误,则返回-1
long insert = db.insert("info", null, values); // 底层就是在组装sql语句
// 数据库用完需要关闭
db.close();
if (insert > 0)
{
Toast.makeText(getApplicationContext(), "添加成功!", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getApplicationContext(), "添加失败!", Toast.LENGTH_SHORT).show();
}
}
public void delete(View v)
{
// 获取数据库对象
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
// 返回值传入whereClause时受影响的行数,0 除此以外。 删除所有行并获取计数传递“1”作为thewhereClause。
int delete= db.delete("info", "name = ?", new String[]{"王五"});
db.close();
Toast.makeText(getApplicationContext(), "删除了" + delete + "行", Toast.LENGTH_SHORT).show();
}
public void update(View v)
{
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("phone", "114");
int update = db.update("info", contentValues, "name = ?", new String[]{"王五"});
db.close();
Toast.makeText(getApplicationContext(), "更新了" + update + "行", Toast.LENGTH_SHORT).show();
}
public void find(View v)
{
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
Cursor cursor = db.query("info", null, null, null, null, null, null);
if (cursor != null && cursor.getCount() > 0)
{
while (cursor.moveToNext())
{
// columnIndex 代表列的索引
String name = cursor.getString(1);
String phone = cursor.getString(2);
// 把数据封装到javabean
Person person = new Person();
person.setName(name);
person.setPhone(phone);
// 把Javabean对象加入到集合中
lists.add(person);
}
// 设置数据适配器
listView.setAdapter(new MyAdapter());
}
db.close();
} // 定义ListView的数据适配器
public class MyAdapter extends BaseAdapter
{ public MyAdapter() {
super();
} @Override
public int getCount() {
return lists.size();
} @Override
public Object getItem(int position) {
return null;
} @Override
public long getItemId(int position) {
return 0;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
if (convertView == null)
{
// 创建新的View对象
view = View.inflate(getApplicationContext(), R.layout.item, null);
}
else
{
view = convertView;
}
// 找到控件用来显示数据
// 注意这里要用view.findViewById(R.id.tv_name) findViewById默认是当前的XML
TextView tv_name = (TextView)view.findViewById(R.id.tv_name);
TextView tv_phone = (TextView)view.findViewById(R.id.tv_phone);
// 显示数据
Person person = lists.get(position);
tv_name.setText(person.getName());
tv_phone.setText(person.getPhone());
return view;
}
} }
最新文章
- [Server] 搭建发布环境Web Deploy
- UVa 297 Quadtrees -SilverN
- DataTable/Array Linq查询,groupby
- 201521123025 《Java程序设计》第1周学习总结
- Lsyncd - 实时文件同步工具(精译)
- LOJ #6539 奇妙数论题
- Android 自定义弹出框带EditText
- Lodop打印连续的纸张
- JS正则表达式分组模式
- 2017/2/6:在oracle中varchar与varchar2的区别与增删改查
- 微信 小程序组件 加入购物车全套 one wxml
- 我们能从 jQuery 的一个正则表达式中学到什么?
- Linux 共享库(动态库)
- bzoj 3209 bzoj1799 数位dp
- Maven实战(插件管理)
- New Moto X 2014 全版本官方解锁Bootloader图文教程
- LeetCode OJ:Pascal&#39;s TriangleII(帕斯卡三角II)
- Quick Find
- PL/SQL12的安装与使用
- Android dependency has different version.You should manually set the same version via DependencyReso
热门文章
- springboot整合redis(集群)
- tomcat 8.xxx ssl使用websocket Failed to close the ServletOutputStream connection cleanly
- python GC、分支、循环
- 清理mac缓存
- Python3 Selenium自动化web测试 ==>; 第一节 起始点之Python单元测试框架 unittest
- ubuntu16.04 下通过rc.d(rc.local)实现开机启动(未登录)anydesk
- Windows下遍历所有GIT目录更新项目脚本
- Python_小林的爬取QQ空间相册图片链接程序
- Java学习笔记-枚举类
- MySQL索引解析(联合索引/最左前缀/覆盖索引/索引下推)