当前位置:文档之家› 设计数据库课程设计(Java实现)

设计数据库课程设计(Java实现)

)一、课程设计目的在数据库原理课程基础上,培养学生综合运用数据库知识的能力。

学会数据库的设计、规划以及应用程序的开发和调试,使学生掌握客户机/服务器体系结构,学会大型数据库的工作模式。

大型数据库管理系统存放于服务器,数据库放在服务器上,学生在客户机上开发应用程序访问服务器上的数据库,并完成应用系统所要求的各项功能,应用程序的开发需要采用当前流行的新软件。

二、课程设计内容1.数据库的设计根据学生信息管理系统,经过调查研究,构建合理的数据库。

首先构建基本表以及表和表之间的联系,在此基础上构建视图和索引表。

2.服务器的组织根据建立的基本表、视图和索引表搭建服务器。

3.】4.前端开发工具:java学习并完成编写程序。

服务器端:SQL Server20125.开发应用程序利用所学的新软件开发工具进行应用程序的开发。

6.连接、调试。

三、软硬件环境及系统所采用的体系结构系统的体系结构为C/S结构,具体开发工具为Ecplise ,前台为Java,后台数据库一般为SQL Server2012。

【四、需求分析通过对学生信息管理的了解,确定本系统具备一下功能。

多用户账号登录只要通过用户登录验证后,能对学生的记录信息进行修改,增加,删除等操作。

五、系统设计1.系统结构图$?a.功能模块图》|*2.数据库设计学生包含的信息:!"》N M!(Login表USE[Student]*GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO~学生宿舍住址电话性别学生课程选择用户用户名密码CREATE TABLE[dbo].[Login]([userName][nvarchar](20)NOT NULL,[password][nvarchar](10)NULL,CONSTRAINT[PK_Login]PRIMARY KEY CLUSTERED([userName]ASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS =ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]@GOStudentIfor表USE[Student]GO{SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE[dbo].[StudentIfor]([code][nvarchar](10)NOT NULL,,[name][nvarchar](10)NOT NULL,[sex][nchar](2)NOT NULL,[room][nvarchar](10)NOT NULL,[address][nvarchar](50)NULL,[tel][nvarchar](11)NULL,CONSTRAINT[PK_StudentInfor]PRIMARY KEY CLUSTERED[code]ASC:)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS =ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOCrouse表CREATE TABLE[dbo].[Course](《[courseID][nchar](5)NOT NULL,[courseName][nvarchar](40)NOT NULL,CONSTRAINT[PK_Course]PRIMARY KEY CLUSTERED([courseID]ASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS =ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY](GOStudent_Crouse表CREATE TABLE[dbo].[Student_Course]([code][nvarchar](10)NOT NULL,[courseID][nchar](5)NOT NULL,[courseGrade][float]NULL,CONSTRAINT[PK_Student_Course]PRIMARY KEY CLUSTERED:[code]ASC,[courseID]ASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS =ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GO}六、系统的实施系统的实现方法是用java结合SqlServer2012,用java编写前端的用户界面主要的界面代码如下:public class windows implements ActionListener{private JFrame frame;private JLabel[] label;private JTextField[] textField;private JList list;》private JScrollPane jscrollPane;private DefaultListModel listModel;private JRadioButton mjRadioButton, fjRadioButton;private ButtonGroup setButtonGrop;private JButton[] button;private JButton jbu;private Container con;private ResultSet resultSet;{private String [] sinfor = {"* 学号:","* 姓名:","* 性别:","*宿舍:","住址:","电话:"};private String [] binfor = {"增加","删除","修改","查找","上一条","下一条"};public windows() {frame = new JFrame("学生信息管理 ");con = ();(null);(350, 150);"(7770/15, 6000/15);(false);textField = new JTextField[6];label = new JLabel[6];button = new JButton[6];for(int i = 0; i < 6; i++){*label[i] = new JLabel(sinfor[i]);label[i].setLocation(5, 3 + (i * 670/15));label[i].setSize(570/15, 670/15);(label[i]);if(i != 2){textField[i] = new JTextField();)textField[i].setSize(200, 470/15);textField[i].setLocation(770/15,5 +(i * 670/15));(textField[i]);}else{mjRadioButton = new JRadioButton("男",false);(true);(570/15, 670/15);)(970/15,5 + (2 * 670/15));(this););fjRadioButton = new JRadioButton("女",false);(570/15, 670/15);(2070/15,5 + (2 * 670/15)););(true);|(this);setButtonGrop = new ButtonGroup();(mjRadioButton);(fjRadioButton);(mjRadioButton);(fjRadioButton);(}button[i] = new JButton(binfor[i]);button[i].setSize(1570/15,370/15);button[i].setCursor);button[i].addActionListener(this);if(i <= 2)button[i].setLocation(240/15 + (i * 2000/15),4300/15);`elsebutton[i].setLocation(240/15 + ((i-3)* 2000/15), 4300/15 + 450/15);(button[i]);}jbu = new JButton("查看成绩");(1570/15, 800/15);(3 * 2000/15, 4300/15);)(this);(jbu);select se = new select();resultSet = ();listModel = new DefaultListModel();try {while())?{("code") +" "+ ("name"));}} catch (SQLException e) {();}();list = new JList(listModel);、(new MouseAdapter(){public void mouseClicked(MouseEvent e){if() == 2 && () != -1)clickTwo());}});jscrollPane = new JScrollPane(list);(200, 250);…(270, 7);(jscrollPane);(true);;}应用程序的编制方法是用户点击给出的功能按钮实现对应的功能,按钮响应中调用相应的类及方法,重要代码如下:>private void clickTwo(Object value){String str = null;ResultSet re;select se;str = ().substring(0, 8);();se = new select();re = (str);·try {textField[0].setText( ("code"));textField[1].setText("name"));if("sex").equals("女 ") == true)(true);else(true);textField[3].setText("room"));,textField[4].setText("address"));textField[5].setText("tel"));} catch (SQLException e) {();}();【}public void actionPerformed(ActionEvent e) {String code = null, name = null, sex = "", room = null, address =null, tel = null;if() == button[0]){code = textField[0].getText();name = textField[1].getText();Enumeration<AbstractButton> en=();…while()){AbstractButton ab=();if())sex = ();}room = textField[3].getText();address = textField[4].getText();tel = textField[5].getText();…();();();();();if("")!= true && ("")!=true && ("")!=true && ("")!= true){ if(new addInfor(code, name, sex, address, room, tel).addToDataBase() == true){}(frame, "增加成功");select se = new select();resultSet = ();listModel = new DefaultListModel();try {while()){ ("code") +" "+ ("name"));}%} catch (SQLException e1) {();}(listModel);();for(int i = 0; i < 6; i++)if(i != 2)textField[i].setText("");;}else(frame, "增加失败,请核对信息");}else(frame, "填入信息不全,请核对","警告",;}(if() == mjRadioButton || () == fjRadioButton){sex = ();}if() == button[1]){String deli = null;>deli = (frame, "请输入删除的学号:");if(deli != null){();if("") != true){if(new deleteInfor(deli).studentDel() == true) ${(frame, "删除成功");select se = new select();resultSet = ();listModel = new DefaultListModel();try {while()){:("code") +" "+ ("name"));}} catch (SQLException e1) {();}(listModel);();}|else(frame, "删除失败,请核对信息");}else(frame, "学号不能为空","错误",;}}if() == button[2])~{code = textField[0].getText();name = textField[1].getText();Enumeration<AbstractButton> en=();while()){AbstractButton ab=();if())sex = ();(}room = textField[3].getText();address = textField[4].getText();tel = textField[5].getText();();();();();;();if("")!= true && ("")!=true && ("")!=true && ("")!= true)if(newupdate(code,name,sex,room,address,tel).updateStudentIfor() == true){(frame, "修改成功");select se = new select();resultSet = ();listModel = new DefaultListModel();:try {while()){("code") +" "+ ("name"));}} catch (SQLException e1) {();},(listModel);();}else(frame, "修改失败,请核对信息","错误",;else(frame, "填入信息不全,请核对","警告",;}【if() == button[3]){ResultSet s;select sAll;String seach = null;seach = (frame, "请输入查找的学号:");if(seach != null){~();if("") != true){sAll = new select();s = (seach);try {for(int i = 0; i < 6; i++){#if(i == 2){if(3).equals("男"))(true);else(true);}else\textField[i].setText(i+1));}} catch (HeadlessException e1) {();} catch (SQLException e1) {(frame, "查找的学生记录不存在:");}();}else(frame, "学号不能为空","错误",;}}if() == button[4]){JScrollBar jsscroBar;int lis;lis = ();if(lis == -1){(0);jsscroBar = ();(0);}else{(lis - 1);jsscroBar = ();(lis * 10 - 1);}}if() == button[5]){int lis;JScrollBar jsscroBar;lis = ();(lis + 1);jsscroBar = ();(lis * 10 + 1);}if() == jbu){code = textField[0].getText();if(code != null){();if("") != true){new crouseFrame(code);}else(frame, "学号不能为空");}}}七、系统评价及心得体会1.改进方案本次实验中,自己设计的程序功能上存在不足的地方,如查询时有限制格式,没有很好的容错性,代码健壮性不足,没有具体的应用价值。

相关主题