import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.Nullable;

public class DBOpenHelper extends SQLiteOpenHelper { public DBOpenHelper( Context context) { super(context, 'studata.db', null, 1); }

@Override
public void onCreate(SQLiteDatabase db) {

    //学生信息
    String sql_student = 'create table student(' +
            'id int primary key not null ,' +
            'name varchar(20) not null,' +
            'sex varchar(10) not null,' +
            'age int check(age<100 and age>0),' +
            'banji varchar(20) ,' +
            'phone int ,' +
            'college varchar(20) default '无',' +
            'jidian int check(jidian>0 and jidian<5.0)) ';
    //学生——登陆密码表
    String sql_student_load = 'create table load_account(account int primary Key not null ,password varchar(20))';
    //触发器
    String sql_ctrigger = 'CREATE TRIGGER load_add AFTER INSERT ON student  ' +
            'BEGIN INSERT INTO load_account(account,password) VALUES (new.id,'123456'); END;';
    String sql_trigger = 'CREATE TRIGGER delete_load BEFORE DELETE ON student BEGIN DELETE  FROM load_account WHERE account =old.id ;END ; ';
    String sql_trigger2 = 'CREATE TRIGGER student_load_change ' +
            ' AFTER UPDATE ON student BEGIN UPDATE  load_account SET ACCOUNT = NEW.ID WHERE ACCOUNT = OLD.ID; END;';
    db.execSQL(sql_student_load);
    db.execSQL(sql_student);
    db.execSQL(sql_ctrigger);
    db.execSQL(sql_trigger);
    db.execSQL(sql_trigger2);


    //老师个人信息表
    String sql_teacher = 'create table teacher(' +
            'teacher_id int primary key not null,' +
            'name varchar(20),' +
            'sex  varchar(20) check(sex = '男' or sex = '女'),' +

            'age int check(age>0 and age<100),' +
            'level varchar(20),' +
            'phone int ,' +
            'college varchar(20))';
    //老师登录信息表
    String sql_teacher_load = 'create table load_teacher(' +
            'account int primary key not null ,' +
            'password varchar(20))';
    //触发器
    String sql_ttrigger = 'CREATE TRIGGER load_add_teacher AFTER INSERT ON teacher  ' +
            'BEGIN INSERT INTO load_teacher(account,password) VALUES (new.teacher_id,'123456'); END;';
    String sql_dttrigger = 'CREATE TRIGGER delete_teacher_load ' +
            ' BEFORE DELETE ON teacher BEGIN DELETE FROM load_teacher WHERE ACCOUNT = OLD.TEACHER_ID; END;';
    String sql_dttrigger1 = 'CREATE TRIGGER teacher_load_change ' +
            ' AFTER UPDATE ON teacher BEGIN UPDATE  load_teacher SET ACCOUNT = NEW.TEACHER_ID WHERE ACCOUNT = OLD.TEACHER_ID; END;';

    db.execSQL(sql_teacher_load);
    db.execSQL(sql_teacher);
    db.execSQL(sql_ttrigger);
    db.execSQL(sql_dttrigger);
    db.execSQL(sql_dttrigger1);


    //学生选课信息表
    String sql_student_course = 'create table student_course(' +
            'student_id int ,' +
            'course_name varchar(20),' +
            'teacher_name varchar(10),' +
            'score int, ' +
            'FOREIGN KEY(course_name) REFERENCES course(course_name),' +
            'FOREIGN KEY(teacher_name) REFERENCES course(teacher_name)' +

            ')';
    //课程信息表
    String sql_course = 'create table course(' +
            'teacher_name varchar(20) not null,' +
            'course_name varchar(20) not null,' +
            'course_weight SMALLINT ,' +
            'course_time varchar(20),' +
            'course_period varchar(20),' +
            'primary key(teacher_name,course_name),' +
            'FOREIGN KEY(teacher_name) REFERENCES teacher(name))';
    db.execSQL(sql_course);
    db.execSQL(sql_student_course);


    //留言信息存储表
    String sql_liuyan = 'create table message(' +
            'student_id int primary key not null,' +
            'message text)';
    db.execSQL(sql_liuyan);


    //管理员表
    String sql_admin = 'create table administractor(' +
            ' account varchar(20),' +
            ' password varchar(20))';
    String sql_insert_admin = 'insert into administractor values('WYH','123456')';
    String sql_insert_admin2= 'insert into administractor values('zsl','123456')';
   // String sql_insert_admin3= 'insert into administractor values('zml','123456')';

    db.execSQL(sql_admin);
    db.execSQL(sql_insert_admin);
    db.execSQL(sql_insert_admin2);
   // db.execSQL(sql_insert_admin3);


    //个人资源配置表,比如更改图片之类的啦
    String personal_resource = 'create table personal_resource(' +
            'id int primary key not null ,' +
            'IMAGE blob)';

    db.execSQL(personal_resource);

    //触发器

    String personal_resource_trigger = 'CREATE TRIGGER personal_resource_trigger AFTER INSERT ON student ' +
            'BEGIN INSERT INTO personal_resource(id,IMAGE) VALUES (new.id,null);END;';
    String personal_resource_trigger1 = 'CREATE TRIGGER personal_resource_trigger_t AFTER INSERT ON teacher ' +
            'BEGIN INSERT INTO personal_resource(id,IMAGE) VALUES (new.teacher_id,null);END;';

    db.execSQL(personal_resource_trigger);
    db.execSQL(personal_resource_trigger1);


    //插入基本测试数据
    String sql_insert1 = 'insert into course(teacher_name,course_name,course_weight,course_time,course_period) values('李不才','电子线路基础',2,'周一上午','1')';
    String sql_insert2 = 'insert into course(teacher_name,course_name,course_weight,course_time,course_period) values('高光 刘三姐','大学英语4',4,'周五上午','1')';
    String sql_insert3 = 'insert into course(teacher_name,course_name,course_weight,course_time,course_period) values('魏丰年','数据库原理',3,'周三上午','1')';
    String sql_insert4 = 'insert into course(teacher_name,course_name,course_weight,course_time,course_period) values('张无银','数学模型',2,'周一晚上','1')';
    String sql_insert5 = 'insert into course(teacher_name,course_name,course_weight,course_time,course_period) values('司马长风','运筹学',2,'周三下午','1')';
    String sql_insert6 = 'insert into course(teacher_name,course_name,course_weight,course_time,course_period) values('忘年交','毛泽东思想概论',4.5,'周五晚上','1')';
    db.execSQL(sql_insert1);
    db.execSQL(sql_insert2);
    db.execSQL(sql_insert3);
    db.execSQL(sql_insert4);
    db.execSQL(sql_insert5);
    db.execSQL(sql_insert6);


    //插入基本测试数据
    String sql_p = 'insert into student(id ,name ,sex,age ,banji , phone, college )' +
            ' values(20171302028,'武媚娘','男',19,'17计科3班',188330,'网络空间安全与计算机学院')';

    String sql_p1 = 'insert into student(id ,name ,sex,age ,banji , phone, college )' +
            ' values(20180301178,'梁山泊','女',20,'18新闻2班',188330,'新闻传播学院')';
    String sql_p2 = 'insert into student(id ,name ,sex,age ,banji , phone, college )' +
            ' values(20171302029,'台浓','男',20,'17计科3班',188330,'网络空间安全与计算机学院')';
    String sql_p3 = 'insert into student(id ,name ,sex,age ,banji , phone, college )' +
            ' values(20171302030,'王不悦','男',20,'17计科3班',188330,'网络空间安全与计算机学院')';
    String sql_p4 = 'insert into student(id ,name ,sex,age ,banji , phone, college )' +
            ' values(20171302031,'霍元甲','男',20,'17材料2班',188330,'化学与环境科学学院')';
    String sql_p5 = 'insert into student(id ,name ,sex,age ,banji , phone, college )' +
            ' values(20171102027,'王八蛋','男',20,'17材料2班',18812141604,'化学与环境科学学院')';


    String sql_tp1 = 'insert into teacher(teacher_id ,name ,sex,age ,level , phone, college )' +
            ' values(2018,'魏忠贤','男',20,'高级教师',188330,'网络空间安全与计算机学院')';
    String sql_tp = 'insert into teacher(teacher_id ,name ,sex,age ,level , phone, college )' +
            ' values(2017,'周八皮','男',19,'高级教师',188330,'网络空间安全与计算机学院')';
    db.execSQL(sql_p);
    db.execSQL(sql_tp);
    db.execSQL(sql_p1);
    db.execSQL(sql_p2);
    db.execSQL(sql_p3);
    db.execSQL(sql_p4);
    db.execSQL(sql_p5);
    db.execSQL(sql_tp1);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

} import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent; import android.content.SharedPreferences; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; import android.widget.RadioButton; import android.widget.Toast;

public class load extends AppCompatActivity {

private String state = '';
private SQLiteDatabase db;
private SharedPreferences pref;
private SharedPreferences.Editor editor;
private CheckBox rememberPass;
private CheckBox jzmm;
private boolean isRemember;
private EditText edit_load_zhanghao;
private EditText edit_load_password;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_load);
    DBOpenHelper dbhelper = new DBOpenHelper(this);
    Button confirmbt=findViewById(R.id.button_load);
    Button changebt = findViewById(R.id.button_change_password);
    RadioButton administrator = findViewById(R.id.radiobutton_guanliyuan);
    RadioButton studentrb = findViewById(R.id.radiobutton_xuesheng);
    RadioButton teacherrb = findViewById(R.id.radiobutton_teacher);
    CheckBox jzmm=findViewById(R.id.checkbox_remember);
    EditText usernametx = findViewById(R.id.edit_load_zhanghao);
    EditText pwdtx = findViewById(R.id.edit_load_password);

    SQLiteDatabase readdb=dbhelper.getReadableDatabase();
    changebt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent toinent=new Intent(load.this,xiugaiActivity.class);
            startActivity(toinent);
            Toast.makeText(load.this, '请修改密码', Toast.LENGTH_SHORT).show();
        }
    });
    pref = PreferenceManager.getDefaultSharedPreferences(this);
    editor = pref.edit();
    isRemember = pref.getBoolean('remember_password', false);

// 初始化控件 rememberPass = findViewById(R.id.checkbox_remember); edit_load_zhanghao = findViewById(R.id.edit_load_zhanghao); edit_load_password = findViewById(R.id.edit_load_password);

// 设置记住密码的状态 rememberPass.setChecked(isRemember); if (isRemember) { // 如果记住密码,则将保存的账号和密码显示在输入框中 String account = pref.getString('account', ''); String password = pref.getString('password', ''); edit_load_zhanghao.setText(account); edit_load_password.setText(password); }

// 监听记住密码的勾选状态 rememberPass.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // 将记住密码的状态保存到SharedPreferences中 editor.putBoolean('remember_password', isChecked); editor.apply(); } }); confirmbt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String account = edit_load_zhanghao.getText().toString(); String password = edit_load_password.getText().toString();

// 判断是否记住密码,如果记住密码,则保存账号和密码到SharedPreferences中 if (rememberPass.isChecked()) { editor.putString('account', account); editor.putString('password', password); } else { editor.remove('account'); editor.remove('password'); } editor.apply(); // 获取SharedPreferences实例

            if (administrator.isChecked()){
                Cursor adread = readdb.rawQuery('select * from administractor where account=''+usernametx.getText().toString()+''',null);
                adread.moveToNext();
                if(adread.getCount()<1){

                    Toast.makeText(load.this, '无此用户', Toast.LENGTH_SHORT).show();
                }
                 else{   String  getaccountname = adread.getString(0);
                    String  getpwd = adread.getString(1);
                    if(getpwd.equals(pwdtx.getText().toString())){
                        Intent toinent=new Intent(load.this,administratorfrm.class);
                        startActivity(toinent);
                        Toast.makeText(load.this, '管理员登陆成功', Toast.LENGTH_SHORT).show();
                       // finish();
                    }
                    else {
                        Toast.makeText(load.this, '用户或密码不对', Toast.LENGTH_SHORT).show();

                    }
                 }

            }
            if (studentrb.isChecked()){

                Cursor xs = readdb.rawQuery('select * from load_account where account=''+usernametx.getText().toString()+''',null);
                    xs.moveToNext();
                if(xs.getCount()<1){

                    Toast.makeText(load.this, '无此用户', Toast.LENGTH_SHORT).show();
                }
                else{
                    String  getaccountnames = xs.getString(0);
                    String  xss = xs.getString(1);

                   if(xss.equals(pwdtx.getText().toString())){
                        Intent toinent=new Intent(load.this,administratorfrm.class);
                        startActivity(toinent);
                        Toast.makeText(load.this, '学生登陆成功', Toast.LENGTH_SHORT).show();
                     finish();
                    }
                    else {
                        Toast.makeText(load.this, '权限错误', Toast.LENGTH_SHORT).show();

                    }
               }
            }

              if (teacherrb.isChecked()){
                        Cursor adreads = readdb.rawQuery('select * from load_teacher where account=''+usernametx.getText().toString()+''',null);
                        adreads.moveToNext();
                  if(adreads.getCount()<1){

                      Toast.makeText(load.this, '无此用户', Toast.LENGTH_SHORT).show();
                  }
                      else{  String  getaccountnamess = adreads.getString(0);
                        String  getpwdss = adreads.getString(1);
                        if(getpwdss.equals(pwdtx.getText().toString())){
                            Intent toinent=new Intent(load.this,administratorfrm.class);
                            startActivity(toinent);
                            Toast.makeText(load.this, '老师登陆成功', Toast.LENGTH_SHORT).show();
                            finish();
                        }
                        else{
                            Toast.makeText(load.this, '权限错误', Toast.LENGTH_SHORT).show();

                        }
                      }
                        }
              }





    });


}

} import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton;

public class xiugaiActivity extends AppCompatActivity { private EditText zhanghao ,yuanmima,xinmima,querenmima; private Button xiugai; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_xiugai); zhanghao = findViewById(R.id.edit_load_zhanghao);//账号 yuanmima = findViewById(R.id.edit_load_password);//原密码 xinmima = findViewById(R.id.xiugaiedit_load_password);//新密码 querenmima = findViewById(R.id.querenedit_load_password);//确认新密码 xiugai = findViewById(R.id.button_load); //修改密码 RadioButton administrator = findViewById(R.id.radiobutton_guanliyuan);//管理员 RadioButton studentrb = findViewById(R.id.radiobutton_xuesheng);//学生 RadioButton teacherrb = findViewById(R.id.radiobutton_teacher);//教师 DBOpenHelper dbhelper = new DBOpenHelper(this); SQLiteDatabase db=dbhelper.getWritableDatabase(); xiugai.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { String acc = zhanghao.getText().toString(); String oldpw = yuanmima.getText().toString(); String newpw = xinmima.getText().toString(); String confpw = querenmima.getText().toString();

            if(administrator.isChecked()) {
                if(acc.isEmpty() || oldpw.isEmpty() || newpw.isEmpty() || confpw.isEmpty()) {
                    Toast.makeText(xiugaiActivity.this, '请输入完整信息', Toast.LENGTH_SHORT).show();
                    return;
                }
                if (!newpw.equals(confpw)) {
                    Toast.makeText(xiugaiActivity.this, '两次密码输入不一致', Toast.LENGTH_SHORT).show();
                    return;
                }
                Cursor cursor = db.rawQuery('SELECT * FROM administractor WHERE account = ?', new String[]{acc});
                if (cursor.moveToFirst()) {
                    String pwd = cursor.getString(cursor.getColumnIndex('password'));
                    if (pwd.equals(oldpw)) {
                        db.execSQL('UPDATE administractor SET password = ? WHERE account = ?', new String[]{newpw, acc});
                        Toast.makeText(xiugaiActivity.this, '密码修改成功', Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(xiugaiActivity.this, '原密码错误', Toast.LENGTH_SHORT).show();
                    }
                } else {
                    Toast.makeText(xiugaiActivity.this, '用户不存在', Toast.LENGTH_SHORT).show();
                }
                cursor.close();
            } else if (studentrb.isChecked()) {
                if(acc.isEmpty() || oldpw.isEmpty() || newpw.isEmpty() || confpw.isEmpty()) {
                    Toast.makeText(xiugaiActivity.this, '请输入完整信息', Toast.LENGTH_SHORT).show();
                    return;
                }
                if (!newpw.equals(confpw)) {
                    Toast.makeText(xiugaiActivity.this, '两次密码输入不一致', Toast.LENGTH_SHORT).show();
                    return;
                }
                Cursor cursor = db.rawQuery('SELECT * FROM load_account WHERE account = ?', new String[]{acc});
                if (cursor.moveToFirst()) {
                    String pwd = cursor.getString(cursor.getColumnIndex('password'));
                    if (pwd.equals(oldpw)) {
                        db.execSQL('UPDATE load_account SET password = ? WHERE account = ?', new String[]{newpw, acc});
                        Toast.makeText(xiugaiActivity.this, '密码修改成功', Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(xiugaiActivity.this, '原密码错误', Toast.LENGTH_SHORT).show();
                    }
                } else {
                    Toast.makeText(xiugaiActivity.this, '用户不存在', Toast.LENGTH_SHORT).show();
                }
                cursor.close();
            } else if (teacherrb.isChecked()) {
                if(acc.isEmpty() || oldpw.isEmpty() || newpw.isEmpty() || confpw.isEmpty()) {
                    Toast.makeText(xiugaiActivity.this, '请输入完整信息', Toast.LENGTH_SHORT).show();
                    return;
                }
                if (!newpw.equals(confpw)) {
                    Toast.makeText(xiugaiActivity.this, '两次密码输入不一致', Toast.LENGTH_SHORT).show();
                    return;
                }
                Cursor cursor = db.rawQuery('SELECT * FROM load_teacher WHERE account = ?', new String[]{acc});
                if (cursor.moveToFirst()) {
                    String pwd = cursor.getString(cursor.getColumnIndex('password'));
                    if (pwd.equals(oldpw)) {
                        db.execSQL('UPDATE load_teacher SET password = ? WHERE account = ?', new String[]{newpw, acc});
                        Toast.makeText(xiugaiActivity.this, '密码修改成功', Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(xiugaiActivity.this, '原密码错误', Toast.LENGTH_SHORT).show();
                    }
                } else {
                    Toast.makeText(xiugaiActivity.this, '用户不存在', Toast.LENGTH_SHORT).show();
                }
                cursor.close();
            }
        }
    });
}

}


原文地址: https://www.cveoy.top/t/topic/pmuQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录