* 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
一般对于整个窗口的属性的一些设置
这里比较复杂一些,需要先建立一个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