Home
>
鹤岗文档同步管理
>
鹤岗java 开源 文档管理系统
鹤岗java 开源 文档管理系统

time:2020-08-29 10:51:05

author:重庆佰鼎科技有限公司

【Font size: big medium smail

本文由重庆佰鼎科技有限公司提供,重点介绍了java 开源 文档管理系统相关内容。重庆佰鼎科技有限公司专业提供文档同步管理,建筑文档管理,文档库管理软件等多项产品服务。公司秉承信誉至上、至诚至信、以信为本,力求服务好每一个客户。

java 开源 文档管理系统运行效果:注册登陆界面

注册存在的账户时

登陆之后主界面如下

点击图书管理-图书更新界面如下

图书列表

项目说明: 由于平时工作比较忙,也没时间写,可是我在公众号后台看见好多小伙伴讨论,我就抽时间写个当作参考。本系统界面我个人就从简设计了,本来打算使用windowbuilder插件设计的,可想到使用windowbuilder插件之后导致代码冗余,会影响到代码可读性,可能对小白不友好。虽然界面设计简单,但是功能上我会尽量想着写全,当然对于页面你可以增加自己的设计,比如增加一个背景图片等,网上都有指导,对于界面美观度从简了。

关键代码:用户登陆package bookmanage.dao;

import java.sql.Connection;

import java.sql.PreparedStatement;java 开源 文档管理系统

import java.sql.ResultSet;

import java.sql.SQLException;

import bookmanage.model.User;

import bookmanage.utils.DbUtil;

/**

* @Description 连接数据库工具类

* @author com.javayihao.top

*/

public class UserDao {

/**

* 根据用户账号查询用户

*

* @param accout

* 入参:用户账号

* @return 查找的用户

*/

public User getUserByAccout(String accout) {

Connection connection = DbUtil.getConnection();

String sql = "select accout,pass from t_user where accout=?";

try {

PreparedStatement ps = connection.prepareStatement(sql);

ps.setString(1, accout);

ResultSet rs = ps.executeQuery();

if (rs.next()) {// 存在用户,封装用户返回

User user = new User(rs.getString("accout"), rs.getString("pass"));

DbUtil.close(connection, ps);// 关闭连接

return user;

}

} catch (SQLException e) {

e.printStackTrace();

}

return null;

}

public boolean insertUser(User user) {

Connection connection = DbUtil.getConnection();// 获得数据库连接对象

String sql = "insert into t_user(accout,pass)values(?,?)";

try {

PreparedStatement ps = connection.prepareStatement(sql);

ps.setString(1, user.getAccout());

ps.setString(2, user.getPass());

if (!ps.execute()) {// 成功

DbUtil.close(connection, ps);// 关闭连接

return true;

}

} catch (SQLException e) {

e.printStackTrace();

}

return false;// 失败

}

}图书更新package bookmanage.view;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

import bookmanage.dao.BookDao;

import bookmanage.model.Book;

/**

* @Description 用于图书增删改查面板

* @author com.javayihao.top

*/

public class CrudBookPanel extends JPanel implements ActionListener {

// 定义首页按钮、图书列表按钮、 其他功能按钮,增加图书、删除图书、修改图书、查询图书

private JButton addBtn, deleteBtn, updateBtn, findBtn;

// 定义标签 底部信息标签、 图书编号、 图书名称、 图书数量、 图书价格

private JLabel idLabel, nameLabel, numLabel, priceLabel;

// 定义图书编号、 名称、 数量、 价格文本框

private JTextField idJTextField, nameJTextField, numJTextField, priceJTextField;

// 定义文本对象

private String bookIdText;

private String bookNameText;

private String bookNumText;

private String bookPriceText;

// 图书数量和价格

private Integer numBook;

private Float priceBook;

// 定义对象BookDao

private BookDao bookDao;

public CrudBookPanel() {

bookDao = new BookDao();//实例化图书操作对象

// 实例化增删改查按钮

addBtn = new JButton("增加图书");

addBtn.addActionListener(this);// 设置图书增加按钮监听

addBtn.setActionCommand("addbook");

deleteBtn = new JButton("删除图书");

deleteBtn.addActionListener(this);// 设置图书删除按钮监听

deleteBtn.setActionCommand("deletebook");

updateBtn = new JButton("修改图书");

updateBtn.addActionListener(this);// 设置图书修改按钮监听

updateBtn.setActionCommand("updatebook");

findBtn = new JButton("查询图书");

findBtn.addActionListener(this);// 设置图书查询按钮监听

findBtn.setActionCommand("findbook");

// 实例化图书编号 名称 数量 价格标签

idLabel = new JLabel("图书编号");

nameLabel = new JLabel("图书名称");

priceLabel = new JLabel("图书价格");

numLabel = new JLabel("图书数量");

// 实例化文本框

idJTextField = new JTextField(12);

nameJTextField = new JTextField(12);

numJTextField = new JTextField(12);

priceJTextField = new JTextField(12);

this.setLayout(new GridLayout(6, 2, 2, 2));

// 给增删改查面板添加图书编号 名称 数量 价格标签以及文本框

this.add(idLabel);

this.add(idJTextField);

this.add(nameLabel);

this.add(nameJTextField);

this.add(priceLabel);

this.add(priceJTextField);

this.add(numLabel);

this.add(numJTextField);

// 给增删改查面板添加图书编号 名称 数量 价格按钮

this.add(addBtn);

this.add(deleteBtn);

this.add(updateBtn);

this.add(findBtn);

}

@Override

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand().equals("addbook")) {// 添加图书

addbook();

} else if (e.getActionCommand().equals("deletebook")) {// 删除图书

deleteBook();

} else if (e.getActionCommand().equals("updatebook")) {// 修改图书

updateBook();java 开源 文档管理系统

} else if (e.getActionCommand().equals("findbook")) {// 查询图书

findBook();

}

}

/**

* 查询图书

*/

private void findBook() {

bookIdText = idJTextField.getText().trim().toString();

Book book = bookDao.getBookById(bookIdText);

if (bookIdText.equals("")) {

JOptionPane.showMessageDialog(this, "图书编号不能为空");

} else if (book != null) {// 当前输入的图书编号存在

try {

nameJTextField.setText(book.getName());// 填充图书名称文本框

numJTextField.setText(book.getNum() + "");// 将数字类型转成字符串并填充文本框

priceJTextField.setText(book.getPrice() + "");// 将数字类型转成字符串并填充文本框

} catch (Exception e) {

JOptionPane.showMessageDialog(this, "图书查询异常 请联系管理员");

}

} else {

JOptionPane.showMessageDialog(this, "图书不存在");

}

}

/**

* 修改图书

*/

private void updateBook() {

bookIdText = idJTextField.getText().trim().toString();

bookNameText = nameJTextField.getText().trim().toString();

bookNumText = numJTextField.getText().trim().toString();

bookPriceText = priceJTextField.getText().trim().toString();

if (bookIdText.equals("")) {

JOptionPane.showMessageDialog(this, "图书编号不能为空");

} else if (bookNameText.equals("")) {

JOptionPane.showMessageDialog(this, "图书名称不能为空");

} else if (bookNumText.equals("")) {

JOptionPane.showMessageDialog(this, "图书数量不能为空");

} else if (bookPriceText.equals("")) {

JOptionPane.showMessageDialog(this, "图书价格不能为空");

} else {

// 将图书数量和图书价格转成对应的数字类型

if (bookDao.getBookById(bookIdText) == null) {// 图书不存在

JOptionPane.showMessageDialog(this, "输入正确的图书编号");

} else {

try {

numBook = Integer.parseInt(bookNumText);

priceBook = Float.parseFloat(bookPriceText);

bookDao.updateBook(new Book(bookIdText, bookNameText, numBook, priceBook));

JOptionPane.showMessageDialog(this, "图书修改成功");

} catch (Exception e) {

JOptionPane.showMessageDialog(this, "输入正确的图书数量和价格");

e.printStackTrace();

}

}

}

}

/**

* 删除图书

*/

private void deleteBook() {

bookIdText = idJTextField.getText().trim().toString();

if (bookIdText.equals("")) {

JOptionPane.showMessageDialog(this, "图书编号不能为空");

} else if (bookDao.getBookById(bookIdText) != null) {// 当前输入的图书编号是否存在

try {

bookDao.deleteBootByid(bookIdText);

JOptionPane.showMessageDialog(this, "图书删除成功");

} catch (Exception e) {

JOptionPane.showMessageDialog(this, "图书删除异常 请联系管理员");

}

} else {

JOptionPane.showMessageDialog(this, "图书不存在");

}

}

/**

* 增加图书

*/

private void addbook() {

bookIdText = idJTextField.getText().trim().toString();

bookNameText = nameJTextField.getText().trim().toString();

bookNumText = numJTextField.getText().trim().toString();

bookPriceText = priceJTextField.getText().trim().toString();

if (bookIdText.equals("")) {

JOptionPane.showMessageDialog(this, "图书编号不能为空");

} else if (bookNameText.equals("")) {

JOptionPane.showMessageDialog(this, "图书名称不能为空");

} else if (bookNumText.equals("")) {

JOptionPane.showMessageDialog(this, "图书数量不能为空");

} else if (bookPriceText.equals("")) {

JOptionPane.showMessageDialog(this, "图书价格不能为空");

} else {

// 将图书数量和图书价格转成对应的数字类型

if (bookDao.getBookById(bookIdText) != null) {// 编号重复

JOptionPane.showMessageDialog(this, "图书编号重复");

} else {

try {

numBook = Integer.parseInt(bookNumText);

priceBook = Float.parseFloat(bookPriceText);

bookDao.insertBoot(new Book(bookIdText, bookNameText, numBook, priceBook));

JOptionPane.showMessageDialog(this, "图书增加成功");

} catch (Exception e) {

JOptionPane.showMessageDialog(this, "输入正确的图书数量和价格");

e.printStackTrace();

}

}

}

}

}图书列表package bookmanage.view;

import java.awt.BorderLayout;

import java.util.ArrayList;

import java.util.Vector;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import bookmanage.dao.BookDao;

import bookmanage.model.Book;

/**

* 自定义图书列表面板

* @author com.javayihao.top

*/

public class ListPanel extends JPanel {

// 从数据库中取出信息

// rowData用来存放行数据

// columnNames存放列名

Vector rowData, columnNames;

JTable jt = null;

JScrollPane jsp = null;

// 构造函数

public ListPanel() {

ArrayList books = new BookDao().getBookList();

columnNames = new Vector();

// 设置列名

columnNames.add("图书编号");

columnNames.add("图书名称");

columnNames.add("图书价格");

columnNames.add("图书数量");

rowData = new Vector();

for (int i = 0; i < books.size(); i++) {

//实例化每一行数据

Vector hang = new Vector();

hang.add(books.get(i).getId());

hang.add(books.get(i).getName());

hang.add(books.get(i).getPrice());

hang.add(books.get(i).getNum());

// 加入到rowData

rowData.add(hang);

}

// 初始化Jtable

jt = new JTable(rowData, columnNames);

// 初始化 jsp

jsp = new JScrollPane(jt);

this.add(jsp);

}

}数据库/*

Navicat MySQL Data Transfer

Source Server : localhost

Source Server Version : 50527

Source Host : localhost:3306

Source Database : db_book

Target Server Type : MYSQL

Target Server Version : 50527

File Encoding : 65001

Date: 2019-12-23 13:01:43

*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- Table structure for t_book

-- ----------------------------

DROP TABLE IF EXISTS `t_book`;

CREATE TABLE `t_book` (

`id` varchar(20) NOT NULL,

`name` varchar(255) NOT NULL,

`num` int(11) NOT NULL,

`price` float(10,2) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------

-- Records of t_book

-- ----------------------------

INSERT INTO `t_book` VALUES ('123456', 'java入门到精通', '100', '22.00');

INSERT INTO `t_book` VALUES ('123457', 'c++实战', '100', '50.00');

INSERT INTO `t_book` VALUES ('123458', '微服务电商实战', '22', '1.00');

-- ----------------------------

-- Table structure for t_user

-- ----------------------------

DROP TABLE IF EXISTS `t_user`;

CREATE TABLE `t_user` (

`accout` varchar(255) NOT NULL,

`pass` varchar(255) NOT NULL,

PRIMARY KEY (`accout`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------

-- Records of t_user

-- ----------------------------

INSERT INTO `t_user` VALUES ('123', '123');

INSERT INTO `t_user` VALUES ('123456', '123456');

INSERT INTO `t_user` VALUES ('1234567', '123456');

INSERT INTO `t_user` VALUES ('admin', 'admin');

INSERT INTO `t_user` VALUES ('dsfasdfa', 'afasdf');

INSERT INTO `t_user` VALUES ('fdsaf', 'adfas');源码获取:本来打算放在github上的,考虑到许多小伙伴不会用github,就放在我个人公众号,关注公众号 java一号 回复 “图书” 即可

如何运行:1. 先说下运行环境吧,java+eclipse+mysql,所以首先java环境得有,本地安装了mysql数据库,关于数据库图形化界面工具我用得是navicat;

2. 创建数据库db_book,在获取代码文件中有个db_book.sql文件,记事本打开复制到刚才创建得db_book数据库直接查询运行即可

3. 打开eclipse

点击运行

友情提示项目主要是用来练习java的面向对象思想,至于java中的swing编程知识,也就是界面编程建议不要花过多时间美化设计,完全没有必要,市场上很少会使用java Swing去编cs软件。

有问题可以联系 公众号 java一号

Reprint please indicate:http://hvzg.cnsoftweb.com/wdgl-4955.html