package com.example.addressbook;
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.addressbook.bean.People;
import com.example.addressbook.bean.User;
import com.hankcs.hanlp.HanLP;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
private static final String DB_NAME="MySQLite.db";
private static final String create_users="create table users(id INTEGER primary key AUTOINCREMENT,name varchar(32),password varchar(32))";
private static final String create_people="create table people(p_id INTEGER primary key AUTOINCREMENT,p_name varchar(32),p_phone varchar(32),p_sex varchar(32),p_remark varchar(32))";
private static final String judgment_people="drop table if exists people";
public MySQLiteOpenHelper(@Nullable Context context) {
super(context, DB_NAME, null, 4);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL(judgment_people);
sqLiteDatabase.execSQL(create_people);
sqLiteDatabase.execSQL(create_users);
sqLiteDatabase.execSQL("INSERT INTO people (p_name,p_phone,p_sex,p_remark) VALUES('张三','12365478998','男','同学')");
sqLiteDatabase.execSQL("INSERT INTO people (p_name,p_phone,p_sex,p_remark) VALUES('小明','18363654998','男','同事')");
sqLiteDatabase.execSQL("INSERT INTO people (p_name,p_phone,p_sex,p_remark) VALUES('李华','17654123698','男','同学')");
sqLiteDatabase.execSQL("INSERT INTO people (p_name,p_phone,p_sex,p_remark) VALUES('王小红','13648956178','女','侄女')");
sqLiteDatabase.execSQL("INSERT INTO people (p_name,p_phone,p_sex,p_remark) VALUES('Mike','13659894168','男','笔友')");
sqLiteDatabase.execSQL("INSERT INTO people (p_name,p_phone,p_sex,p_remark) VALUES('Jenny','18469513688','女','笔友')");
sqLiteDatabase.execSQL("INSERT INTO people (p_name,p_phone,p_sex,p_remark) VALUES('Mandy','13659894168','男','笔友')");
sqLiteDatabase.execSQL("INSERT INTO people (p_name,p_phone,p_sex,p_remark) VALUES('Jack','18469513688','女','笔友')");
//提前插入用户数据
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
public long U_register(User u){
SQLiteDatabase db = getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("name",u.getName());
cv.put("password",u.getPassword());
long users = db.insert("users",null,cv);
return users;
}
public int U_login(String name,String password){
SQLiteDatabase db = getWritableDatabase();
boolean result=false;
Cursor users = db.query("users", null, "name like ?", new String[]{name}, null, null, null);
if(users!=null){
while(users.moveToNext()){
String password1 = users.getString(2);
result = password1.equals(password);
String ad = users.getString(1);
String T = "admin";
if(result && (ad.equals(T))){
return 1;
}else if(result){
return 2;
}
}
}
return 3;
}
public List<People> getAllPeople(){
SQLiteDatabase db = getWritableDatabase();
List<People> list = new ArrayList<>();
// Cursor res= db.rawQuery("select * from people",null);
Cursor res = db.query("people", null, null,null, null, null, null);
while (res.moveToNext()){
People people = new People(res.getString(0), res.getString(1), res.getString(2), res.getString(3),"" );
String name = res.getString(1);//判断名字中英文
String first=name.substring(0,1);//得到第一个字符
boolean re = first.matches("^[a-zA-Z]*");//正则表达式判断是否为英文
if(re==true){
people.setBeginLetter(first.toUpperCase());//将第一个英文字母转换为大写
}else{
String regEx = "[\\u4e00-\\u9fa5]+";//判断是否为汉字
Pattern p =Pattern.compile(regEx);
Matcher m = p.matcher(first);//进行匹配
if(m.find()){
//将中文转化为拼音
String py = HanLP.convertToPinyinString(first," ",false);//需引入hanlp包才可使用
String eg = py.substring(0,1);
people.setBeginLetter(eg.toUpperCase());
}else{
people.setBeginLetter("#");//其余字符用#代替
}
}
list.add(people);
}
return list;
}
//在详情页删除联系人
public void dl_delete(String id){
SQLiteDatabase db = getWritableDatabase();
db.execSQL("DELETE FROM people where p_id=?",new String[]{id});
}
//update显示一条数据
public People getOnePeople(String id){
SQLiteDatabase db = getWritableDatabase();
People people =null;
// Cursor res= db.rawQuery("select * from people",null);
Cursor res = db.rawQuery("select * from people where p_id=?",new String[]{id});
while (res.moveToNext()){
people = new People(res.getString(0), res.getString(1), res.getString(2), res.getString(3),res.getString(4));
}
return people;
}
public int updateData(String name,String number,String sex,String remark,String id){
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
//传值准备数据
values.put("p_name",name);
values.put("p_phone",number);
values.put("p_sex",sex);
values.put("p_remark",remark);
return db.update("people",values,"p_id like ?",new String[] {id});
}
public void add_data(String ...id){
SQLiteDatabase db = getWritableDatabase();
db.execSQL("INSERT INTO people (p_name,p_phone,p_sex,p_remark) VALUES(?,?,?,?)",id);
}
public List<People> getAllPeople(String id){
SQLiteDatabase db = getWritableDatabase();
List<People> list = new ArrayList<>();
Cursor res= db.rawQuery("select * from people where p_phone like '%"+id+"%' or p_name like '%"+id+"%'",null);
// Cursor res = db.query("people", null, null,null, null, null, null);
while (res.moveToNext()){
People people = new People(res.getString(0), res.getString(1), res.getString(2), res.getString(3),"" );
String name = res.getString(1);//判断名字中英文
String first=name.substring(0,1);//得到第一个字符
boolean re = first.matches("^[a-zA-Z]*");//正则表达式判断是否为英文
if(re==true){
people.setBeginLetter(first.toUpperCase());//将第一个英文字母转换为大写
}else{
String regEx = "[\\u4e00-\\u9fa5]+";//判断是否为汉字
Pattern p =Pattern.compile(regEx);
Matcher m = p.matcher(first);//进行匹配
if(m.find()){
//将中文转化为拼音
String py = HanLP.convertToPinyinString(first," ",false);//需引入hanlp包才可使用
String eg = py.substring(0,1);
people.setBeginLetter(eg.toUpperCase());
}else{
people.setB
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
APP需要实现如下功能: a.普通用户: (1)用户管理。包括用户注册,用户登录、用户信息管理。 (2)显示联系人。用户登录成功后,可以显示所有该用户的联系人。 (3)添加联系人。用户登录成功后,可增加和用户联系人。 (4)查找联系人。用户登录成功后,可以精确查找指定联系人或按类别查找联系人。 (5)删除指定条件联系人。用户登录成功后,可以删除用户个人相关的联系人。 (6)修改联系人信息。用户登录成功后,可以修改用户相关的联系人信息。 b.管理员用户: 对系统的用户进行管理。包括重置密码、注销用户等功能。 APP需要实现如下功能: a.普通用户: (1)用户管理。包括用户注册,用户登录、用户信息管理。 (2)显示联系人。用户登录成功后,可以显示所有该用户的联系人。 (3)添加联系人。用户登录成功后,可增加和用户联系人。 (4)查找联系人。用户登录成功后,可以精确查找指定联系人或按类别查找联系人。 (5)删除指定条件联系人。用户登录成功后,可以删除用户个人相关的联系人。 (6)修改联系人信息。用户登录成功后,可以修改用户相关的联系人信息。 b.管理员用户
资源推荐
资源详情
资源评论
收起资源包目录
java.zip (26个子文件)
java
com
example
addressbook
adapter
PeopleAdapter.java 3KB
UserAdapter.java 2KB
ManagerImActivity.java 2KB
UpdateActivity.java 3KB
MySQLiteOpenHelper.java 9KB
AddActivity.java 2KB
Util
ToastUtil.java 411B
dao
PeopleDao.java 2KB
DbHelper.java 198B
DetailsActivity.java 2KB
RegisterActivity.java 2KB
UserAbActivity.java 4KB
ManagerAbActivity.java 1KB
MainActivity.java 2KB
bean
People.java 2KB
User.java 878B
layout
activity_manager_im.xml 3KB
book_style.xml 2KB
activity_user_ab.xml 2KB
activity_main.xml 5KB
activity_manager_ab.xml 892B
manager_style.xml 3KB
activity_add.xml 5KB
activity_updateactivity.xml 5KB
activity_register.xml 5KB
activity_details.xml 6KB
共 26 条
- 1
资源评论
我就说好玩
- 粉丝: 753
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功