图书管理系统开发--问题解决
2014-03-23 21:48
351 查看
项目名称:图书管理系统
项目简介: 该系统主要面向图书馆的单机服务实体对象开发,适合中小型图书馆使用。此开发的“图书管理系统”项目的界面如图所示,主界面采用了多文档窗口,这样可以在窗
口内打开多个子窗口,同时进行多种操作。主界面中通过菜单实现不同模块的功能,包括系统管理员、书籍信息管理、读者信息管理、报表和窗口功能。管理员可
以根据自己的权限,对相应的模块进行操作。
项目目的:
掌握SQL数据
掌握JDBC连接SQL
掌握窗体的使用
涉及的主要技术:
Swing API 、JAVA EXCEL API、JDBC数据库的访问、多层架构模式
编程环境:
开发平台:JDK1.5.0以上版本
开发工具:NetBeans5.0以上版本
数据库: SQL2005以上版本
功能划分:
其中各个阶段问题解决:
1.登录问题:
关键代码:
需要提取文本框中的数据连接数据库进行查找比对,当有该用户信息的时候就调用
new bookMain().setVisible(true);//主菜单
this.setVisible(false);同时把登录界面隐藏
2.主界面:
该界面是一个枢纽用于调用各个功能模块:
例如打开借书功能模块时:
3.读者信息添加模块:
如何获取下拉框中的值: 利用该句 String code=(String) jComboBox1.getSelectedItem();
如何获取单选按钮中的值:声明一个局部String 变量,在事件处理当中进行赋相同的值,例如对性别的输入:
4.相应的读者信息删除:
如何读取数据库中的值来显示在单选按钮中:
例如显示男女:
如何把数据库的数据显示在对应的表格内:
例如:
如何单击表格中的数据对应的显示在相应的文本框中:
进行完删除修改操作后要进行及时更新表格中的数据:
我的处理方法是在点击按钮之后再重新加载一遍数据库中的数据
5.借书管理和还书管理就没有那么多问题了,处理好时间问题,以及对应的是否欠款,这都是小小的数学算法问题。
6.对应的图书查询的部分代码:
7.图书添加书籍一览表等问题都不大。
8.更改口令 注意首先要进行查询数据库相应的用户信息,确认后方可更改口令。
项目简介: 该系统主要面向图书馆的单机服务实体对象开发,适合中小型图书馆使用。此开发的“图书管理系统”项目的界面如图所示,主界面采用了多文档窗口,这样可以在窗
口内打开多个子窗口,同时进行多种操作。主界面中通过菜单实现不同模块的功能,包括系统管理员、书籍信息管理、读者信息管理、报表和窗口功能。管理员可
以根据自己的权限,对相应的模块进行操作。
项目目的:
掌握SQL数据
掌握JDBC连接SQL
掌握窗体的使用
涉及的主要技术:
Swing API 、JAVA EXCEL API、JDBC数据库的访问、多层架构模式
编程环境:
开发平台:JDK1.5.0以上版本
开发工具:NetBeans5.0以上版本
数据库: SQL2005以上版本
功能划分:
其中各个阶段问题解决:
1.登录问题:
关键代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String passname= jTextField1.getText(); // JPasswordField passwordField=new JPasswordField(); String password=new String(jPasswordField1.getPassword()); //判断用户名是否为空 if (passname.length() == 0) { JOptionPane.showOptionDialog(this, "用户名不能为空", "错误信息" , JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE, null, null, null); } //判断密码是否为空 else if (password.length()==0) { JOptionPane.showOptionDialog(this,"密码不能为空", "错误信息" , JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE, null, null, null); } else { try { int m=0; //统计字段个数 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/library?user=root&password=wafe5217"); DatabaseMetaData metadata=conn.getMetaData(); ResultSet rsl=metadata.getColumns(null, null,"booklagin",null); while(rsl.next()){ m++; } Statement sql=conn.createStatement(); ResultSet rs=sql.executeQuery("select * from booklogin where name='"+passname+"'"); // while(rs.next()){ // for(int k=1;k<=m;k++){ // System.out.print(" "+rs.getString(k)); // } // // } if (rs.next()){ if(password.equals(rs.getString(2))){ new bookMain().setVisible(true); this.setVisible(false); } else { JOptionPane.showOptionDialog(this,"密码错误", "错误信息" , JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE, null, null, null); } } else { JOptionPane.showOptionDialog(this,"没有所要找的用户名", "错误信息" , JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE, null, null, null); } if(num<3){ num++; }else{ JOptionPane.showOptionDialog(this,"尝试的次数过多!", "错误信息" , JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE, null, null, null); this.dispose(); } } catch(Exception e){ JOptionPane.showOptionDialog(this,"连接数据库失败", "错误信息" , JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE, null, null, null); } } }
需要提取文本框中的数据连接数据库进行查找比对,当有该用户信息的时候就调用
new bookMain().setVisible(true);//主菜单
this.setVisible(false);同时把登录界面隐藏
2.主界面:
该界面是一个枢纽用于调用各个功能模块:
例如打开借书功能模块时:
private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: new bookLend().setVisible(true); this.setVisible(false); }
3.读者信息添加模块:
如何获取下拉框中的值: 利用该句 String code=(String) jComboBox1.getSelectedItem();
如何获取单选按钮中的值:声明一个局部String 变量,在事件处理当中进行赋相同的值,例如对性别的输入:
private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: sex="男"; } private void jRadioButton2ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: sex="女"; }
4.相应的读者信息删除:
如何读取数据库中的值来显示在单选按钮中:
例如显示男女:
if(sex1.equals("男")){ jRadioButton1.setSelected(true); }else{ jRadioButton2.setSelected(true); }
如何把数据库的数据显示在对应的表格内:
例如:
class SqlDemo2 extends JFrame{ SqlDemo2(){ try{ String[] colHeads={ "name ", "sex ", "age"}; Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver "); String url= "jdbc:odbc:pubs "; Connection con=DriverManager. getConnection_r(url, "sa ", " "); Statement stmt=con.createStatement(); ResultSet rs; rs=stmt.executeQuery( "SELECT count(*) as au_count from authors "); rs.next(); int iCount=rs. getInt_r( "au_count "); Object[][] data=new Object[iCount][]; int i=0; rs=stmt.executeQuery( "SELECT * from authors "); while(rs.next()){ data[i]=new Object[3]; data[i][0]=rs. getString_r( "au_fname "); data[i][1]=rs. getString_r( "sex "); data[i][2]=rs. getString_r( "age"); i++; } JTable table=new JTable(data,colHeads); JScrollPane jsp=new JScrollPane(table); this. getContentPane_r().add(jsp); this.setDefaultCloseOperation(EXIT_ON_CLOSE); } catch(Exception e){ System.out.println(e); } }
如何单击表格中的数据对应的显示在相应的文本框中:
private void jScrollPane2MouseMoved(java.awt.event.MouseEvent evt) { // TODO add your handling code here: row = jTable1.getSelectedRow(); //获取单元格内的内容 name1= jTable1.getValueAt(row,0).toString().trim(); sex1= jTable1.getValueAt(row,1).toString().trim(); age1 = jTable1.getValueAt(row,2).toString().trim(); career1 = jTable1.getValueAt(row,3).toString().trim(); card1 = jTable1.getValueAt(row,4).toString().trim(); cardnum1 = jTable1.getValueAt(row,5).toString().trim(); maxnum1 = jTable1.getValueAt(row,6).toString().trim(); keepmoney1 = jTable1.getValueAt(row,7).toString().trim(); tel1 = jTable1.getValueAt(row,8).toString().trim(); readernum1 = jTable1.getValueAt(row,9).toString().trim(); jTextField1.setText(name1); jTextField2.setText(age1); jTextField3.setText(card1); jTextField6.setText(career1); jTextField7.setText(cardnum1); jTextField5.setText(keepmoney1); jTextField8.setText(maxnum1); jTextField9.setText(tel1); jTextField10.setText(readernum1); if(sex1.equals("男")){ jRadioButton1.setSelected(true); }else{ jRadioButton2.setSelected(true); } }
进行完删除修改操作后要进行及时更新表格中的数据:
我的处理方法是在点击按钮之后再重新加载一遍数据库中的数据
5.借书管理和还书管理就没有那么多问题了,处理好时间问题,以及对应的是否欠款,这都是小小的数学算法问题。
6.对应的图书查询的部分代码:
try { Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/library?user=root&password=wafe5217"); DatabaseMetaData metadata=conn.getMetaData(); ResultSet rsl=metadata.getColumns(null, null,"books",null); while(rsl.next()){ m++; } Statement sql=conn.createStatement(); ResultSet rs=sql.executeQuery(" select * from books where bookname='"+name+"' and bookwrite='"+write+"'and bookbress='"+press+"'"); while(rs.next()){ for(int k=1;k<=m;k++){ // System.out.print(" "+rs.getString(k)); qwe+=rs.getString(k); qwe+=" "; } jTextField1.setText(qwe); System.out.println(""); }
7.图书添加书籍一览表等问题都不大。
8.更改口令 注意首先要进行查询数据库相应的用户信息,确认后方可更改口令。
相关文章推荐
- 图书管理系统【JavaWeb:部署开发环境、解决分类、图书、前台页面模块】
- 图书管理系统【JavaWeb:部署开发环境、解决分类、图书、前台页面模块】
- 合作开发收费系统——临时表解决用户重复登录问题
- [原]用Eclipse开发Android应用,用svn管理源码时遇到的问题及解决方法
- 【Cocos2d游戏开发之十】添加粒子特效并解决粒子系统特效与Layer之间的坐标问题;
- 九度奥运排序问题,本周博客系统开发遇到一些问题的解决
- 基于框架的图书管理系统开发的质量属性
- 【Cocos2d游戏开发之七】在cocos2d中添加系统组件,并解决View设置透明会影响View中的其他组件的问题!
- 开发一套系统的目的不是要来『让程式设计师写程式』,开发一套系统的目的是要来『解决一个问题』(转)
- ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
- 【Android】【FAQ】解决windows7 64bit系统下部署android开发环境使用Android SDK Manager的failed to fetch问题
- ssh之雇员管理系统(6)-解决中文乱码问题
- 【iOS-Cocos2d游戏开发之十】添加粒子系统特效并解决粒子特效与Layer之间的坐标问题;
- 解决MAC系统在做微信开发时候tomcat无法使用80端口问题
- [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)
- ios开发的系统兼容性问题解决
- 图书管理系统&nbsp;出现的问题
- 【iOS-Cocos2d游戏开发之七】添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题! 推荐
- ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
- javaweb开发之---在线图书管理系统