微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLite数据库实例一

本人这次与大家分享的是我自己做的一个数据库课程设计,是学生信息管理系统,使用sqlite来实现。

首先,用户有三个类型:学生,老师,管理员

他们各自的功能模是:

学生 修改登陆密码,修改查看个人信息,查看并可以选择可以选修的课程,查看选修课程的成绩
老师 修改登陆密码,修改查看个人信息,给自己所在班级所对应的选修课程的学生录入成绩
管理员 修改登陆密码,修改查看个人信息,查看自己管理学院的所有学生部分信息,查看自己管理所在学院的所有老师信息

界面设置:

登陆界面:


代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical" >
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:text="首次登陆是学号或者是教师号或者是管理员编号"
        android:textColor="#000000"
        android:textSize="18sp" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dp"
            android:text="@string/userName_manager"
            android:textSize="16sp" />
        <EditText
            android:id="@+id/allFrame_name"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="@string/userName_manager01"
            android:inputType="number"
            android:textSize="16sp" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:orientation="horizontal" >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dp"
            android:text="@string/password"
            android:textSize="16sp" />
        <EditText
            android:id="@+id/allFrame_password"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="@string/password_manager"
            android:inputType="textPassword"
            android:textSize="16sp" />
    </LinearLayout>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="load_allFrame"
        android:text="@string/button_student" />
    <RadioGroup
        android:id="@+id/allFrame_rg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:orientation="horizontal" >
        <RadioButton
            android:id="@+id/studentFrame"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="学生" />
        <RadioButton
            android:id="@+id/teacherFrame"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="老师" />
        <RadioButton
            android:id="@+id/managerFrame"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="管理员" />
    </RadioGroup>
</LinearLayout
依次是学生老师管理员


这里的界面代码比较简单,就不一一叙述了。

设计完界面之后是数据库的设计,这里需要用到一个sqliteOpenHelper的子类来实现数据库文件数据库表的建立。

一定需要注意的是所有的数据库表一定需要放在同一个数据库文件

详情可见Android中内置数据库SQLite详解三——补充在这类中实现数据库文件和表的初始化,把各种需要的表建立出来。

代码是:

public class DataBaSEOpenHelper extends sqliteOpenHelper
{

	public DataBaSEOpenHelper (Context context)
	{
		super(context,"database.db",null,1);
	}

	public void onCreate(sqliteDatabase db)
	{
		db.execsql("create table course(courseid integer primary key autoincrement,name varchar(8) UNIQUE,time varchar(8))");
		
		db.execsql("create table allmanagermessage(managerid integer primary key autoincrement,"
				+ "Mno varchar(10) UNIQUE,"
				+ "name varchar(10) NOT NULL,"
				+ "sex varchar(10) check (sex IN ('男','女')),"
				+ "age varchar(2) not NULL," + "control_step varchar(20))");
		
		db.execsql("CREATE TABLE managerMessage(managerid integer primary key autoincrement,"
				+ "name varchar(8) UNIQUE," + "password varchar(8))");
		
		db.execsql("create table allstudentmessage(studentid integer primary key autoincrement,"
				+ "age integer,"
				+ "Sno varchar(8) UNIQUE,"
				+ "name varchar(10),"
				+ "classIn varchar(8),"
				+ "sex varchar(4),"
				+ "step varchar(20),"
				+ "qq varchar(10),"
				+ "tel varchar(11),"
				+ "address varchar(11),"
				+ "stepIN varchar(10))");
		
		db.execsql("CREATE TABLE userMessage(studentid integer primary key autoincrement," + "password varchar(8))");
		
		db.execsql("create table allteachermessage(teacherid integer primary key autoincrement,"
				+ "Tno varchar(10) UNIQUE,"
				+ "Tname varchar(10),"
				+ "Tage varchar(2),"
				+ "Tsex varchar(4) check (Tsex IN('男',"
				+ "T_Class varchar(20),"
				+ "T_Class_name varchar(20),stepIN varchar(10))");
		
		db.execsql("CREATE TABLE teacherMessage(teacherid integer primary key autoincrement," + "password varchar(8))");
		
		db.execsql("create table dbS_C(s_cid integer primary key autoincrement,s_name,c_name,score)");
//		"计算机网络","2——16",//		"高等数学","1——9",//		"数据结构","4——18",//		"嵌入式系统设计","3——9",//		"操作系统","2——20",//		"Android开发","1——13"
		String[] courseName = {"数据库系统概论","计算机网络","高等数学","嵌入式系统设计","数据结构","操作系统","Android开发"};
		String[] courseTime = {"1——9","1——13"};
		
		for (int i = 0; i < courseName.length; i++)//初始化课程表
		{
			db.execsql("insert into course(name,time) values(?,?);",new Object[]{courseName[i],courseTime[i]});
		}
	}

	public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion)
	{
	}

}
未完待续。。。

源码下载地址:SQLite数据库课程设计

原文地址:https://www.jb51.cc/sqlite/199896.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐