\消息\return; }
if(jtxtArray[0].getText().trim().equals(\若\用户IP\文本框输入为空,提示 JOptionPane.showMessageDialog(this,\用户IP不能为空!!!\信息\JOptionPane.INFORMATION_MESSAGE); return; }
if(jtxtArray[1].getText().trim().equals(\若\端口号\文本框输入为空,提示 JOptionPane.showMessageDialog(this,\用户端口号不能为空!!!\\信息\return; }
//查询学号文本中所输学号是否存在于STUDENT表中 sql=\+Integer.parseInt(jtxtArray[2].getText().trim()); db=new DataBase(); db.selectDb(sql); try{
if(!(db.rs.next())){//若学号错误,输出提示对话框
JOptionPane.showMessageDialog(this,\输入了错误的学号!!\\消息\}
else{//得到输入学号的学生的姓名和班级 String stuNO=db.rs.getString(1).trim(), password=db.rs.getString(2).trim();
if(jtxtArray[2].getText().trim().equals(stuNO)&&
String.valueOf(jpassword.getPassword()).equals(password)){//登录成功 jlArray[4].setText(\恭喜您,登录成功!!!\new StudentSystem(); this.dispose(); }
else{//登录失败
jlArray[4].setText(\对不起,登录失败!!!\} } }
catch(Exception ex) { ex.printStackTrace();} db.dbClose(); //关闭数据库链接 } }
public static void main(String[]args) {
new Login();
}
}登录失败:
登录成功:
学生端登录成功 2, 数据库操作类框架
3, public class DataBase 4, {
5, Connection con=null;//声明Connection引用 6, Statement stat; 7, ResultSet rs; 8, int count;
9, public static String message; //声明一个静态成员变量 10, public static Login log; 11, public DataBase(){
12, try{//加载MySQL的驱动类,并创建数据库连接 13, Class.forName(\);
14, //con=java.sql.DriverManager.getConnection(\localhost:3306/test\
15, con=DriverManager.getConnection(\+message+\
/test?useUnicode=true&characterEncoding=GBK\,\,\ghai\);
16, stat=con.createStatement();//创建Statement对象 17, }
18, catch(Exception e){//如果从Login类传的参数不对,则提示出错 19, JOptionPane.showMessageDialog(log,\用户IP或端口号错误!!!
\,
20, \信息\,JOptionPane.INFORMATION_MESSAGE); 21, } 22, }
23, public void selectDb(String sql){//声明select方法 24, try{
25, //sql = new String(sql.getBytes(),\ 26, rs=stat.executeQuery(sql); 27, }
28, catch(Exception ie){ie.printStackTrace();} 29, }
30, public int updateDb(String sql){//声明update方法 31, try{
32, sql = new String(sql);//转码 33, count=stat.executeUpdate(sql); 34, }
35, catch(Exception ie){ie.printStackTrace();} 36, return count; 37, }
38, public void dbClose(){//声明close方法 39, try{con.close();}
40, catch(Exception e){e.printStackTrace();} 41, } 42, }
这段代码主要实现了加载MYSQL的JDBC驱动。并且创建了数据库连接和STATEMENT对象
3,管理端界面的实现模块
管理端界面的实现,窗体左边是一个树状列表控件,右边是一个卡片布局的面板,实现代码如下:
package wyf.hxl; import java.awt.*;
import java.awt.event.*; import javax.swing.event.*; import javax.swing.*; import javax.swing.tree.*; import java.io.*;
public class Root extends JFrame {
//创建节点数组
DefaultMutableTreeNode[] dmtn=
{new DefaultMutableTreeNode(new NodeValue(\图书馆管理系统\new DefaultMutableTreeNode(new NodeValue(\学生用户管理\new DefaultMutableTreeNode(new NodeValue(\图书管理\new DefaultMutableTreeNode(new NodeValue(\查询图书\new DefaultMutableTreeNode(new NodeValue(\借阅预约图书\new DefaultMutableTreeNode(new NodeValue(\归还挂失图书\new DefaultMutableTreeNode(new NodeValue(\交纳罚款\new DefaultMutableTreeNode(new NodeValue(\管理员管理\new DefaultMutableTreeNode(new NodeValue(\退出\
DefaultTreeModel dtm=new DefaultTreeModel(dmtn[0]);//创建树模型,指定根节点为\学生管理系统\
JTree jt=new JTree(dtm);//创建包含dtm树模型的JTree对象 JScrollPane jsp=new JScrollPane(jt);//为JTree创建滚动窗体
private JSplitPane jsplr=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true);//创建分割窗体对象
private JPanel jp=new JPanel();//创建JPanel对象 Image image=new ImageIcon(\ImageIcon ii = new ImageIcon(image); private JLabel jlRoot=new JLabel(ii); private Manager mg;//登陆管理员名 String mgNo;//管理员ID
CardLayout cl=new CardLayout();//获取卡片布局管理器引用 public Root(String mgNo) {
this.mgNo=mgNo;//获得管理员ID
mg=new Manager(mgNo);//创建管理员管理面板 this.setManager();//设置管理员权限 this.initJp();//初始化卡片布局面板
this.addTreeListener();//为树节点注册事件监听器 for(int i=1;i<9;i++)
{//向根节点添加子节点
dtm.insertNodeInto(dmtn[i],dmtn[0],i-1); }
jt.setEditable(false);//设置该树中节点是可编辑的 this.add(jsplr);//将包含树的滚动窗口添加进窗体
jsplr.setLeftComponent(jt);//将包含树的滚动窗口添加进左边的子窗口 jp.setBounds(200,50,600,500);//为jp设置大小位置并添加进右边的子窗口 jsplr.setRightComponent(jp);
jsplr.setDividerLocation(200);//设置分隔条的初始位置 jsplr.setDividerSize(4);//设置分隔条的宽度
jlRoot.setFont(new Font(\jlRoot.setHorizontalAlignment(JLabel.CENTER); jlRoot.setVerticalAlignment(JLabel.CENTER);
//设置窗体的关闭动作,标题,大小,位置及可见性 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Image image=new ImageIcon(\this.setIconImage(image); this.setTitle(\图书管理系统\
//设置窗体首次出现的大小和位置--自动居中
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int centerX=screenSize.width/2; int centerY=screenSize.height/2; int w=500;//本窗体宽度 int h=400;//本窗体高度
this.setBounds(centerX-w/2,centerY-h/2-100,w,h);//设置窗体出现在屏幕中央 this.setExtendedState(JFrame.MAXIMIZED_BOTH);//窗体全屏 this.setVisible(true);//设置窗体可见
jt.setShowsRootHandles(true);//设置显示根节点的控制图标 }
public void setManager() {
String sql=\DataBase db=new DataBase();//创建数据库类对象 db.selectDb(sql);//执行查询 try {
db.rs.next();//结果集游标下移
String str=db.rs.getString(1).trim();//得到管理员权限 if(str.equals(\