《数据库概论》课程设计实验报告书 下载本文

《数据库系统概论》课程设计实验报告书 安徽工业大学计算机学院

Rnum int,

constraint pk_Remain primary key(Gno,Hno)); 定义外键:

alter table Input add constraint fk1_Input foreign key(Gno)references Goods(Gno) alter table Input add constraint fk2_Input foreign key(Sno)references Supply(Sno) alter table Output add constraint fk1_Output foreign key(Gno)references Goods(Gno) alter table Output add constraint fk2_Output foreign key(Cno)references Custom(Cno)

3.2 数据库连接

首先配置数据源:

数据源名称为data,服务器设为本机

11

《数据库系统概论》课程设计实验报告书 安徽工业大学计算机学院

用预先设置的登陆名和密码登陆到sql.

数据库连接部分代码如下:(在eclipse中编译执行)

public class DbConnection {

public static void main(String[] args) {

String driver=\ String connStr=\ String useName=\

12

《数据库系统概论》课程设计实验报告书 安徽工业大学计算机学院

String password=\ Connection con=null; try {

Class.forName(driver);

System.out.println(\驱动程序加载成功!\ }

catch(ClassNotFoundException e) {

System.out.println(\驱动程序加载失败!\ }

DatabaseWin win=new DatabaseWin(); /**/try {

con=DriverManager.getConnection(connStr,useName,password); System.out.println(\数据库连接成功!\ }

catch(SQLException e) {

System.out.println(\数据库连接失败!\ } } }

3.3 主要模块实施

3.3.1 登录模块的开发

登陆模块主要是设计登陆界面,设置管理员的登录名与密码,这样保证了数据库

只有管理员可以操作,从而在一定程度上保证了数据的安全性。 功能实现代码如下:

if(e.getSource()==jb1) {

if(jf1.getText().equals(s1)&&jf2.getText().equals(s2)) {

DatabaseWin win =new DatabaseWin(); win.setVisible(true); }

else{

JOptionPane.showMessageDialog(this,\用户名或密码错误\,\失败\,JOptionPane.ERROR_MESSAGE);

}

13

《数据库系统概论》课程设计实验报告书 安徽工业大学计算机学院

}

备注:其中jf1.getText()获取用户在登陆界面上输入的登陆名,s1是管理员设置的登陆名。jf2.getText()获取用户在登陆界面上输入的密码,s2是管理员设置的密码。

3.3.2 进货单模块的开发

这部分功能主要是要获取新建进货单窗口中用户插入的数据项,并使用sql语句把

它们插入数据库中同时获取用户插入商品的数量并把它和库存中相应商品的数量想加更新数据库,并且用事务将这两条sql语句绑定到一起,从而保证了数据的唯一性。 功能实现代码如下:

con.setAutoCommit(false);

stmt=con.createStatement(); int k=stmt.executeUpdate(\into Input values('\0][4]+\ if(k==1)

JOptionPane.showMessageDialog(this,\进货单插入成功\成功\PLAIN_MESSAGE); ////更新库存

rs=stmt.executeQuery(\* from Remain where gno='\ rs.next();

int rnum1=rs.getInt(3);

int number=Integer.parseInt(a[0][3].toString()); rnum1=rnum1+number; int m=stmt.executeUpdate(\Remain set Rnum=\where gno='\ if(m==1)

JOptionPane.showMessageDialog(this,\库存表更新成功\成功\PLAIN_MESSAGE); con.commit();

3.3.3 出货单模块的开发

这部分功能主要是要获取新建出货单窗口中用户插入的数据项,获取用户插入商品的数量并获得库存中相应商品的数量,若库存能够满足用户需求数量则使用sql语句把用户输入的数据项插入数据库中同时更新数据库,并且用事务将这两条sql语句绑定到一起,从而保证了数据的唯一性。 功能实现代码如下:

con.setAutoCommit(false);

stmt=con.createStatement(); rs=stmt.executeQuery(\* from Remain where gno='\+a[0][0]+\); rs.next();

int rnum1=rs.getInt(3);

14