java图书系统管理

* 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值