<?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;
}
} }

安卓开发之sql语句增删改查2(利用谷歌封装好的API进行增删改查)的更多相关文章

  1. 安卓开发之sql语句增删改查

    package com.lidaochen.phonecall; import android.content.Context; import android.database.sqlite.SQLi ...

  2. 【sql注入】浅谈JSP安全开发之SQL注入

    [sql注入]浅谈JSP安全开发之SQL注入 本文转自:i春秋社区 前言不管是用什么语言编写WEB应用程序,他们都或多或少有一些地方存在漏洞.如果你想知道漏洞的运行原理,和防御方案,那么请看完本篇文章 ...

  3. 李洪强iOS开发之-sql数据库的使用

    一,创建工程 二: 导入头文件 三:导入 四: 数据库增删改查 //因为是结构体类型,所以用assign //1.创建数据库(保存路径) @property(nonatomic,assign)sqli ...

  4. 安卓开发之Toolbar

    根据官网的教程,发现实现与预期不一致,查看相关资料自己整理了一下(官网开发文档:https://developer.android.com/training/appbar/setting-up.htm ...

  5. 安卓开发之ListAdapter(二)

    今天我们来学习一下ArrayAdapter: ArrayAdapter是安卓中最简单的适配器.使用ArrayAdapter(数组适配器),需要把数据源存 放至数组里面来显示. •构造函数: publi ...

  6. 安卓开发之UIwebview

    web view在安卓开发中是比较常见的UI,像微信的新闻模块就采用了这个,他的作用越来越广,下面我把以前做的贴了出来,如果有更好的办法,希望大神不吝赐教哈,嘿嘿,纯代码来了: java代码 publ ...

  7. 安卓开发之activity详解(sumzom)

    app中,一个activity通常是指的一个单独的屏幕,相当于网站里面的一个网页,它是对用户可见的,它上面可以显示一些控件,并且可以监听处理用户的时间做出响应. 那么activity之间如何进行通信呢 ...

  8. 安卓开发之ListAdapter(一)

    Adapter常用来管理数据,是连接后端数据和前端显示的适配器接口,是数据和UI(view)之间一个重要的纽带.再常见的view(listview.gridview)等地方都需要用到adapter,下 ...

  9. 安卓开发之json解析

    1.从网页获取json返回字符串 public class ReadNet extends AsyncTask<URL, Integer, String> { @Override      ...

随机推荐

  1. centos7 mysql 启动mysqld.service - SYSV: MySQL database server错误

    1.启动命令 systemctl start mysqld.service 或者 /etc/init.d/mysqld start   结果同样的错误 2.错误是: Job for mysqld.se ...

  2. yum -y与 yum有什么区别

    在linux中,经常使用yum来进行软件的安装,更新与卸载,那我们会发现,在使用yum的时候,通常有下面两种指令模式: ①yum install  xxx ②yum -y install  xx 那这 ...

  3. android ONVIF 组播探测在线摄像机

    http://blog.csdn.net/ghostyu/article/details/8182516 Android的Wifi,默认情况下是不接受组播的,见:http://developer.an ...

  4. android Vitamio Live 实时视频 记录

    Vitamio 下载地址: https://github.com/yixia/VitamioBundle/releases https://github.com/yixia/VitamioBundle ...

  5. MYSQL的MYSQLDUMP命令

    1.用mysqldump对MySQL数据库进行数据备份与恢复 下面假设要备份tm这个数据库:Shell>mysqldump -uroot –p123456 tm > tm_050519.s ...

  6. FFMPEG 常用命令行

    目录 1. 分离音视频 2. 解复用 3. 视频转码 4. 视频封装 5. 视频剪切 6. 视频录制 7.叠加水印 8.将MP3转换为PCM数据 9. 推送RTP流.接收RTP流并存为ts文件 10. ...

  7. YUV RGB 格式转换

    第一个公式是RGB转YUV(范围0-255)时用的,第二个公式是用在YUV转换RGB(范围0-255)时用的.1. Y = ; U = -; V = ; 黑色:Y=16 ,U= V =128 红色:Y ...

  8. 【DSP开发】帮您快速入门 TI 的 Codec Engine

    德州仪器半导体技术(上海)有限公司 通用DSP 技术应用工程师 崔晶 德州仪器(TI)的第一颗达芬奇(DaVinci)芯片(处理器)DM6446已经问世快三年了.继DM644x之后,TI又陆续推出了D ...

  9. 最新 米哈游java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.米哈游等10家互联网公司的校招Offer,因为某些自身原因最终选择了米哈游.6.7月主要是做系统复习.项目复盘.LeetCo ...

  10. Kali基础

    1.Kali Linux 2.0 发布下载,基于 Debian 的 Linux 发行版  http://www.linuxidc.com/Linux/2015-08/121549.htm 2. Kal ...