Online Document Management System In Java | Java Project

by | Nov 19, 2022 | Coding, Java

Introduction of the Project

Let us write the source code for Online Document Management System In Java that creates a management system to store documents easily. We are going to apply an SQL database to provide a way to save information about available documents, the date & time the document was uploaded, and the name of the document.

Objectives

  • To apply the Swing module to create an interactive interface for the user to manage the documentation system.
  • To implement a table with file information like its name, the date and time the document was uploaded & the document itself.

Requirements

Source Code

package com.company;

public class Main {

public static void main(String[] args) {

new Docs();

}

}

package com.company;

import java.nio.file.Files;

import javax.swing.*;

import javax.swing.table.DefaultTableModel;

import java.awt.*

import java.io.File;

import java.io.FileReader;

import java.sql.*;

import java.*;

public class Docs {

private JTextField nameData;

private JTable table1;

private JButton ADDRECORDButton;

private JButton UPDATERECORDButton;

private JPanel docsPanel;

private JPanel datePanel;

private JComboBox type;

private JButton SELECTFILEButton;

private JTextField path;

private JButton BACKButton;

private JTextArea textArea1;

private JButton RESETButton;

JFrame docsF = new JFrame();

public Docs(){




docsF.setContentPane(docsPanel);

docsF.pack();

docsF.setVisible(true);

tableData();

ADDRECORDButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

if(nameData.getText().equals("")){

JOptionPane.showMessageDialog(null,"Please Fill All Fields to add Record.");

}else{

String sql = "insert into docs"+"(DOC_NAME,DATE,DATA)"+"values (?,?,?)";

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");

LocalDateTime now = LocalDateTime.now();

try {

Class.forName("com.mysql.cj.jdbc.Driver");

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/intern","root","root");

PreparedStatement statement = connection.prepareStatement(sql);

statement.setString(1,nameData.getText());

statement.setString(2, dtf.format(now));

File file = new File(path.getText());

FileReader reader = new FileReader(file);

statement.setCharacterStream(3,reader,file.length());

statement.executeUpdate();

JOptionPane.showMessageDialog(null,"DETAILS ADDED SUCCESSFULLY");

nameData.setText("");

path.setText("");

}catch (Exception ex){

JOptionPane.showMessageDialog(null,ex.getMessage());

}

tableData();

}

}

});

UPDATERECORDButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

try{

File file = new File(path.getText());

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");

LocalDateTime now = LocalDateTime.now();

String sql = "UPDATE docs " +

"SET DATA = '"+ Files.readString(file.toPath())+"',DATE= '"+dtf.format(now)+"'"+

" WHERE DOC_NAME= '"+nameData.getText()+"'";

Class.forName("com.mysql.cj.jdbc.Driver");

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/intern","root","root");

PreparedStatement statement = connection.prepareStatement(sql);

statement.executeUpdate();

JOptionPane.showMessageDialog(null,"Updated successfully");

}catch (Exception e2){

System.out.println(e2);

}

tableData();

}

});

SELECTFILEButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

JFileChooser fileChooser = new JFileChooser();

int res = fileChooser.showOpenDialog(null);

if(res == JFileChooser.APPROVE_OPTION){

path.setText(fileChooser.getSelectedFile().getAbsolutePath());

}else {

JOptionPane.showMessageDialog(null,"PLEASE SELECT FILE");

}

}

});

table1.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

DefaultTableModel dm = (DefaultTableModel)table1.getModel();

int rowIndex = table1.getSelectedRow();

nameData.setText(dm.getValueAt(rowIndex,0).toString());

textArea1.setText(dm.getValueAt(rowIndex,2).toString());

}

});

RESETButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

docsF.dispose();

new Docs();

}

});

}

public void tableData() {

try{

String a= "Select* from docs";

Class.forName("com.mysql.cj.jdbc.Driver");

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/intern","root","root");

Statement statement = connection.createStatement();

ResultSet rs = statement.executeQuery(a);

table1.setModel(buildTableModel(rs));

}catch (Exception ex1){

JOptionPane.showMessageDialog(null,ex1.getMessage());

}

}

public static DefaultTableModel buildTableModel(ResultSet rs)

throws SQLException {

ResultSetMetaData metaData = rs.getMetaData();

// names of columns

Vector<String> columnNames = new Vector<String>();

int columnCount = metaData.getColumnCount();

for (int column = 1; column <= columnCount; column++) {

columnNames.add(metaData.getColumnName(column));

}

// data of the table

Vector<Vector<Object>> data = new Vector<Vector<Object>>();

while (rs.next()) {

Vector<Object> vector = new Vector<Object>();

for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {

vector.add(rs.getObject(columnIndex));

}

data.add(vector);

}

return new DefaultTableModel(data, columnNames);

}

}

 

Explanation of the Code

Let’s look at the GUI first:

1. The main screen consists of four buttons: add a record, update a record, reset screen & select file.
2. There is a text area where stored information is visible.
3. Finally, a Jtable() displays the information stored in the database.

Retrieval from SQL Database, we will apply:

1. The very first thing to do is establish a connection to the database using a connection object.
2. Now, Paste a query containing table data into a ResultSet().
3. Then, sends the data to Jtable.
4. Adding & Updating the data requires the injection of a query that manipulates the data & finally, using the method tableData() to display data into Jtable().

5. JfileChooser() is utilized to pop the file selection window & then stored locally then sent to the database.

Output

Main Interface

Online Document Management System In Java | Java Project

Conclusion

We have successfully implemented the Swing module and SQL database to create a coding project on Online Document Management System In Java that helps you to store your important documents. This is a very efficient program and an easy way to manage your uploaded documents and get access to it with a very easy interface.

More Java Projects>>>>

You May Also Like To Create…

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *