安卓开发之sql语句增删改查2(利用谷歌封装好的API进行增删改查)
<?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进行增删改查)的更多相关文章
- 安卓开发之sql语句增删改查
package com.lidaochen.phonecall; import android.content.Context; import android.database.sqlite.SQLi ...
- 【sql注入】浅谈JSP安全开发之SQL注入
[sql注入]浅谈JSP安全开发之SQL注入 本文转自:i春秋社区 前言不管是用什么语言编写WEB应用程序,他们都或多或少有一些地方存在漏洞.如果你想知道漏洞的运行原理,和防御方案,那么请看完本篇文章 ...
- 李洪强iOS开发之-sql数据库的使用
一,创建工程 二: 导入头文件 三:导入 四: 数据库增删改查 //因为是结构体类型,所以用assign //1.创建数据库(保存路径) @property(nonatomic,assign)sqli ...
- 安卓开发之Toolbar
根据官网的教程,发现实现与预期不一致,查看相关资料自己整理了一下(官网开发文档:https://developer.android.com/training/appbar/setting-up.htm ...
- 安卓开发之ListAdapter(二)
今天我们来学习一下ArrayAdapter: ArrayAdapter是安卓中最简单的适配器.使用ArrayAdapter(数组适配器),需要把数据源存 放至数组里面来显示. •构造函数: publi ...
- 安卓开发之UIwebview
web view在安卓开发中是比较常见的UI,像微信的新闻模块就采用了这个,他的作用越来越广,下面我把以前做的贴了出来,如果有更好的办法,希望大神不吝赐教哈,嘿嘿,纯代码来了: java代码 publ ...
- 安卓开发之activity详解(sumzom)
app中,一个activity通常是指的一个单独的屏幕,相当于网站里面的一个网页,它是对用户可见的,它上面可以显示一些控件,并且可以监听处理用户的时间做出响应. 那么activity之间如何进行通信呢 ...
- 安卓开发之ListAdapter(一)
Adapter常用来管理数据,是连接后端数据和前端显示的适配器接口,是数据和UI(view)之间一个重要的纽带.再常见的view(listview.gridview)等地方都需要用到adapter,下 ...
- 安卓开发之json解析
1.从网页获取json返回字符串 public class ReadNet extends AsyncTask<URL, Integer, String> { @Override ...
随机推荐
- springboot和hadoop2.7.7集成开发
1.本人在腾讯云安装hadoop2.7.7,详细安装请看以前的博客 2.pom.xml文件 <?xml version="1.0" encoding="UTF-8& ...
- Go 微服务架构Micro相关概念理解
Micro是一个微服务框架(或者说是工具集):提供了各类组件,解决微服务架构中的不同问题,服务监控.服务发现.熔断机制,负载均衡等等,自己一个个解决这些问题几乎不可能,这时候就需要借助go-micro ...
- js的event详解
event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等.event对象只在事件发生的过程中才有效.event的某些属性只对特定的事件有意义.比如,fromElement ...
- 通过命令行方式连接redis
1.首先安装redis客户端 yum install redis 2.连接 redis-cli -h host -p port -a password host:远程redis服务器host port ...
- .Netcore 2.0 Ocelot Api网关教程(10)- Headers Transformation
本文介绍Ocelot中的请求头传递(Headers Transformation),其可以改变上游request传递给下游/下游response传递给上游的header. 1.修改ValuesCont ...
- 针对thinkphp 5框架存储过程bug而重写的存储过程的扩展类
近期用tp5框架调取存储过程发现有bug,借鉴了一些官方的函数.以及找了个mysqli的类把存储过程重新写了个扩展类,下面两个类直接放置项目extend目录的stored(这个文件夹名称请按个人习惯命 ...
- 日记 进程 ip /端口
查看日记: tail -f log.txt 循环查看 cat info 查看文件 less info 查看文件 head -n 10 /vv/v ...
- python-数据库-优化
数据库的优化? 1. 优化硬件:采用SSD(固态驱动器,俗称固态硬盘),使用磁盘队列技术(RAID0,RAID1,RDID5)等: 2. 进行架构级别的缓存,静态化和分布式:(数据库-->渲染页 ...
- Java工程师学习指南第2部分:JavaWeb技术世界
本文整理了微信公众号[Java技术江湖]发表和转载过的Java Web优质文章,想看到更多Java技术文章,就赶紧关注吧. IDEA中的Maven实战 老师,免费版的IDEA为啥不能使用Tomcat? ...
- JavaScript 检测值
了解常见的真值和假值,可以增强判断能力.在使用if判断时,提升编码速度. 了解常见的检测和存在,一样可以增强判断能力,而且是必须掌握的. 数组和对象被视为真值 1 2 3 4 5 6 7 8 9 10 ...