java图书系统管理

来源:互联网 发布:怎样取个淘宝店名 编辑:程序博客网 时间:2024/06/13 18:14

* 1. 整个项目介绍*
主要是运用基础的java的crud知识,对于图书进行管理,内容包括用户登陆,管理界面的绘制,逻辑数据处理。

整个图书的部分包括:
图书类别添加
图书类别管理(删改查)
图书添加
图书管理(删改查)

用到的技术:java+mysql+windowbuilder

工具管理:
windowbuiler 下载:http://www.eclipse.org/windowbuilder/download.php (这里需要根据自己的实际情况选择合适的版本)
小图标下载网站 http://www.easyicon.net/

* 2. 整个项目构建*
项目构建

* 3. DbUtil数据库工具类*
数据库的连接

package com.java1234.util;import java.sql.Connection;import java.sql.DriverManager;/** * 数据库工具类 * @author Administrator * */public class DbUtil {    private String dbUrl="jdbc:mysql://localhost:3306/db_book"; // 数据库连接地址    private String dbUserName="root"; // 用户名    private String dbPassword="123456"; // 密码    private String jdbcName="com.mysql.jdbc.Driver"; // 驱动名称    /**     * 获取数据库连接     * @return     * @throws Exception     */    public Connection getCon()throws Exception{        Class.forName(jdbcName);        Connection con=DriverManager.getConnection(dbUrl, dbUserName, dbPassword);        return con;    }    /**     * 关闭数据库连接     * @param con     * @throws Exception     */    public void closeCon(Connection con)throws Exception{        if(con!=null){            con.close();        }    }    public static void main(String[] args) {        DbUtil dbUtil=new DbUtil();        try {            dbUtil.getCon();            System.out.println("数据库连接成功!");        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();            System.out.println("数据库连接失败");        }    }}

* 4. 判断字符串是否为空*

/** * 字符串工具类 * @author Administrator * */public class StringUtil {    /**     * 判断是否是空     * @param str     * @return     */    public static boolean isEmpty(String str){        if(str==null || "".equals(str.trim())){            return true;        }else{            return false;        }    }    /**     * 判断是否不是空     * @param str     * @return     */    public static boolean isNotEmpty(String str){        if(str!=null && !"".equals(str.trim())){            return true;        }else{            return false;        }    }}

* 5. 用户登录界面*
这里需要一个user的model.
主要的逻辑部分

//判断登录        try {            Connection conn=DBUtil.getCon();             User currentUser=userdao.login(conn, user);            if(currentUser!=null){                              /*JOptionPane.showMessageDialog(null, "登录成功");                return ;*/                dispose();                new MainFrm().setVisible(true);            }else{                JOptionPane.showMessageDialog(null, "用户名或者密码错误!");                return ;            }

* 6. 图书管理主界面*
这里需要注意的有以下几个
新建一个JFrame,如果要是建立一个在窗体内部显示的窗口,那么就是需要新建 JInternalFrame
新建一个JFrame

一般对于整个窗口的属性的一些设置
对于窗口的属性的设置

这里比较复杂一些,需要先建立一个scrollPane,然后再将table放在显示窗口部分,需要做一个新的panel的方式如下图所示
表格的建立

对于表格添加监听事件
对于表格添加监听事件

* 7. 图书类别管理*
这里需要注意的是,图书类别和图书有一个外键关联,当图书类别下面有图书的时候,就不允许删除,所以这里需要做一个判断

int n=JOptionPane.showConfirmDialog(null, "确定要删除该记录吗?");        if(n==0){            Connection conn=null;        try {            conn=DBUtil.getCon();            boolean flag=bookdao.existBookByBookTypeId(conn, id);            if(flag){                JOptionPane.showMessageDialog(null, "当前图书类别下有图书,不能删除此类别");                return;            }            int number=bkdao.deleteBookType(conn, id);            if(number==1){                JOptionPane.showMessageDialog(null, "删除功能");                resetValue();                fillTable(new BookType());            }else{                JOptionPane.showMessageDialog(null, "删除失败");            }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }finally {            try {                DBUtil.close(conn);            } catch (Exception e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }        }

8.改变默认字体

    //改变系统默认字体        Font font = new Font("Dialog", Font.PLAIN, 12);        java.util.Enumeration keys = UIManager.getDefaults().keys();        while (keys.hasMoreElements()) {            Object key = keys.nextElement();            Object value = UIManager.get(key);            if (value instanceof javax.swing.plaf.FontUIResource) {                UIManager.put(key, font);            }        }

9.其他需要注意的地方
主界面在调用的时候需要

//关于我们                AboutMe ab=new AboutMe();                ab.setVisible(true);                table.add(ab);

设置文本域边框

// 设置文本域边框        booktypedesc.setBorder(new LineBorder(new java.awt.Color(127,157,185), 1, false));

退出界面

//退出登录                int result=JOptionPane.showConfirmDialog(null, "是否退出系统");                if(result==0){                    dispose();                }

关于表格
需要注意的是vector在循环体的内部,而且需要注意字符串的拼接

具体的项目代码下载:
http://download.csdn.net/detail/hlfsunshine/9562274

0 0