MathiasLuo / Android_Xamine

网校第一次考核--妹子图

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Android_Xamine

###不知道如何展示sql 就贴贴代码吧。 ###为了方便手机上的测试,我就每次都添加一下数据

###第一个SQL的辅助类,里面创建了数据表。

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
 * Created by Administrator on 2015/5/30 0030.
 */
public class SQLHelper extends SQLiteOpenHelper {

    //数据库版本
 public static final int VERSION = 1;
 //数据库名称
 public static final String MYDATANAME = "SQLdata";
    //创建Student表
 String sql1 = "create table  IF NOT  EXISTS Student  (_id integer,SNO varchar(20),Name varchar(10),Age integer,College varchar(30))";
  //创建Course表
 String sql2 = "create table  IF NOT  EXISTS  Course  (_id integer,CourseID varchar(15),CourseName varchar(30),CourseBeforeID varchar(15))";
    //创建Choose表
 String sql3 = "create table  IF NOT  EXISTS  Choose  (_id integer,SNO varchar(20),CourseID varchar(30),Score decimal(2,5))";

 public SQLHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
      super(context, name, factory, version);
 }

    @Override
 public void onCreate(SQLiteDatabase db) {
      db.execSQL(sql1);
     db.execSQL(sql2);
     db.execSQL(sql3);
 }

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

 然后就是操作的类了,由于写在了Fragment里面,所以我就只贴重要代码了。(对sql语句并不是很熟悉,所以就用android中的)。
 首先在`onCreate()`中生产`mSqLiteDatabase`,然后向表中加入数据。

 mSqlHelper = new SQLHelper(getActivity(), SQLHelper.MYDATANAME, null, SQLHelper.VERSION);
        mSqLiteDatabase = mSqlHelper.getWritableDatabase();
        insert_students();
        insert_Course();
        insert_Choose();

 加入数据的方式也采用的android里面的`insert()`,向表中假数据的方式也都差不多,所以就贴一下。

     ContentValues value_student_1 = new ContentValues();
            value_student_1.put("SNO", "S00001");
            value_student_1.put("Name", "张三");
            value_student_1.put("Age", 20);
            value_student_1.put("College", "计算机学院");
            mSqLiteDatabase.insert("Student", null, value_student_1);

 接着就是数据的查询了:

       String stuname = mEditText.getText().toString();
       Cursor cursor_student = mSqLiteDatabase.query("Student", null, "Name=?", new String[]{stuname}, null, null, null);
       if (cursor_student.moveToNext()) {
            String SNO = cursor_student.getString(cursor_student.getColumnIndex("SNO"));
            String name = cursor_student.getString(cursor_student.getColumnIndex("Name"));
            int age = cursor_student.getInt(cursor_student.getColumnIndex("Age"));
            String College = cursor_student.getString(cursor_student.getColumnIndex("College"));
            mTextView.setText("name: " + name + "\n" + "SNO: " + SNO + "\nage: " + age + "\nCollege: " + College);

 删除数据,因为需要删除该学生的所有资料所以我采取镶嵌的删除:

        Cursor cursor_student = mSqLiteDatabase.query("Student", null, "Name=?", new String[]{string}, null, null, null);
               if (cursor_student.moveToNext()) {
                   String SNO = cursor_student.getString(cursor_student.getColumnIndex("SNO"));
                   String name = cursor_student.getString(cursor_student.getColumnIndex("Name"));
                   int age = cursor_student.getInt(cursor_student.getColumnIndex("Age"));
                   String College = cursor_student.getString(cursor_student.getColumnIndex("College"));

                   Cursor cursor_Choose = mSqLiteDatabase.query("Choose", null, "SNO=?", new String[]{SNO}, null, null, null);
                   if (cursor_Choose.moveToNext()) {
                       String CourseID = cursor_Choose.getString(cursor_Choose.getColumnIndex("CourseID"));
                       int Score = cursor_Choose.getInt(cursor_Choose.getColumnIndex("Score"));

                       Cursor cursor_Course = mSqLiteDatabase.query("Course", null, "CourseID=?", new String[]{CourseID}, null, null, null);
                       if (cursor_Course.moveToNext()) {
                           String CourseName = cursor_Course.getString(cursor_Course.getColumnIndex("CourseName"));
                           String CourseBeforeID = cursor_Course.getString(cursor_Course.getColumnIndex("CourseBeforeID"));

                           DeteStuByName(name);
                           DeteCourseByCourseName(CourseName);
                           DeteChooseByName(CourseID);

                       }
                   }
               }

 其中:
         public void DeteStuByName(String name) {
                mSqLiteDatabase.delete("Student", "Name=?", new String[]{name});
            }

            public void DeteCourseByCourseName(String CourseName) {
                mSqLiteDatabase.delete("Course", "CourseName=?", new String[]{CourseName});
            }

            public void DeteChooseByName(String Choosename) {
                mSqLiteDatabase.delete("Choose", "CourseID=?", new String[]{Choosename});
            }

 对于把计算机学院的同学,年龄加2,我是先查询Student表中的,有计算机的,就把他的年龄加2:

         public void ex_jisuanji() {
                 Cursor cursor_student = mSqLiteDatabase.query("Student", null, "College=?", new String[]{"计算机学院"}, null, null, null);
                 while (cursor_student.moveToNext()) {
                     String name = cursor_student.getString(cursor_student.getColumnIndex("Name"));
                     int age = cursor_student.getInt(cursor_student.getColumnIndex("Age"));
                     re_jisuanji(name, age);
                 }

             }

             public void re_jisuanji(String name, int age) {
                 ContentValues values = new ContentValues();
                 values.put("Age", age + 2);
                 mSqLiteDatabase.update("Student", values, "Name=?", new String[]{name});
             }

About

网校第一次考核--妹子图


Languages

Language:Java 100.0%