3.26
安卓sqlite
• 所花时间:4
• 代码行数:198
• 博客容量:1
• 代码如下:
package com.example.chapter07.database;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
import com.example.chapter07.enity.User;
import java.util.ArrayList;
import java.util.List;
public class UserDBHelper extends SQLiteOpenHelper {
private static final String DB_NAME="user.db";
private static final int DB_VERSION=1;
private static UserDBHelper mHelper=null;
private SQLiteDatabase mRDB=null;
private SQLiteDatabase mWDB=null;
private UserDBHelper(Context context){
super(context,DB_NAME,null,DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql="CREATE TABLE IF NOT EXISTS user_info("+
"_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," +
"name VARCHAR NOT NULL,"+
"age INTEGER NOT NULL," +
"sex INTEGER NOT NULL," +
"class VARCHAR NOT NULL" +
")";
db.execSQL(sql);
}
public SQLiteDatabase openReadLink(){
if(mRDB==null||!mRDB.isOpen()){
mRDB=mHelper.getReadableDatabase();
}
return mRDB;
}
public SQLiteDatabase openWriteLink(){
if(mWDB==null||!mWDB.isOpen()){
mWDB=mHelper.getWritableDatabase();
}
return mWDB;
}
public void closeLink(){
if(mRDB!=null && mRDB.isOpen()){
mRDB.close();
mRDB=null;
}
if(mWDB !=null&&mWDB.isOpen()){
mWDB.close();
mWDB=null;
}
}
public static UserDBHelper getInstance(Context context){
if(mHelper==null){
mHelper=new UserDBHelper(context);
}
return mHelper;
}
public long insert(User user){
ContentValues contentValues=new ContentValues();
contentValues.put("name",user.name);
contentValues.put("class",user.sClass);
contentValues.put("sex",user.sex);
contentValues.put("age",user.age);
// try{
// mWDB.beginTransaction();
// mWDB.insert("user_info",null,contentValues);
// int a=10/0;
// mWDB.insert("user_info",null,contentValues);
// mWDB.setTransactionSuccessful();
// }catch (Exception e){
//
// }finally {
// mWDB.endTransaction();
// }
return mWDB.insert("user_info",null,contentValues);
// return 1;
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public long deleteByName(String name){
return mWDB.delete("user_info","name=?",new String[]{name});
}
public long updateUser(User user){
ContentValues values=new ContentValues();
values.put("name",user.name);
values.put("class",user.sClass);
values.put("sex",user.sex);
values.put("age",user.age);
return mWDB.update("user_info",values,"name=?",new String[]{user.name});
}
public List<User> queryAll(){
List<User> list=new ArrayList<>();
Cursor cursor=mRDB.query("user_info",null,null,null,null,null,null);
while (cursor.moveToNext()){
User user=new User();
user.name=cursor.getString(1);
user.age=cursor.getInt(2);
user.sClass=cursor.getString(4);
user.sex=cursor.getInt(3);
list.add(user);
}
return list;
}
public List<User> queryByName(String name){
List<User> list=new ArrayList<>();
Cursor cursor=mRDB.query("user_info",null,"name=?",new String[]{name},null,null,null);
while (cursor.moveToNext()){
User user=new User();
user.name=cursor.getString(1);
user.age=cursor.getInt(2);
user.sClass=cursor.getString(4);
user.sex=cursor.getInt(3);
list.add(user);
}
return list;
}
}
package com.example.chapter07;
import androidx.appcompat.app.AppCompatActivity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class creatDatabase extends AppCompatActivity implements View.OnClickListener {
private String mDatabase;
private TextView tv_creat;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_creat_database);
tv_creat= findViewById(R.id.tv_dbcreat);
findViewById(R.id.bt_dbExCreat).setOnClickListener(this);
findViewById(R.id.bt_dbExDelete).setOnClickListener(this);
mDatabase= getFilesDir()+"/test.db";
}
@Override
public void onClick(View v) {
if(v.getId()==R.id.bt_dbExCreat){
SQLiteDatabase db = openOrCreateDatabase(mDatabase, MODE_PRIVATE, null);
String desc =String.format("数据库%s创建%s",mDatabase,db!=null ? "成功":"失败");
tv_creat.setText(desc);
}
else if(v.getId()==R.id.bt_dbExDelete){
boolean result =deleteDatabase(mDatabase);
String desc =String.format("数据库%s删除%s",mDatabase,result ? "成功":"失败");
tv_creat.setText(desc);
}
}
}
package com.example.chapter07;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import com.example.chapter07.database.UserDBHelper;
import com.example.chapter07.enity.ToastUtil;
import com.example.chapter07.enity.User;
import java.util.ArrayList;
import java.util.List;
public class sqlliteDatabaseHelper extends AppCompatActivity implements View.OnClickListener {
private UserDBHelper mHelper;
private EditText et_age;
private EditText et_name;
private RadioGroup et_sex;
private EditText et_class;
private int sex;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sqllite_database_helper);
et_age= findViewById(R.id.et_age);
et_name = findViewById(R.id.et_name);
et_sex = findViewById(R.id.rg_sex);
et_class = findViewById(R.id.et_class);
sex = et_sex.getCheckedRadioButtonId()==R.id.rb_male?1:0;
findViewById(R.id.bt_add).setOnClickListener(this);
findViewById(R.id.bt_select).setOnClickListener(this);
findViewById(R.id.bt_delete).setOnClickListener(this);
findViewById(R.id.bt_update).setOnClickListener(this);
}
@Override
protected void onStart() {
super.onStart();
mHelper= UserDBHelper.getInstance(this);
mHelper.openReadLink();
mHelper.openWriteLink();
}
@Override
protected void onStop() {
super.onStop();
mHelper.closeLink();
}
@Override
public void onClick(View v) {
if(v.getId()== R.id.bt_add){
String name = et_name.getText().toString();
String sClass = et_class.getText().toString();
int sex = et_sex.getCheckedRadioButtonId() == R.id.rb_male ? 1 : 0;
int age = Integer.parseInt(et_age.getText().toString());
User user = new User(name, sClass, sex, age);
long result = mHelper.insert(user);
if (result > 0) {
ToastUtil.show(this, "添加成功");
} else {
ToastUtil.show(this, "添加失败");
}
}
else if(v.getId()== R.id.bt_delete){
long result =mHelper.deleteByName(et_name.getText().toString());
if (result > 0) {
ToastUtil.show(this, "删除成功");
} else {
ToastUtil.show(this, "删除失败");
}
}
else if(v.getId()== R.id.bt_update){
String name = et_name.getText().toString();
String sClass = et_class.getText().toString();
int sex = et_sex.getCheckedRadioButtonId() == R.id.rb_male ? 1 : 0;
int age = Integer.parseInt(et_age.getText().toString());
User user = new User(name, sClass, sex, age);
long result=mHelper.updateUser(user);
if (result > 0) {
ToastUtil.show(this, "修改成功");
} else {
ToastUtil.show(this, "修改失败");
}
}
else if(v.getId()== R.id.bt_select){
List<User> list =new ArrayList<>();
list=mHelper.queryByName(et_name.getText().toString());
for (User u:list) {
Log.d("wlx",u.toString());
}
}
}
}
浙公网安备 33010602011771号