Mysql学习基于Swing+jdbc+mysql的Java图书管理系统保姆级教程

Posted 毛_三月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql学习基于Swing+jdbc+mysql的Java图书管理系统保姆级教程相关的知识,希望对你有一定的参考价值。

代码加文字 10万 字左右 !!!
此图书馆里系统我花了大概一周的时间写出
本博客教程熬夜肝了大概三天三夜!!!
为了我的所有粉丝们都能从零基础上手,因此教程十分详细!
非常适合零基础新手小白。
而且我还配备了全部源码!
感谢一路上支持和不帮助我的人! 共勉~~~

零、项目效果预览及设计准备

项目效果预览

登录页面

图书管理系统主界面

关于我们

基本数据维护

图书类别添加

图书类别维护

图书添加

图书维护

安全退出

数据库架构设计

SQL源码

/*
SQLyog Ultimate v10.00 Beta1
mysql - 5.7.19 : Database - db_book
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`db_book` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `db_book`;

/*Table structure for table `t_book` */

DROP TABLE IF EXISTS `t_book`;

CREATE TABLE `t_book` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `bookName` VARCHAR(20) DEFAULT NULL,
  `author` VARCHAR(20) DEFAULT NULL,
  `sex` VARCHAR(10) DEFAULT NULL,
  `price` float DEFAULT NULL,
  `bookDesc` varchar(1000) DEFAULT NULL,
  `bookTypeId` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `FK_t_book` (`bookTypeId`),
  CONSTRAINT `FK_t_book` FOREIGN KEY (`bookTypeId`) REFERENCES `t_booktype` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;

/*Data for the table `t_book` */

insert  into `t_book`(`id`,`bookName`,`author`,`sex`,`price`,`bookDesc`,`bookTypeId`) values (1,'数据结构','王凯','男',80,'算法书籍',2),(2,'Java编程思想1','JJ1','女',111,'这个一本好书籍1',1),(3,'美女的生活1','呵呵2','女',121,'11112',2),(4,'java代码','风格','女',120,'是',1),(5,'Java','胡超','男',10,'好书',1),(6,'java编程思想','美女','女',100,'搜索',2),(7,'数据库','胡超','男',100,'好书',1),(8,'算法设计','普通人','男',60,'算法书',1),(9,'算法','许昌人','男',45,'废人的书',1),(10,'操作系统','超哥','男',60,'超级牛逼书',1),(11,'计算机网络','超超','男',80,'牛逼牛逼',1),(12,'计算机网络','毛毛','男',90,' 超哥厉害',2),(13,'python','凤凤','女',70,'2好书',2),(14,'算法之道','圆圆','女',9999,'ACM铜牌大佬编写!!!',17);

/*Table structure for table `t_booktype` */

DROP TABLE IF EXISTS `t_booktype`;

CREATE TABLE `t_booktype` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `bookTypeName` varchar(20) DEFAULT NULL,
  `bookTypeDesc` varchar(1000) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;

/*Data for the table `t_booktype` */

insert  into `t_booktype`(`id`,`bookTypeName`,`bookTypeDesc`) values (1,'计算机类2','计算机类书籍3'),(2,'计算机','操作系统'),(15,'计算机 ','数据结构'),(17,'算法类','算法很重要!!');

/*Table structure for table `t_user` */

DROP TABLE IF EXISTS `t_user`;

CREATE TABLE `t_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `userName` varchar(20) DEFAULT NULL,
  `password` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

/*Data for the table `t_user` */

insert  into `t_user`(`id`,`userName`,`password`) values (1,'huchao','10428376');

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

表 架构设计


项目目录

项目工具类代码配置

DbUtil配置

package com.java.util;

import java.sql.Connection;
import java.sql.DriverManager;

/*
 * 数据库工具类
 * @author Administrator
 * 自动导入类ctrl shift + o
 * 
 * */
public class DbUtil {
	
	private String dbUrl="jdbc:mysql://localhost:3306/db_book?useUnicode=true&characterEncoding=utf8&&useSSL=false&serverTimezone = Asia/Shanghai ";
	private String duUsername="root";		//用户
	private String dbPassword="10428376";  //密码
	private String jdbcName="com.mysql.jdbc.Driver";	//驱动名称
	
	/*
	 * 获取数据库连接
	 * @return
	 * @throws Exception
	 * */
	public Connection getCon() throws Exception {
		Class.forName(jdbcName);
		Connection con= DriverManager.getConnection(dbUrl, duUsername, 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: handle exception
			e.printStackTrace();
			System.out.println("数据库连接失败!");
		}
	}
}

StringUtil配置

package com.java.util;

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;
		}
	}
	
	
	
}

所需工具

swing插件之可视化开发工具windowbuilder
swing插件之可视化开发工具windowbuilder

Eclipse GUI插件WindowBuilder安装
Eclipse GUI插件WindowBuilder安装

Eclipse

JDK
jdk1.8.0_221

SQLyog

jar包

mysql-connector-java-5.1.7-bin.jar

ER图

一、登录功能实现

管理员登录功能实现

小图标下载网站推荐:http://www.easyicon.net/
Java 开发统一环境搭建:http://www.java1234.com/a/kaiyuan/java/2013/0419/228.html

类的备注快捷方式
/** enter
Main 方法快捷方式
main alt+/
自动提示
alt+/
提示报错
ctrl+1
输出语句快捷方式
syso alt+/
弹出菜单快捷方式 alt+shift+s
自动引入包 ctrl+shift+o
代码整体往前:shift+tab
进入实现 按住 ctrl 鼠标移动上去,点击







//改变系统默认字体
		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);
			}
		}
btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				resetValueActionPerformed(arg0);
			}
		});

/**
	 * 重置是事件处理
	 * @param evt
	 */
	private void resetValueActionPerformed(ActionEvent evt) {
		this.userNameTxt.setText("");
		this.passwordTxt.setText("");
	}

btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				loginActionPerformed(arg0);
			}
		}
  
  
  /**
	 * 登录事件处理
	 * @param ev
	 */
	private void loginActionPerformed(ActionEvent ev) {
		String username = this.userNameTxt.getText();
		String password =new String(this.passwordTxt.getPassword());
		if (StringUtil.isEmpty(username)) {
			JOptionPane.showMessageDialog(null, "用户名不能为空!");
		}
		if (StringUtil.isnotEmpty(password)) {
			JOptionPane.showMessageDialog(null,"密码不能为空!");
		}
	}
 
 
 
 package com.java1234.util;

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;
		}
	}
	
	
	
}

数据库连接

//从父类生成构造方法
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	//使用字段生成构造方法
	public User(String username, String password) {
		super();
		this.username = username;
		this.password = password;
	}
LogOnFrm.java

/**
	 * 登录事件处理
	 * @param ev
	 */
	private void loginActionPerformed(ActionEvent ev) {
		String username = this.userNameTxt.getText();
		String password =new String(this.passwordTxt.getPassword());
		以上是关于Mysql学习基于Swing+jdbc+mysql的Java图书管理系统保姆级教程的主要内容,如果未能解决你的问题,请参考以下文章

Java swing项目-图书管理系统(swing+mysql+jdbc)

带有 MySQL 客户端-服务器 LAN 设置的 Java Swing JDBC

java学习路线

JDBC + Swing:无法获取表格内容

Java实验--基于Swing的简单的歌曲信息管理系统

我需要一个 tomcat 服务器来使 java jdbc swing 应用程序在局域网上运行吗