利用java和sqlserver建立简易图书管理系统的完整步骤

 更新时间:2022年06月13日 11:02:31   作者:0°ic  
图书馆管理系统是图书馆管理工作中不可缺少的部分,它对于图书馆的管理者和使用者都非常重要,下面这篇文章主要给大家介绍了关于利用java和sqlserver建立简易图书管理系统的完整步骤,需要的朋友可以参考下

1.所需功能:

游览所有图书、查找书籍、建立新图书,借出和归还图书,删除某一图书

2.流程:

数据库连接

  • 选择需要的操作
  • 释放连接

3.环境及其语言:

Idea,JDK13,驱动包Microsoft JDBC Driver 8.2.2 for SQL Server

4.数据库建立

  • 数据库:sqlserver2019
  • Database:library
  • Table:Book
  • Book:书籍编号,书籍名称,书籍作者,库存量
  • 管理员名:sa
  • 密码:123456

5.操作:

数据库连接:sql.T3.Test1.java

官网下载驱动包Microsoft JDBC Driver 8.2.2 for SQL Server并加载到程序中。

//注册驱动
	DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
//建立连接
String dbUL="jdbc:sqlserver://localhost:1433;DatabaseName=Library";
String Name="sa";
String Paw="123456";
conn=DriverManager.getConnection(dbUL,Name,Paw);

选择需要的操作:sql.T3.Test1.java

1.游览所有图书

try{
    DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
    conn = DriverManager.getConnection(dbUL, Name, Paw);
    st = conn.createStatement();
    sql = "select * from Book";
    rs = st.executeQuery(sql);
    while (rs.next()){
        int id = rs.getInt("id");
        String name = rs.getString("name");
        String aut = rs.getString("aut");
        int num = rs.getInt("num");
        System.out.println("id=" + id + " name=" + name + " aut:" + aut + " num:" + num);
    }
}catch (SQLException e){
    e.printStackTrace();
}finally{
    JDBCUtil.release(conn, st, rs);
}

2.查找书籍

try{
    DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
    conn = DriverManager.getConnection(dbUL, Name, Paw);
    st = conn.createStatement();
    System.out.println("查找方式:1.按编号查找;2.按书名查找;3.按作者查找;4.放弃操作;");
    b_h2 = sc.nextInt();
    f_l = true;
    switch (b_h2){
    case 1:
        System.out.println("输入书籍编号:");
        book_num = sc.nextInt();
        sql1 = "select * from Book where id=" + book_num;
        break;
    case 2:
        System.out.println("输入书籍名称:");
        book_name = sc.next();
        sql1 = "select * from Book where name='" + book_name + "'";
        break;
    case 3:
        System.out.println("输入书籍作者:");
        author = sc.next();
        sql1 = "select * from Book where id='" + author + "'";
        break;
    case 4:
        f_l = false;
        break;
    }
    if (f_l){
        sql = sql1;
        rs = st.executeQuery(sql);
        while (rs.next()){
            int id = rs.getInt("id");
            String name = rs.getString("name");
            String aut = rs.getString("aut");
            int num = rs.getInt("num");
            System.out.println("id=" + id + " name=" + name + " aut:" + aut + " num:" + num);
        }
    }
    else
        System.out.println("对象已放弃操作");
}catch (SQLException e){
    e.printStackTrace();
}finally{
    JDBCUtil.release(conn, st, rs);
}

3.建立新图书

try{
    DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
    conn = DriverManager.getConnection(dbUL, Name, Paw);
    st = conn.createStatement();
    System.out.println("书籍导入:请依次输入书籍的编号、书名、作者和导入数量:");
    book_id = sc.nextInt();
    book_name = sc.next();
    author = sc.next();
    book_num = sc.nextInt();
    sql1 = "insert into Book values(" + book_id + ",'" + book_name + "','" + author + "'," + book_num + ")";
    st.executeUpdate(sql1);
}catch (SQLException e){
    e.printStackTrace();
}finally{
    JDBCUtil.release(conn, st);
}

4借出图书

try{
    DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
    conn = DriverManager.getConnection(dbUL, Name, Paw);
    st = conn.createStatement();
    System.out.println("查找方式:1.按编号查找;2.按书名查找;3.按作者查找;4.放弃操作;");
    b_h2 = sc.nextInt();
    f_l = true;
    switch (b_h2){
    case 1:
        System.out.println("输入书籍编号:");
        book_num = sc.nextInt();
        sql1 = "select * from Book where id=" + book_num;
        break;
    case 2:
        System.out.println("输入书籍名称:");
        book_name = sc.next();
        sql1 = "select * from Book where name='" + book_name + "'";
        break;
    case 3:
        System.out.println("输入书籍作者:");
        author = sc.next();
        sql1 = "select * from Book where id='" + author + "'";
        break;
    case 4:
        f_l = false;
        break;
    }
    if (f_l){
        sql = sql1;
        rs = st.executeQuery(sql);
        while (rs.next()){
            int id = rs.getInt("id");
            String name = rs.getString("name");
            String aut = rs.getString("aut");
            int num = rs.getInt("num");
            System.out.println("id=" + id + " name=" + name + " aut:" + aut + " num:" + num);
            b_h = num;
            book_id = id;
        }
        System.out.println("确认借出:确认:1,取消:2");
        b_h2 = sc.nextInt();
        if (b_h2 == 1){
            if (b_h == 0)
                System.out.println("馆藏书目为0,无法借出");
            else{
                b_h--;
                sql1 = "UPDATE Book SET num=" + b_h + "WHERE id =" + book_id;
                st.executeUpdate(sql1);
            }
        }
        else
            System.out.println("你已取消操作");
    }
    else
        System.out.println("对象已放弃操作");
}catch (SQLException e)
{
    e.printStackTrace();
}finally{
    JDBCUtil.release(conn, st, rs);
}

5. 归还图书删除某一图书

try{
    DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
    conn = DriverManager.getConnection(dbUL, Name, Paw);
    st = conn.createStatement();
    System.out.println("输入归还书id:");
    book_id = sc.nextInt();
    sql = "select * from Book where id=" + book_id;
    rs = st.executeQuery(sql);
    while (rs.next()){
        int id = rs.getInt("id");
        String name = rs.getString("name");
        String aut = rs.getString("aut");
        int num = rs.getInt("num");
        System.out.println("id=" + id + " name=" + name + " aut:" + aut + " num:" + num);
        b_h = num;
    }
    b_h++;
    sql1 = "UPDATE Book SET num=" + b_h + "WHERE id =" + book_id;
    st.executeUpdate(sql1);
}catch (SQLException e){
    e.printStackTrace();
}finally{
    JDBCUtil.release(conn, st, rs);
}

6.删除某一图书

try{
    DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
    conn = DriverManager.getConnection(dbUL, Name, Paw);
    st = conn.createStatement();
    System.out.println("输入删除书id:");
    book_id = sc.nextInt();
    sql1 = "delete from Book where id=" + book_id;
    st.executeUpdate(sql1);
}catch (SQLException e){
    e.printStackTrace();
}finally{
    JDBCUtil.release(conn, st, rs);
}

释放连接: sql.T1.JDBCUtil.java

public static void release(Connection conn, Statement st, ResultSet rs)//当rs不为空时
{
    closeRs(rs);
    closeSt(st);
    closeConn(conn);
}

public static void release(Connection conn, Statement st)// 当rs为空时
{
    closeSt(st);
    closeConn(conn);
}

6.运行结果演示

sqlserver中的部分数据:

idea中的演示结果:

显示书籍:

查找书籍及借出:

归还书籍及删除书籍:

总结

到此这篇关于利用java和sqlserver建立简易图书管理系统的文章就介绍到这了,更多相关java和sqlserver图书管理系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在java中实现C#语法里的按引用传递参数的方法

    在java中实现C#语法里的按引用传递参数的方法

    下面小编就为大家带来一篇在java中实现C#语法里的按引用传递参数的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • 详解spring security之httpSecurity使用示例

    详解spring security之httpSecurity使用示例

    这篇文章主要介绍了详解spring security之httpSecurity使用示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 解决idea不支持SpringBoot yml文件的图文教程

    解决idea不支持SpringBoot yml文件的图文教程

    这篇文章主要介绍了解决idea不支持SpringBoot yml文件,需要的朋友可以参考下
    2018-06-06
  • java中thread线程start和run的区别

    java中thread线程start和run的区别

    这篇文章主要介绍了java中thread线程start和run的区别,run()是Runnable接口中定义的一个方法,是为了让客户程序员在这个方法里写自己的功能代码的。直接调用和普通的类调用自己的成员方法是没有任何区别的
    2014-03-03
  • 有关IntelliJ IDEA中LeetCode插件配置问题

    有关IntelliJ IDEA中LeetCode插件配置问题

    这篇文章主要介绍了关于IntelliJ IDEA中LeetCode插件配置问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Java二维数组与动态数组ArrayList类详解

    Java二维数组与动态数组ArrayList类详解

    这篇文章主要给大家介绍了关于Java二维数组与动态数组ArrayList类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 亲手教你SpringBoot中的多数据源集成问题

    亲手教你SpringBoot中的多数据源集成问题

    本文主要是介绍基于springboot的多数据源切换,轻量级的一种集成方案,对于小型的应用可以采用这种方案,我之前在项目中用到是因为简单,便于扩展以及优化,对SpringBoot多数据源集成问题感兴趣的朋友一起看看吧
    2022-03-03
  • Java实现五子棋(附详细源码)

    Java实现五子棋(附详细源码)

    这篇文章主要为大家详细介绍了Java实现五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • Mybatis实体类属性与数据库不一致解决方案

    Mybatis实体类属性与数据库不一致解决方案

    这篇文章主要介绍了Mybatis实体类属性与数据库不一致解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Spring Boot整合Spring Cache及Redis过程解析

    Spring Boot整合Spring Cache及Redis过程解析

    这篇文章主要介绍了Spring Boot整合Spring Cache及Redis过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12

最新评论