校车定位服务系统数据库初步设计

数据库和接口设计 1、 分析 设计了以下数据库模型。此次数据库采用较为简单的MS SQL,主要有五个表单,Tab_Station(汽车停靠站点),Tab_RegBus(班车时刻信息),Tab_Bus(汽车信息表),Tab_Admin(管理员信息),Tab_System(系统信息)。 2、 数据库基本表单 Tab_Station: 列名 数据类型 允许空 备注 StaID Int No 站点编号 StaName Varchar(25)站点名 StaLati Float经度 StaLongi Float纬度

Tab_ReguBus 列名 数据类型 允许空 备注 RegID Int no 班车时刻编号 RegDocking Varchar(25)停靠站 RegDrivInterval Varchar(50)行车区间 RegPickUp Varchar(25)上车地点 RegFirstTime Time首发时间 RegDriveDirect Varchar(100)行车路线 RegTeam Varchar(25)所属车队

Tab_Bus 列名 数据类型 允许空 备注 BusID Int No 汽车编号 BusLati Float经度 BusLongi Float纬度 BusTime Time时间 Property Varchar(100)记录汽车属性(待定)

Tab_Admin 列名 数据类型 允许空 备注 AdmID Int No 管理员编号 AdmName Varchar(25) No 管理员姓名(账号) AdmPWD Varchar(25) No 密码 LoginIP Varchar(25)登陆IP LoginLog Varchar(100)操作日志 LogTime time记录时间

Tab_System 列名 数据类型 允许空 备注 SysID int no 系统信息编号 LoginIP Varchar(25)事件对应IP地址 SysTime Time事件发生时间 SysLog Varchar(100)系统操作 IsAdmin Int是否为管理员 Property Varchar(25)拓展

3、 SQL Create database BD_DB GO

use BD_DB GO

create table Tab_Station (StaID int identity(1,1) primary key not null, StaName varchar(25), StaLati float, StaLongi float ); GO

create table Tab_RegBus (RegID int identity(1,1) primary key not null, RegDocking varchar(25) not null, RegDrivInterval varchar(25), RegPickUp varchar(25), RegFirstTime time, RegDriveDirect varchar(100), RegTeam varchar(25) ); GO

create table Tab_Bus (BusID int identity(1,1) primary key not null, BusLati float, BusLongi float, BusTime time, Property varchar(25) ); GO

Create table Tab_Admin (AdmID int identity(1,1) primary key not null, AdmName varchar(25) not null, AdmPWD varchar(25) not null, LoginIP varchar(25), LoginLog varchar(100), LogTime time ); GO

Create table Tab_System (SysID int identity(1,1) primary key not null, LoginIP varchar(25), SysTime time, SysLog varchar(100), IsAdmin int, property varchar(25) );

PL/SQL

/站点信息查询/ create procedure sp_Select_Sta @staid int as begin select * from Tab_Station where @staid=staid end GO

/站点信息插入/ create procedure sp_Insert_Sta @staname varchar(25), @stalati float, @stalongi float as begin insert into Tab_Station(staname,stalati,stalongi) values (@staname,@stalati,@stalongi) end GO

/车辆时刻信息查询/ create procedure sp_Select_RegBus @regid int as begin select * from Tab_RegBus where @regid=Regid end GO

/车辆时刻信息插入/ create procedure sp_Insert_Reg @RegDocking varchar(25), @RegDrivInterval varchar(50), @RegPickUp varchar(25), @RegFirstTime time, @RegDriveDirect varchar(100), @RegTeam varchar(25) as begin insert into Tab_ReguBus(RegDocking,RegDrivInterval,RegPickUp,RegFirstTime,RegDriveDirect,RegTeam) values (@RegDocking,@RegDrivInterval,@RegPickUp,@RegFirstTime,@RegDriveDirect,@RegTeam) end GO

/车辆信息查询/ create procedure sp_Select_Bus @busid int as begin select * from Tab_Bus where @busid=busid end GO

/车辆信息插入/ create procedure sp_Insert_Bus @BusID Int, @BusLati Float, @BusLongi Float, @BusTime Time, @Property Varchar(100) as begin insert into Tab_Bus(BusLati,BusLongi,BusTime,Property) values (@BusLati,@BusLongi,@BusTime,@Property) end GO

/管理员信息查询/ create procedure sp_Select_Admin @admid int as begin select * from Tab_Admin where @admid=Admid end GO

/管理员信息插入/ create procedure sp_Insert_Admin @AdmName Varchar(25), @AdmPWD Varchar(25), @LoginIP Varchar(25), @LoginLog Varchar(100), @LogTime time as begin insert into Tab_Admin(AdmName,AdmPWD,LoginIP,LoginLog,LogTime) values (@AdmName,@AdmPWD,@LoginIP,@LoginLog,@LogTime) end GO

/系统信息查询/ create procedure sp_Select_Sys @Sysid int as begin select * from Tab_System where @sysid=sysid end GO

/系统信息插入/ create procedure sp_Insert_System @LoginIP Varchar(25), @SysTime Time, @SysLog Varchar(100), @IsAdmin Int, @Property Varchar(25) as begin insert into Tab_System(LoginIP,SysTime,SysLog,IsAdmin,Property) values (@LoginIP,@SysTime,@SysLog,@IsAdmin,@Property) end GO 4、 数据库基本操作 1) 数据库连接 import java .sql.*;   public class sql {    public static void main(String[] args) {     try {      String address = “jdbc:microsoft:sqlserver://localhost:1433”;      //驱动类型+目标数据库ip+数据库端口      String user=”sa”;//数据库用户密码      String passwd=”“;//口令      String database = “pubs”;//目标数据库      Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”).newInstance();//驱动申明      Connection con = DriverManager.getConnection(address,user,passwd);//建立链接      con.setCatalog(database);//确定目标数据库      Statement smt =   con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);      //建立描述,设定结果集支持滚动光标且敏感,,不可编辑      String selCode = “SELECT test1,test2 FROM test”;//查询语句      ResultSet rs = smt.executeQuery(selCode);//结果集      if(rs.last()) {//从第一条往后依次取结果集中的记录       String userId = rs.getString(1);//等同rs.getString(“userId”),即第一个字段数据       String userName = rs.getString(2);//同上,第二个字段,全部取其为String类型       //若是中文字段,一般需要转码       //userName = new String(userName.getBytes(“ISO-8859-1”),”gb2312”);   System.out.println(userId+”:”+userName);//输出此条记录的查询结果      }      rs.close();//释放资源      smt.close();      con.close();     }     catch(Exception e) {      System.out.println(e);//捕捉异常     }    }   }    2) 执行SQL语句和存储过程 具体我想写一个操作基本数据库的包,请准备开发中间件组的同学是否可以给出所需基本函数?因为时间关系,我没考虑好具体写哪些操作过程,如果上面存储过程和数据库修改的话,我会给出新的数据库和存储过程。具体的基本数据库操作包还是需要的,大家先看看,然后给我答复。 5、 存在的问题 1) 上面的SQL语句直接执行,然后就可以建立一个基本的数据库了,然后执行PL/SQL就可以建立所有的存储过程了,执行存储过程是 Exec 存储过程名字 [参数],….. 2) 这样设计的数据库是空数据库,大家随便写一些信息就行了,至于如何使用google API,请参考: 3) 数据库中的Property是说,有些数据是什么我还没想清楚,但是一定会拓展的。 4) 大家会发现数据库中没有约束性要求,是因为我们需要简单的测试,如果添加太多约束,会导致系统不稳定和提高开发的复杂性。 5) 代码的大小写没有关系,MS SQL大小写都可以,我只是按照我自己的写法写的大小写,如有个别差错,可以正常使用。 6) 代码我在MS SQL2008上测试过,可以使用!如果有问题,请及时联系我!

最好的感觉就是你什么都跟我说。

校车定位服务系统数据库初步设计

相关文章:

你感兴趣的文章:

标签云: