Professional Documents
Culture Documents
LIBRARY MANAGEMENT Documentation
LIBRARY MANAGEMENT Documentation
A
PROJECT REPORT
Submitted in partial fulfillment of the Requirements
For the award of Master of Computer Application Degree
Submitted by
Name of Candidate (Jyoti Ban) ( 0103CA173D22)
Name of Candidate (Jyoti Singh Parihar) (0103CA173D23)
Name of Candidate (Harsha Thakur) (0103CA173D19)
Name of Candidate (Mustafa Khan) (0103CA173D33.)
CERTIFICATE
This is to certify that the work embodied in this Minor project-I, “Library
Management” has been satisfactorily completed by
(Jyoti Ban) ( 0103CA173D22 )
(Jyoti Singh Parihar) (0103CA173D23)
(Harsha Thakur) (0103CA173D19)
It is a bonafide piece of work, carried out under our / my guidance in the Master
of Computer Application, Lakshmi Narain College of Technology, Bhopal for
the partial fulfillment of the Master of Computer Application degree during the
academic session January-June, 2018.
Guided By
Head of Department
Forwarded by
Director
Lakshmi Narain College of Technology (MCA), Bhopal
LAKSHMI NARAIN COLLEGE OF TECHNOLOGY (MCA),
BHOPAL
CERTIFICATE OF APPROVAL
DECLARATION (16)
We, <name of the students with enrollment no>, the student of Master of
Computer Application, Lakshmi Narain College of Technology , Bhopal hereby
declare that the work presented in this Minor Project – I is outcome of our own
work, is bonafide, correct to the best of our knowledge and this work has been
carried out taking care of Engineering Ethics. The work presented does not infringe
any patented work and has not been submitted to any University for the award of
any degree or any professional diploma.
Features
Maintaining the catalogue of the books and periodicals available in the library.
Keeping track of issue and return of books including the fine for the defaulters.
Enabling the users / librarian to search for the books based on author name,
title etc.
Notify the librarian about the user�s suggestions and requests for new books.
Reservation of books which are limited in number.
Presenting the up-to-date status to the librarian.
Project Implementation
This system was develped using :-
MySQL as the database.
.
Application
Can be widely used to automate College Libraries. With a little development this
system can be used for bigger libraries too.
1.2 Purpose/Objective of Project
The system excludes the use of paper work by managing
all the book information electronically.
Admin can keep updating the system by providing the
new books arrival in system and their availability thus
students need not to go to library for issuing purpose.
The system has books well organized and systematically
arranged in different categories in the system so that user
can easily search and find the book.
Thus, it saves human efforts and resources.
Issue Procedure:
While issuing the book to the students and/or teachers, first of
all one of the college staffs working as a librarian asked the
students to show the library card that has already been made
by the college for each and every students. If the student does
not have library card, then they never issue the book to that
particular one. The librarian takes the library card and hold it
until the students return the book. In the register, all the
information related to the students as well as the book such as
accession number, student's name and contact details, book
title, book author, issue date, return date etc. It is impossible to
reserve the book from home.
To keep record of the new book, the library staff needs to fill
a form named 'Add New Book' in which there are number of
headings to be filled up such as 'Name of Book', 'Date of
Delivery', 'Book Title', 'Author Name', 'Published Date',
'Published Year', 'Edition', 'Book Category', etc. They need to
keep a catalogue and a notice is stick on the library notice
board noticing that a particular book is available in the
library.
Fine System:
The librarian is working on keeping the record of penalty paid
by the student on not giving back the book on time. Librarian
finds out the issue date and return date of the book and if the
student fails to return that book within the return date of the
book, then he/she has to pay £1/day as a fine. The fine may get
high in the case when the book has been lost or damage by the
student.
Deletion Procedure:
The book record is deleted from the library register book
when the book has been lost or totally damaged by the user.
Rapid transaction
Cost reduction
Requirements/ Analysis
Design
Implementation
Coding
Testing
Waterfall Model
The waterfall model has been prepared on numerous phases particularly to
improve the system. By following this technique, the system will be divided into
several phases thus reducing out the whole process. For instance you are in the
Phase I, it would not go to the next phase i.e. Phase II until the Phase I has done
completely. In the same process, you will go to the next phase like as waterfall.
Once you go to the next phase, you cannot turn back.
Advantages
The Waterfall model is simple and easy to use.
Easy to manage because of the inflexibility of the model - each phase has a review
process.
All the phases are developed and completed sequentially i.e. one by one.
Disadvantages
Modifying scope at some point in the life cycle can destroy the system.
This model also used the features of the both prototyping and waterfall model
which makes it very efficient and effective software development model. This also
the main reason that software engineer uses this model to develop very complex
and sophisticated software.
Advantages
It minimizes risk because of high level of risk analysis in the different stages of the
development process.
Unlike other model, this model is quiet flexible which means that if we want add
some functionality at a later date then we can do so.
Disadvantages
It requires very highly skilled manpower to analyze and identify the risk.
This model is expensive than other models because of the expertise it requires to
develop and analyze the system.
Main success of the project is highly depends upon the analysis stage which
means beginning of the stage.
This model is not effective and efficient for the small projects.
Advantages
Early development of prototype gives an idea of how the final product looks like.
It also allows active participation between its user and producer of the product.
Disadvantages
It is vulnerable if there are lots of end users as well as it might take long time to
develop the product.
Structure and design of the system could go other way than that of the original
design.
Typically, online systems, web interfaces have a very high amount of interaction
with end users, are best suited for Prototype model. It might take a while for a
system to be built that allows ease of use and needs minimal training for the end
user.
Prototyping ensures that the end users constantly work with the system and
provide a feedback which is incorporated in the prototype to result in a useable
system. They are excellent for designing good human computer interface systems.
2.4 Rapid Application Development Model (RAD)
As its name implies, Rapid Application Development is one of the fastest ways of
developing software. It uses minimal planning for its prototype which makes it
easier to develop software much faster. Instead of wasting time for planning and
design, they simply merge planning with construction phase. It means that
planning and construction goes together which ultimately makes it more flexible
to changes of the requirement in the middle of the construction. We can call it as
an incremental process model that insistences a small development phase.
This approach is mostly used in such types of environment which needs fast
response. Similarly, when the system is needed than early set development time
then this approach is suitable to provide a fast response. It is specially used to
developed systems for share markets, IT (Information technology) companies and
so on.
Advantages
It reduces the time while developing the software.
Disadvantages
It depends upon the highly qualified team and developers to identify the
requirements.
It should be used if there is availability of the user involved during the entire life
cycle of the system development.
Scrum
Agile Modeling
Pragmatic Programming
Advantages
It is a rapid way of development of software so client satisfaction is high.
Client satisfaction is emphasize that means interaction with client is high so less
chance of product failure.
It is very flexible that even late changes in requirements are adopted without any
problems.
Disadvantages
If organization representative is not sure about the specific requirement for the
organization then whole software development process will be on jeopardy.
When developing a large product for large organization it will be very difficult to
achieve and measure the requirements needed for the development of
application.
It requires very highly experienced manpower which will often make this process
quite expensive.
It should be used if the system needs a good design and technical excellence.
Out of the above methodologies, I have chosen Rational Unified Process (RUP). In
my project, I have implemented Rational Unified Process as a methodology where
Joint Application Development is possible and inception, elaboration,
construction, and transition phases are overlapped so that feedback from the
client can be effectively implemented in my system.
It should be used if the system needs a good design and technical excellence.
JavaScript
JavaScript is a client side decoded scripting language developed by
Netscape to build interactive sites. It is basically used to do different
tasks like trigger a linked to a page to generate popup windows,
trigger a graphic images and text and so on. It is also used in
validation of the form and authentication of information provided in
the web pages by the end users.
jQuery
It is an open source JavaScript Library that fulfill the gap between
different tools used for the development of web. It helps to abridges
outcome management HTML file negotiating, animating and Ajax
interfaces for a web development. It is another way of writing
JavaScript.
Chapter 4. System Design
4.1 Introduction
This report will provide a detailed account of the processes our group used to
design and implement a database that can be used to manage a library system.
Each subsection of the report corresponds to an important feature of database
design.
4.2 ER DESIGN
It clear that the physical objects from the previous section – the customers,
employees, cards, media, and library branches – correspond to entities in the
Entity-Relationship model, and the operations to be done on those entities –
holds, checkouts, and so on – correspond to relationships. However, a good
design will minimize redundancy and attempt to store all the required
information in as small a space as possible. After some consideration, we have
decided on the following design is
4.3 Database Description (Normalized)
The next step was to create the physical database and input some
sample data. In order to turn the relational design into a database.
- initialization
- compilation
- jar
- execution
- debugging
- javadoc
- junit compilation
- junit execution
- junit debugging
- applet
- cleanup
-->
<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1"
xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3"
xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default"
name="Library_management-impl">
<target depends="test,jar,javadoc" description="Build and test whole project."
name="default"/>
<!--
======================
INITIALIZATION SECTION
======================
-->
<target name="-pre-init">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="-pre-init" name="-init-private">
<property file="nbproject/private/config.properties"/>
<property file="nbproject/private/configs/${config}.properties"/>
<property file="nbproject/private/private.properties"/>
</target>
<target depends="-pre-init,-init-private" name="-init-user">
<property file="${user.properties.file}"/>
<!-- The two properties below are usually overridden -->
<!-- by the active platform. Just a fallback. -->
<property name="default.javac.source" value="1.4"/>
<property name="default.javac.target" value="1.4"/>
</target>
<target depends="-pre-init,-init-private,-init-user" name="-init-project">
<property file="nbproject/configs/${config}.properties"/>
<property file="nbproject/project.properties"/>
</target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property"
name="-do-init">
<available file="${manifest.file}" property="manifest.available"/>
<condition property="manifest.available+main.class">
<and>
<isset property="manifest.available"/>
<isset property="main.class"/>
<not>
<equals arg1="${main.class}" arg2="" trim="true"/>
</not>
</and>
</condition>
<condition property="manifest.available+main.class+mkdist.available">
<and>
<istrue value="${manifest.available+main.class}"/>
<isset property="libs.CopyLibs.classpath"/>
</and>
</condition>
<condition property="have.tests">
<or>
<available file="${test.src.dir}"/>
</or>
</condition>
<condition property="have.sources">
<or>
<available file="${src.dir}"/>
</or>
</condition>
<condition property="netbeans.home+have.tests">
<and>
<isset property="netbeans.home"/>
<isset property="have.tests"/>
</and>
</condition>
<condition property="no.javadoc.preview">
<and>
<isset property="javadoc.preview"/>
<isfalse value="${javadoc.preview}"/>
</and>
</condition>
<property name="run.jvmargs" value=""/>
<property name="javac.compilerargs" value=""/>
<property name="work.dir" value="${basedir}"/>
<condition property="no.deps">
<and>
<istrue value="${no.dependencies}"/>
</and>
</condition>
<property name="javac.debug" value="true"/>
<property name="javadoc.preview" value="true"/>
<property name="application.args" value=""/>
<property name="source.encoding" value="${file.encoding}"/>
<condition property="javadoc.encoding.used" value="${javadoc.encoding}">
<and>
<isset property="javadoc.encoding"/>
<not>
<equals arg1="${javadoc.encoding}" arg2=""/>
</not>
</and>
</condition>
<property name="javadoc.encoding.used" value="${source.encoding}"/>
<property name="includes" value="**"/>
<property name="excludes" value=""/>
<property name="do.depend" value="false"/>
<condition property="do.depend.true">
<istrue value="${do.depend}"/>
</condition>
<condition else="" property="javac.compilerargs.jaxws" value="-Djava.endorsed.dirs='$
{jaxws.endorsed.dir}'">
<and>
<isset property="jaxws.endorsed.dir"/>
<available file="nbproject/jaxws-build.xml"/>
</and>
</condition>
</target>
<target name="-post-init">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
<fail unless="src.dir">Must set src.dir</fail>
<fail unless="test.src.dir">Must set test.src.dir</fail>
<fail unless="build.dir">Must set build.dir</fail>
<fail unless="dist.dir">Must set dist.dir</fail>
<fail unless="build.classes.dir">Must set build.classes.dir</fail>
<fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
<fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
<fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
<fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
<fail unless="dist.jar">Must set dist.jar</fail>
</target>
<target name="-init-macrodef-property">
<macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute name="name"/>
<attribute name="value"/>
<sequential>
<property name="@{name}" value="${@{value}}"/>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-javac">
<macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${src.dir}" name="srcdir"/>
<attribute default="${build.classes.dir}" name="destdir"/>
<attribute default="${javac.classpath}" name="classpath"/>
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="${javac.debug}" name="debug"/>
<attribute default="/does/not/exist" name="sourcepath"/>
<element name="customize" optional="true"/>
<sequential>
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}"
encoding="${source.encoding}" excludes="@{excludes}" includeantruntime="false"
includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}"
srcdir="@{srcdir}" target="${javac.target}">
<classpath>
<path path="@{classpath}"/>
</classpath>
<compilerarg line="${javac.compilerargs} ${javac.compilerargs.jaxws}"/>
<customize/>
</javac>
</sequential>
</macrodef>
<macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${src.dir}" name="srcdir"/>
<attribute default="${build.classes.dir}" name="destdir"/>
<attribute default="${javac.classpath}" name="classpath"/>
<sequential>
<depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}"
includes="${includes}" srcdir="@{srcdir}">
<classpath>
<path path="@{classpath}"/>
</classpath>
</depend>
</sequential>
</macrodef>
<macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${build.classes.dir}" name="destdir"/>
<sequential>
<fail unless="javac.includes">Must set javac.includes</fail>
<pathconvert pathsep="," property="javac.includes.binary">
<path>
<filelist dir="@{destdir}" files="${javac.includes}"/>
</path>
<globmapper from="*.java" to="*.class"/>
</pathconvert>
<delete>
<files includes="${javac.includes.binary}"/>
</delete>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-junit">
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<sequential>
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed"
fork="true" showoutput="true">
<batchtest todir="${build.test.results.dir}">
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}"
includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
</batchtest>
<classpath>
<path path="${run.test.classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
<jvmarg line="${run.jvmargs}"/>
</junit>
</sequential>
</macrodef>
</target>
<target depends="-init-debug-args" name="-init-macrodef-nbjpda">
<macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute default="${main.class}" name="name"/>
<attribute default="${debug.classpath}" name="classpath"/>
<attribute default="" name="stopclassname"/>
<sequential>
<nbjpdastart addressproperty="jpda.address" name="@{name}"
stopclassname="@{stopclassname}" transport="${debug-transport}">
<classpath>
<path path="@{classpath}"/>
</classpath>
</nbjpdastart>
</sequential>
</macrodef>
<macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute default="${build.classes.dir}" name="dir"/>
<sequential>
<nbjpdareload>
<fileset dir="@{dir}" includes="${fix.classes}">
<include name="${fix.includes}*.class"/>
</fileset>
</nbjpdareload>
</sequential>
</macrodef>
</target>
<target name="-init-debug-args">
<property name="version-output" value="java version "${ant.java.version}"/>
<condition property="have-jdk-older-than-1.4">
<or>
<contains string="${version-output}" substring="java version "1.0"/>
<contains string="${version-output}" substring="java version "1.1"/>
<contains string="${version-output}" substring="java version "1.2"/>
<contains string="${version-output}" substring="java version "1.3"/>
</or>
</condition>
<condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent
-Djava.compiler=none">
<istrue value="${have-jdk-older-than-1.4}"/>
</condition>
<condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
<os family="windows"/>
</condition>
<condition else="${debug-transport-by-os}" property="debug-transport" value="$
{debug.transport}">
<isset property="debug.transport"/>
</condition>
</target>
<target depends="-init-debug-args" name="-init-macrodef-debug">
<macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${main.class}" name="classname"/>
<attribute default="${debug.classpath}" name="classpath"/>
<element name="customize" optional="true"/>
<sequential>
<java classname="@{classname}" dir="${work.dir}" fork="true">
<jvmarg line="${debug-args-line}"/>
<jvmarg value="-Xrunjdwp:transport=${debug-transport},address=$
{jpda.address}"/>
<jvmarg line="${run.jvmargs}"/>
<classpath>
<path path="@{classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="run-sys-prop."/>
<mapper from="run-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<customize/>
</java>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-java">
<macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute default="${main.class}" name="classname"/>
<element name="customize" optional="true"/>
<sequential>
<java classname="@{classname}" dir="${work.dir}" fork="true">
<jvmarg line="${run.jvmargs}"/>
<classpath>
<path path="${run.classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="run-sys-prop."/>
<mapper from="run-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<customize/>
</java>
</sequential>
</macrodef>
</target>
<target name="-init-presetdef-jar">
<presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
<jar compress="${jar.compress}" jarfile="${dist.jar}">
<j2seproject1:fileset dir="${build.classes.dir}"/>
</jar>
</presetdef>
</target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-
init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-
macrodef-debug,-init-macrodef-java,-init-presetdef-jar" name="init"/>
<!--
===================
COMPILATION SECTION
===================
-->
<target depends="init" name="deps-jar" unless="no.deps"/>
<target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-
automatic-build"/>
<target depends="init" name="-check-automatic-build">
<available file="${build.classes.dir}/.netbeans_automatic_build"
property="netbeans.automatic.build"/>
</target>
<target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
<antcall target="clean"/>
</target>
<target depends="init,deps-jar" name="-pre-pre-compile">
<mkdir dir="${build.classes.dir}"/>
</target>
<target name="-pre-compile">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target if="do.depend.true" name="-compile-depend">
<j2seproject3:depend/>
</target>
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend"
if="have.sources" name="-do-compile">
<j2seproject3:javac/>
<copy todir="${build.classes.dir}">
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="$
{includes}"/>
</copy>
</target>
<target name="-post-compile">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-
compile,-post-compile" description="Compile project." name="compile"/>
<target name="-pre-compile-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
<j2seproject3:force-recompile/>
<j2seproject3:javac excludes="" includes="${javac.includes}" sourcepath="${src.dir}"/>
</target>
<target name="-post-compile-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-
do-compile-single,-post-compile-single" name="compile-single"/>
<!--
====================
JAR BUILDING SECTION
====================
-->
<target depends="init" name="-pre-pre-jar">
<dirname file="${dist.jar}" property="dist.jar.dir"/>
<mkdir dir="${dist.jar.dir}"/>
</target>
<target name="-pre-jar">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" name="-do-jar-without-manifest"
unless="manifest.available">
<j2seproject1:jar/>
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available" name="-do-jar-
with-manifest" unless="manifest.available+main.class">
<j2seproject1:jar manifest="${manifest.file}"/>
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class"
name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
<j2seproject1:jar manifest="${manifest.file}">
<j2seproject1:manifest>
<j2seproject1:attribute name="Main-Class" value="${main.class}"/>
</j2seproject1:manifest>
</j2seproject1:jar>
<echo>To run this application from the command line without Ant, try:</echo>
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
<property location="${dist.jar}" name="dist.jar.resolved"/>
<pathconvert property="run.classpath.with.dist.jar">
<path path="${run.classpath}"/>
<map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
</pathconvert>
<echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
</target>
<target depends="init,compile,-pre-pre-jar,-pre-jar"
if="manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries">
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
<pathconvert property="run.classpath.without.build.classes.dir">
<path path="${run.classpath}"/>
<map from="${build.classes.dir.resolved}" to=""/>
</pathconvert>
<pathconvert pathsep=" " property="jar.classpath">
<path path="${run.classpath.without.build.classes.dir}"/>
<chainedmapper>
<flattenmapper/>
<globmapper from="*" to="lib/*"/>
</chainedmapper>
</pathconvert>
<taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs"
classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
<copylibs compress="${jar.compress}" jarfile="${dist.jar}" manifest="${manifest.file}"
runtimeclasspath="${run.classpath.without.build.classes.dir}">
<fileset dir="${build.classes.dir}"/>
<manifest>
<attribute name="Main-Class" value="${main.class}"/>
<attribute name="Class-Path" value="${jar.classpath}"/>
</manifest>
</copylibs>
<echo>To run this application from the command line without Ant, try:</echo>
<property location="${dist.jar}" name="dist.jar.resolved"/>
<echo>java -jar "${dist.jar.resolved}"</echo>
</target>
<target name="-post-jar">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-
jar-with-mainclass,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
<!--
=================
EXECUTION SECTION
=================
-->
<target depends="init,compile" description="Run a main class." name="run">
<j2seproject1:java>
<customize>
<arg line="${application.args}"/>
</customize>
</j2seproject1:java>
</target>
<target name="-do-not-recompile">
<property name="javac.includes.binary" value=""/>
</target>
<target depends="init,-do-not-recompile,compile-single" name="run-single">
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
<j2seproject1:java classname="${run.class}"/>
</target>
<!--
=================
DEBUGGING SECTION
=================
-->
<target depends="init" if="netbeans.home" name="-debug-start-debugger">
<j2seproject1:nbjpdastart name="${debug.class}"/>
</target>
<target depends="init,compile" name="-debug-start-debuggee">
<j2seproject3:debug>
<customize>
<arg line="${application.args}"/>
</customize>
</j2seproject3:debug>
</target>
<target depends="init,compile,-debug-start-debugger,-debug-start-debuggee"
description="Debug project in IDE." if="netbeans.home" name="debug"/>
<target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
<j2seproject1:nbjpdastart stopclassname="${main.class}"/>
</target>
<target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee"
if="netbeans.home" name="debug-stepinto"/>
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-
single">
<fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
<j2seproject3:debug classname="${debug.class}"/>
</target>
<target depends="init,-do-not-recompile,compile-single,-debug-start-debugger,-debug-start-
debuggee-single" if="netbeans.home" name="debug-single"/>
<target depends="init" name="-pre-debug-fix">
<fail unless="fix.includes">Must set fix.includes</fail>
<property name="javac.includes" value="${fix.includes}.java"/>
</target>
<target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-
fix">
<j2seproject1:nbjpdareload/>
</target>
<target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
<!--
===============
JAVADOC SECTION
===============
-->
<target depends="init" name="-javadoc-build">
<mkdir dir="${dist.javadoc.dir}"/>
oc.windowtitle}">
<classpath>
<path path="${javac.classpath}"/>
</classpath>
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
</javadoc>
</target>
<target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse"
unless="no.javadoc.preview">
< <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}"
charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="$
{javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="$
{javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="$
{javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true"
version="${javadoc.version}" windowtitle="${javad
nbbrowse file="${dist.javadoc.dir}/index.html"/>
</target>
<target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc."
name="javadoc"/>
<!--
=========================
JUNIT COMPILATION SECTION
=========================
-->
<target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
<mkdir dir="${build.test.classes.dir}"/>
</target>
<target name="-pre-compile-test">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target if="do.depend.true" name="-compile-test-depend">
<j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}"
srcdir="${test.src.dir}"/>
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-
depend" if="have.tests" name="-do-compile-test">
<j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="$
{build.test.classes.dir}" srcdir="${test.src.dir}"/>
<copy todir="${build.test.classes.dir}">
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="$
{includes}"/>
</copy>
</target>
<target name="-post-compile-test">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-
post-compile-test" name="compile-test"/>
<target name="-pre-compile-test-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests"
name="-do-compile-test-single">
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
<j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
<j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="$
{build.test.classes.dir}" excludes="" includes="${javac.includes}" sourcepath="${test.src.dir}"
srcdir="${test.src.dir}"/>
<copy todir="${build.test.classes.dir}">
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="$
{includes}"/>
</copy>
</target>
<target name="-post-compile-test-single">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-
test-single,-post-compile-test-single" name="compile-test-single"/>
<!--
=======================
JUNIT EXECUTION SECTION
=======================
-->
<target depends="init" if="have.tests" name="-pre-test-run">
<mkdir dir="${build.test.results.dir}"/>
</target>
<target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
<j2seproject3:junit testincludes="**/*Test.java"/>
</target>
<target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-
test-run">
<fail if="tests.failed">Some tests failed; see details above.</fail>
</target>
<target depends="init" if="have.tests" name="test-report"/>
<target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
<target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-
browse" description="Run unit tests." name="test"/>
<target depends="init" if="have.tests" name="-pre-test-run-single">
<mkdir dir="${build.test.results.dir}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-
test-run-single">
<fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
<j2seproject3:junit excludes="" includes="${test.includes}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single"
if="have.tests" name="-post-test-run-single">
<fail if="tests.failed">Some tests failed; see details above.</fail>
</target>
<target depends="init,-do-not-recompile,compile-test-single,-pre-test-run-single,-do-test-
run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
<!--
=======================
JUNIT DEBUGGING SECTION
=======================
-->
<target depends="init,compile-test" if="have.tests" name="-debug-start-debuggee-test">
<fail unless="test.class">Must select one file in the IDE or set test.class</fail>
<property location="${build.test.results.dir}/TEST-${test.class}.xml"
name="test.report.file"/>
<delete file="${test.report.file}"/>
<mkdir dir="${build.test.results.dir}"/>
<j2seproject3:debug
classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner" classpath="$
{ant.home}/lib/ant.jar:${ant.home}/lib/ant-junit.jar:${debug.test.classpath}">
<customize>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<arg value="${test.class}"/>
<arg value="showoutput=true"/>
<arg
value="formatter=org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"/>
<arg
value="formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,$
{test.report.file}"/>
</customize>
</j2seproject3:debug>
</target>
<target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-
debugger-test">
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
</target>
<target depends="init,-do-not-recompile,compile-test-single,-debug-start-debugger-test,-
debug-start-debuggee-test" name="debug-test"/>
<target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-
debug-fix-test">
<j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
</target>
<target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-
fix-test"/>
<!--
=========================
APPLET EXECUTION SECTION
=========================
-->
<target depends="init,compile-single" name="run-applet">
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
<j2seproject1:java classname="sun.applet.AppletViewer">
<customize>
<arg value="${applet.url}"/>
</customize>
</j2seproject1:java>
</target>
<!--
=========================
APPLET DEBUGGING SECTION
=========================
-->
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-
applet">
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
<j2seproject3:debug classname="sun.applet.AppletViewer">
<customize>
<arg value="${applet.url}"/>
</customize>
</j2seproject3:debug>
</target>
<target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet"
if="netbeans.home" name="debug-applet"/>
<!--
===============
CLEANUP SECTION
===============
-->
<target depends="init" name="deps-clean" unless="no.deps"/>
<target depends="init" name="-do-clean">
<delete dir="${build.dir}"/>
<delete dir="${dist.dir}"/>
</target>
<target name="-post-clean">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products."
name="clean"/>
</project>
As stated earlier, the tables in this database are in the Third Normal Form (3 NF.) In order to
decompose the relationships into this form, we had to split Status table from the Media table.
Each Media object has a status code, and each status code has an associated description. It
would be redundant to store both codes and descriptions in the Media object, so we created a
dedicated Status table with the code as the primary key. The other tables were designed with
optimization in mind. The Card entity, for instance, was separated from the Customer entity to
avoid a functional dependency (since the "num" attribute of the Card entity determines the
"fines" attribute.)
4.4 Implementation
During this semester, our group has designed and implemented a database for
managing a library system with multiple locations, the ability to store videos as
well as books, and separate functions for customers and librarians. Furthermore,
we were able to keep the system's logic abstracted from both the end users and
the DBMS by using JDBC to create a third-tier architecture. Finally, we used CSS
and JSP to design an Internet-based GUI for remotely accessing the database. The
database design supports more operations than are currently implemented by the
GUI. For example, the "hold" relationship can store a waiting list of customers
who want to check out a particular media item; there is also the possibility of a
customer having multiple library cards. If we were to continue with this project,
we would implement the above features, and also improve the account
management and search features.
Chapter 5. Graphical User Interface Design
5.1 Introduction
The main aim of this project to illustrate the requirements needed for the library
management system. The project gives a view about both functional and non-
functional requirements chosen by the client. The project is developed using Edraw
Tool, JAVA, MS-ACCESS database, SQL. This application has a search facility
the admin can search by book or name. The admin can add or remove users or
book from database.
Scope :
The library transactions like issue, return and renewal of members. It can be used
in various fields like :
In an educational institute, college giving description about content and the author.
It can used in libraries for easily maintain the books and their details.
Conventions used:
Admin: a person who has admin access privileges can login with his id and
password.
User: The user can login into his account by the assigned login id and with
his password.
Clients: They are nothing but intended users.
SQL: It is used to retrieve the data from data base.
SQL server: It used to store data in an order.
Unique key: It is used for the differentiation of table entries.
Product features:
Data-Base Tables :-
Books database
Borrowers database
Users database
Category database
5.2 Input Forms
import java.sql.*;
import javax.swing.table.DefaultTableModel;
public class Pavan extends javax.swing.JFrame {
public Pavan() {
initComponents();
}
@SuppressWarnings("unchecked")
private void PavanButton2ActionPerformed(java.awt.event.ActionEvent evt) {
PavanOptionPane1.showMessageDialog(null,"Thanks for using Library
Managment");
System.exit(0);
long e =Long.parseLong(PavanjTextField2.getText());
String query ="INSERT INTO REGISTRATION VALUES( '"+a+"',"+b+",'"+c+"',"+e+");";
stmt.executeUpdate(query);
PavanOptionPane1.showMessageDialog(null,"Record succesfully submitted");
} catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"You have given wrong data");
}
t rs = stmt.executeQuery(query);
if (rs.next())
{
String dno =rs.getString("Student_Name");
String u =rs.getString("Student_Class");
String k =rs.getString("Section") ;
String m =rs.getString("Phone_No") ;
PavanjTextField5.setText(u);
PavanjTextField6.setText(k);
PavanjTextField7.setText(m);
PavanjTextField5.setEnabled(true);
PavanjTextField6.setEnabled(true);
PavanjTextField7.setEnabled(true);
}
else
{
PavanOptionPane1.showMessageDialog(null,"No such records found");
}
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error");
}
int aa = PavanOptionPane1.showConfirmDialog(null,"Surely wanna Delete "+a);
if ( aa== PavanOptionPane1.YES_OPTION)
{
String taaa =(String) PavanjComboBox11.getSelectedItem();
PavanjComboBox11.removeItem(taaa);
PavanjComboBox26.removeItem(taaa);
try
{
Class.forName("java.sql.Driver");
Connection conA =DriverManager.getConnection
("jdbc:mysql://localhost/LIBRARY_MANAGMENT","root","SJSSS");
Statement stmtA = conA.createStatement();
String c =(String) PavanjComboBox11.getSelectedItem();
String query ="delete from REGISTRATION where Student_Name = '"+taaa+"' ;";
stmtA.executeUpdate(query);
PavanOptionPane1.showMessageDialog(null,"Record Deleted");
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error");
}
}
PavanjTextField5.setText("");
PavanjTextField6.setText("");
PavanjTextField7.setText("");
Pavanschool.setVisible(true);
Pavandeletestudentrecord.setVisible(false);
}
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error");
}
int aa = PavanOptionPane1.showConfirmDialog(null,"Surely wanna Delete records");
if( aa== PavanOptionPane1.YES_OPTION)
{
String taaa =(String) PavanjComboBox27.getSelectedItem();
PavanjComboBox27.removeItem(taaa);
PavanjComboBox28.removeItem(taaa);
try
{
Class.forName("java.sql.Driver");
Connection conA =DriverManager.getConnection
("jdbc:mysql://localhost/LIBRARY_MANAGMENT","root","SJSSS");
Statement stmtA = conA.createStatement();
String c =(String) PavanjComboBox27.getSelectedItem();
String query ="delete from book where Book_Name = '"+taaa+"' ;";
stmtA.executeUpdate(query);
PavanOptionPane1.showMessageDialog(null,"Record Deleted");
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error");
}
}
PavanjTextField15.setText("");
PavanjTextField16.setText("");
jTextField17.setText("");
PavanjTextField18.setText("");
PavanjTextField19.setText("");
Pavanschool.setVisible(true);
Pavandeletebook.setVisible(false);
}
try
{
Class.forName("java.sql.Driver");
Connection con =DriverManager.getConnection
("jdbc:mysql://localhost/LIBRARY_MANAGMENT","root","SJSSS");
Statement stmt = con.createStatement();
String a =PAVANjTextField49.getText();
long b =Long.parseLong(PAVANjTextField50.getText());
long c =Long.parseLong(jTextField59.getText());
String d =PAVANjTextField60.getText();
long e =Long.parseLong(PAVANjTextField61.getText());
String query ="insert into publicavailablebook values
( '"+a+"','"+b+"','"+c+"','"+d+"','"+e+"');";
stmt.executeUpdate(query);
{
String q=PAVANjTextField49.getText();
int i=0;
int length =PAVANjComboBox33.getItemCount();
boolean exists=false;
for(;i<length;++i)
{
String item =(String)PAVANjComboBox33.getItemAt(i);
if(item.equals(q))
{
exists=true;
break;
}
}
if(exists==false)
PAVANjComboBox33.addItem(q);
}
{
String q=PAVANjTextField49.getText();
int i=0;
int length =PAVANjComboBox34.getItemCount();
boolean exists=false;
for(;i<length;++i)
{
String item =(String)PAVANjComboBox34.getItemAt(i);
if(item.equals(q))
{
exists=true;
break;
}
}
if(exists==false)
PAVANjComboBox34.addItem(q);
}
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"You Have Given Wrong Data");
}
Pavanpublicadddnewbook.setVisible(false);
Pavanpubliclibrary.setVisible(true);
PAVANjTextField49.setText("");
PAVANjTextField50.setText("");
jTextField59.setText("");
PAVANjTextField60.setText("");
PAVANjTextField61.setText("");
}
private void PAVANjButton46ActionPerformed(java.awt.event.ActionEvent evt) {
Pavanpublicadddnewbook.setVisible(false);
Pavanpubliclibrary.setVisible(true);
PAVANjTextField49.setText("");
PAVANjTextField50.setText("");
jTextField59.setText("");
PAVANjTextField60.setText("");
PAVANjTextField61.setText("");
}
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error in loading");
}
int aa = PavanOptionPane1.showConfirmDialog(null,"Surely wanna Delete records");
if ( aa== PavanOptionPane1.YES_OPTION)
{
String q=(String) PAVANjComboBox33.getSelectedItem();
PAVANjComboBox33.removeItem(q);
PAVANjComboBox34.removeItem(q);
try
{
Class.forName("java.sql.Driver");
Connection conA =DriverManager.getConnection
("jdbc:mysql://localhost/LIBRARY_MANAGMENT","root","SJSSS");
Statement stmtA = conA.createStatement();
String query ="delete from publicavailablebook where Book_Name = '"+q+"' ;";
stmtA.executeUpdate(query);
PavanOptionPane1.showMessageDialog(null,"Record Deleted");
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error in deleting");
}
}
PAVANjTextField65.setText("");
PAVANjTextField66.setText("");
PAVANjTextField67.setText("");
PAVANjTextField68.setText("");
Pavanpubliclibrary.setVisible(true);
Pavanpublicbookdelete.setVisible(false);
}
private void PAVANjButton55ActionPerformed(java.awt.event.ActionEvent evt) {
Pavanpublicissuedbooks.setVisible(false);
Pavanpubliclibrary.setVisible(true);
}
}
else
{
PavanOptionPane1.showMessageDialog(null,"No such records found");
}
rs.close();
stmt.close();
con.close();
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error for load");
}
{
try
{
Class.forName("java.sql.Driver");
Connection cona =DriverManager.getConnection
("jdbc:mysql://localhost/LIBRARY_MANAGMENT","root","SJSSS");
Statement stmta = cona.createStatement();
String ca =(String) PAVANjComboBox35.getSelectedItem();
String query ="delete from publicissuedbook where Name = '"+ca+"';";
stmta.executeUpdate(query);
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error for delete");
}
}
try
{
Class.forName("java.sql.Driver");
Connection con =DriverManager.getConnection
("jdbc:mysql://localhost/LIBRARY_MANAGMENT","root","SJSSS");
Statement stmt = con.createStatement();
long b =Long.parseLong(PAVANjTextField70.getText());
String a =(String) PAVANjComboBox35.getSelectedItem();
try
{
Class.forName("java.sql.Driver");
Connection con =DriverManager.getConnection
("jdbc:mysql://localhost/MENAGERIE","root","SJSSS");
Statement stmt = con.createStatement();
String query ="SELECT dayofyear(' "+rd+"') - dayofyear(' "+id+ "') as pavan ;";
ResultSet rs = stmt.executeQuery (query);
while (rs.next())
{
dfa = rs.getInt("pavan");
pavan = dfa;
if (dfa>=0)
{
jLabel1.setText(""+dfa);
}
else
{
dfa=dfa+365;
jLabel1.setText(""+dfa);
}
}
rs.close();
stmt.close();
con.close();
}catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error in date difference ");
}
Pavanpublicreturnbook.setVisible(false);
Pavanpubliclibrary.setVisible(true);
try
{
Class.forName("java.sql.Driver");
Connection con =DriverManager.getConnection
("jdbc:mysql://localhost/LIBRARY_MANAGMENT","root","SJSSS");
Statement stmt = con.createStatement();
String c =jTextField82.getText();
String query ="delete from publicsid where name = '"+c+"';";
stmt.executeUpdate(query);
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error");
}
PAVANjComboBox35.removeItem(q);
PAVANjComboBox36.removeItem(qa);
jTextField58.setText("");
jTextField79.setText("");
jTextField77.setText("");
jTextField81.setText("");
PAVANjTextField78.setText("");
jTextField80.setText("");
PAVANjTextField70.setText("");
PAVANjTextField69.setText("");
PAVANjTextField71.setText("");
PAVANjTextField72.setText("");
PAVANjTextField73.setText("");
}
private void PAVANjButton48ActionPerformed(java.awt.event.ActionEvent evt) {
Pavanpublicreturnbook.setVisible(false);
Pavanpubliclibrary.setVisible(true);
PAVANjTextField70.setText("");
PAVANjTextField69.setText("");
PAVANjTextField71.setText("");
PAVANjTextField72.setText("");
PAVANjTextField73.setText("");
}
try
{
Class.forName("java.sql.Driver");
Connection con =DriverManager.getConnection
("jdbc:mysql://localhost/LIBRARY_MANAGMENT","root","SJSSS");
Statement stmt = con.createStatement();
long b =Long.parseLong(PAVANjTextField70.getText());
String a =(String) PAVANjComboBox35.getSelectedItem();
try
{
Class.forName("java.sql.Driver");
Connection con =DriverManager.getConnection
("jdbc:mysql://localhost/LIBRARY_MANAGMENT","root","SJSSS");
Statement stmt = con.createStatement();
String aaa =(String) PAVANjComboBox36.getSelectedItem();
long c =Long.parseLong(PAVANjTextField71.getText());
int b =Integer.parseInt(PAVANjTextField69.getText());
String d =PAVANjTextField72.getText();
int e =Integer.parseInt(PAVANjTextField73.getText());
String query ="insert into PUBLICAVAILABLEBOOK values
( '"+aaa+"','"+b+"','"+c+"','"+d+"','"+e+"');";
stmt.executeUpdate(query);
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error to insert into book");
}
try
{
Class.forName("java.sql.Driver");
Connection con =DriverManager.getConnection
("jdbc:mysql://localhost/LIBRARY_MANAGMENT","root","SJSSS");
Statement stmt = con.createStatement();
String taa =(String) PAVANjComboBox35.getSelectedItem();
String query =" SELECT * FROM publicsid WHERE name ='" +taa+ "';" ;
ResultSet rs = stmt.executeQuery(query);
if (rs.next())
{
String dno =rs.getString("name");
String dNa =rs.getString("date");
String d =rs.getString("month") ;
String ds =rs.getString("year") ;
jTextField58.setText(dNa);
jTextField79.setText(d);
jTextField77.setText(ds);
jTextField82.setText(dno);
}
else
{
PavanOptionPane1.showMessageDialog(null,"No such records found");
}
rs.close();
stmt.close();
con.close();
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error in loading sid table");
}
String rrimonth=(String)PAVANjComboBox24.getSelectedItem();
int rrm = 0 ;
if(rrimonth=="January")
{
rrm=1;
}
if(rrimonth=="Februry")
{
rrm=2;
}
if(rrimonth=="March")
{
rrm=3;
}
if(rrimonth=="April")
{
rrm=4;
}
if(rrimonth=="May")
{
rrm=5;
}
if(rrimonth=="June")
{
rrm=6;
}
if(rrimonth=="July")
{
rrm=7;
}
if(rrimonth=="August")
{
rrm=8;
}
if(rrimonth=="September")
{
rrm=9;
}
if(rrimonth=="October")
{
rrm=10;
}
if(rrimonth=="November")
{
rrm=11;
}
if(rrimonth=="December")
{
rrm=12;
}
int iida=Integer.parseInt(jTextField58.getText());
int iima=Integer.parseInt(jTextField79.getText());
int iiya=Integer.parseInt(jTextField77.getText());
String rrd=(String)(PAVANjComboBox23.getSelectedItem());
String RRY=(String)(PAVANjComboBox25.getSelectedItem());
jTextField80.setText(rrd);
jTextField81.setText(RRY);
int rrrda=Integer.parseInt(jTextField80.getText());
int rrrya=Integer.parseInt(jTextField81.getText());
try
{
Class.forName("java.sql.Driver");
Connection con =DriverManager.getConnection
("jdbc:mysql://localhost/MENAGERIE","root","SJSSS");
Statement stmt = con.createStatement();
String query ="SELECT dayofyear(' "+rd+"') - dayofyear(' "+id+ "') as pavan ;";
ResultSet rs = stmt.executeQuery (query);
while (rs.next())
{
dfa = rs.getInt("pavan");
pavan = dfa;
if (dfa>=0)
{
jLabel1.setText(""+dfa);
}
else
{
dfa=dfa+365;
jLabel1.setText(""+dfa);
}
}
rs.close();
stmt.close();
con.close();
}catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error in date difference ");
}
try
{
Class.forName("java.sql.Driver");
Connection con =DriverManager.getConnection
("jdbc:mysql://localhost/LIBRARY_MANAGMENT","root","SJSSS");
Statement stmt = con.createStatement();
String a =(String) PAVANjComboBox35.getSelectedItem();
long b =Long.parseLong(PAVANjTextField70.getText());
String c =(String) PAVANjComboBox36.getSelectedItem();
int d =Integer.parseInt(PAVANjTextField69.getText());
int ea =Integer.parseInt(PAVANjTextField71.getText());
String f =PAVANjTextField72.getText();
int g =Integer.parseInt(PAVANjTextField73.getText());
String pdate =PAVANjTextField78.getText();
String query ="insert into publicissuedbook values
( '"+a+"','"+b+"','"+c+"','"+d+"','"+ea+"','"+f+"','"+g+"','"+pdate+"');";
stmt.executeUpdate(query);
stmt.close();
con.close();
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error ");
}
}
}
if(pavan >=0)
{
if((dfa>(-1))&&(dfa<11))
{
PavanOptionPane1.showMessageDialog(null,"Thanks for Returning the Book");
}
if((dfa>10)&&(dfa<16))
{
int late=dfa-10;
fine=20;
PavanOptionPane1.showMessageDialog(null,"Thanks for Returning the Book,But As you
have Returned Book "+late+" Days late,You have been fined 30 Rs.");
}
if((dfa>15)&&(dfa<21))
{ int late=dfa-10;
fine=30;
PavanOptionPane1.showMessageDialog(null,"Thanks for Returning the Book,But As you
have Returned Book "+late+" Days late,You have been fined 50 Rs.");
}
if((dfa>20)&&(dfa<31))
{ int late=dfa-10;
fine=50;
PavanOptionPane1.showMessageDialog(null,"Thanks for Returning the Book,But As you
have Returned Book "+late+" Days late,You have been fined 80 Rs.");
}
if((dfa>30)&&(dfa<61))
{ int late=dfa-10;
fine=80;
PavanOptionPane1.showMessageDialog(null,"Thanks for Returning the Book,But As you
have Returned Book "+late+" Days late,You have been fined 100 Rs.");
}
if((dfa>60)&&(dfa<111))
{int late=dfa-10;
fine=100;
PavanOptionPane1.showMessageDialog(null,"Thanks for Returning the Book,But As you have
Returned Book "+late+" Days late,You have been fined 120 Rs.");
}
if((dfa>110)&&(dfa<211))
{ int late=dfa-10;
fine=120;
PavanOptionPane1.showMessageDialog(null,"Thanks for Returning the Book,But As you have
Returned Book "+late+" Days late,You have been fined 150 Rs.");
}
if((dfa>210)&&(dfa<366))
{ int late=dfa-10;
fine=150;
PavanOptionPane1.showMessageDialog(null,"Thanks for Returning the Book,But As you have
Returned Book "+late+" Days late,You have been fined 200 Rs.");
}
if(dfa>365)
{ int late=dfa-10;
fine=200;
PavanOptionPane1.showMessageDialog(null,"Thanks for Returning the Book,But As you have
Returned Book "+late+" Days late,You have been fined 250 Rs.} }
try
{
Class.forName("java.sql.Driver");
Connection con =DriverManager.getConnection
("jdbc:mysql://localhost/LIBRARY_MANAGMENT","root","SJSSS");
Statement stmt = con.createStatement();
String c =jTextField82.getText();
String query ="delete from publicsid where name = '"+c+"';";
stmt.executeUpdate(query);
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error");
}
PAVANjComboBox35.removeItem(q);
PAVANjComboBox36.removeItem(qa);
jTextField58.setText("");
jTextField79.setText("");
jTextField77.setText("");
jTextField81.setText("");
PAVANjTextField78.setText("");
jTextField80.setText("");
PAVANjTextField70.setText("");
PAVANjTextField69.setText("");
PAVANjTextField71.setText("");
PAVANjTextField72.setText("");
PAVANjTextField73.setText("");
}
try
{
Class.forName("java.sql.Driver");
Connection con =DriverManager.getConnection
("jdbc:mysql://localhost/LIBRARY_MANAGMENT","root","SJSSS");
Statement stmt = con.createStatement();
String query ="SELECT * FROM issuedbook ;";
ResultSet rs = stmt.executeQuery (query);
while (rs.next())
{
String a =rs.getString(1);
String b =rs.getString(2);
String c =rs.getString(3);
String d =rs.getString(4);
String e =rs.getString(5);
String f =rs.getString(6);
String g =rs.getString(7);
String i =rs.getString(8);
String j =rs.getString(9);
String k =rs.getString(10);
String ka =rs.getString(11);
registration.addRow(new Object[] { a,b,c, d,e,f,g,i,j,k,ka});
}
rs.close();
stmt.close();
con.close();
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error");
}
Pavanschool.setVisible(false);
}
}
try
{
Class.forName("java.sql.Driver");
Connection con =DriverManager.getConnection
("jdbc:mysql://localhost/LIBRARY_MANAGMENT","root","SJSSS");
Statement stmt = con.createStatement();
String query ="SELECT * FROM publicavailablebook ;";
ResultSet rs = stmt.executeQuery (query);
while (rs.next())
{
String pavan1 =rs.getString(1);
String pavan2 =rs.getString(2);
String pavan3 =rs.getString(3);
String pavan4 =rs.getString(4);
String pavan5 =rs.getString(5);
}
private void PavanjRadioButton24ActionPerformed(java.awt.event.ActionEvent evt) {
int ps=PAVANjTable8.getRowCount();
while(ps>0)
{ DefaultTableModel table =(DefaultTableModel)PAVANjTable8.getModel();
table.removeRow(0);
}
Pavanpubliclibrary.setVisible(false);
Pavanpublicissuebook.setVisible(true);
PAVANjTextField51.setText("");
PAVANjTextField53.setText("");
PAVANjTextField55.setText("");
PAVANjTextField56.setText("");
}
private void PavanjRadioButton25ActionPerformed(java.awt.event.ActionEvent evt) {
Pavanpubliclibrary.setVisible(false);
Pavanpublicreturnbook.setVisible(true);
}
private void PavanjRadioButton21ActionPerformed(java.awt.event.ActionEvent evt) {
int pa=PAVANjTable11.getRowCount();
while(pa>0)
{
DefaultTableModel table =(DefaultTableModel)PAVANjTable11.getModel();
table.removeRow(0);
}
Pavanpubliclibrary.setVisible(false);
Pavanpublicissuedbooks.setVisible(true);
DefaultTableModel dept =(DefaultTableModel) PAVANjTable11.getModel();
try
{
Class.forName("java.sql.Driver");
Connection con =DriverManager.getConnection
("jdbc:mysql://localhost/LIBRARY_MANAGMENT","root","SJSSS");
Statement stmt = con.createStatement();
String query ="SELECT * FROM publicissuedbook ;";
ResultSet rs = stmt.executeQuery (query);
while (rs.next())
{
String dno =rs.getString(1);
String dName =rs.getString(2);
String d =rs.getString(3);
String d1 =rs.getString(4);
String d2=rs.getString(5);
String d3 =rs.getString(6);
String d4=rs.getString(7);
String d5=rs.getString(8);
dept.addRow(new Object[] { dno,dName, d,d1,d2,d3,d4,d5});
}
rs.close();
stmt.close();
con.close();
}
catch(Exception e)
{
PavanOptionPane1.showMessageDialog(null,"error");
}
}
private void PavanjRadioButton27ActionPerformed(java.awt.event.ActionEvent evt) {
Pavanpublicregistration.setVisible(true);
Pavanpublicregisteredmembers.setVisible(false);
PavanjTextField43.setText("");
PavanjTextArea2.setText("");
PavanjTextField44.setText("");
}
1.
2.
3.
4.
5.4 Reports
After we have completed the project we are sure the problems in the existing
system would overcome. The “LIBRARY MANAGEMENT SYSTEM” process made
computerized to reduce human errors and to increase the efficiency. The main
focus of this project is to lessen human efforts. The maintenance of the records is
made efficient, as all the records are stored in the ACCESS database, through
which data can be retrieved easily. The navigation control is provided in all the
forms to navigate through the large amount of records. If the numbers of records
are very large then user has to just type in the search string and user gets the
results immediately. The editing is also made simpler. The user has to just type in
the required field and press the update button to update the desired field.
The Books and Students are given a particular unique id no. So that they can be
accessed correctly and without errors. Our main aim of the project is to get the
correct information about a particular student and books available in the library.
The problems, which existed in the earlier system, have been removed to a large
extent. And it is expected that this project will go a long way in satisfying users
requirements. The computerization of the Library Management will not only
improves the efficiency but will also reduce human stress thereby indirectly
improving human recourses.
BIBLIOGRAPHY
Websites:
www.programmer2programmer.net
www.wikipedia.org
www.php.net
www.w3schools.com
www.tutorialspoint.com
www.tutorialsteacher.com
www.mysqltutorial.org
Books