IDEA JDBC图书管理系统

1.首先创建一个实列Book.

//书的属性

private int BookID;

private StringBookName;

private StringBookAuthor;

private double BookPrice;

2,创建工具包链接Mysql数据库

package util;

import java.sql.*;

public class Util {

private static final StringURL="jdbc:mysql://localhost:3306/bookdb";

private static final StringUSER="root";

private static final StringPASSWORD="123456";

//找到jdbc jar包

    static {

try {

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

}catch ( ClassNotFoundException e){

e.printStackTrace();

}

}

//获取Connection

    public static Connection getConn(){

Connection connection=null;

//Connection赋值

        try {

connection= DriverManager.getConnection(URL,USER,PASSWORD);

}catch (SQLException e){

e.printStackTrace();

}

return connection;

}

//关闭

    public static void Close(ResultSet rs,PreparedStatement ps,Connection conn){

try {

if (rs!=null){rs.close();}

if (ps!=null){ps.close();}

if (conn!=null){conn.close();}

}catch (SQLException e){

e.printStackTrace();

}

}

//测试

    public static void main(String[] args) {

System.out.print(Util.getConn());

}

}


3.编写增删改查方法

package dao;

import bean.Book;

import jdk.nashorn.internal.ir.WhileNode;

import util.Util;

import javax.sound.midi.Soundbank;

import java.math.BigDecimal;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.util.ArrayList;

import java.util.Scanner;

public class CURD {

    //系统输入

    Scanner scanner=new Scanner(System.in);

    //获取Connection

    Connection connection= Util.getConn();

    //添加图书

    public int AddBook(){

        //结果1是成功 0是失败

        int rs=0;

        //输入图书信息

        System.out.println("请输入图书编号!");

        int bookid=scanner.nextInt();

        System.out.println("请输入图书名称!");

        String bookname=scanner.next();

        System.out.println("请输入图书作者!");

        String bookauthor=scanner.next();

        System.out.println("请输入图书价格!");

        double bookprice=scanner.nextDouble();

        //sql语句

        String Sql="insert into book values(?,?,?,?)";

            try {

                PreparedStatement ps=connection.prepareStatement(Sql);

                ps.setInt(1,bookid);

                ps.setString(2,bookname);

                ps.setString(3,bookauthor);

                ps.setDouble(4,bookprice);

                //运行并返回结果

                rs=ps.executeUpdate();

                if(rs>0){

                    System.out.println("添加成功!------");

                }

            }catch (Exception e){

                e.printStackTrace();

            }

        return rs;

    }

    //查询所有图书

    public ArrayList<Book> getAllBook(){

        //Arraylist创建一个集合

        ArrayList<Book> arrayList=new ArrayList<Book>();

        //sql语句

        String Sql="select * from book";

        //结果集

        ResultSet rs=null;

        PreparedStatement ps=null;

        try {

            ps=connection.prepareStatement(Sql);

            rs=ps.executeQuery();

            //遍历结果集到book 在把book添加到ArrayList集合中

          while (rs.next()) {

              Book book=new Book();

              book.setBookID(rs.getInt(1));

              book.setBookName(rs.getString(2));

              book.setBookAuthor(rs.getString(3));

              book.setBookPrice(rs.getDouble(4));

              arrayList.add(book);

          }

            System.out.println(arrayList);

        }catch (Exception e){

            e.printStackTrace();

        }

        return arrayList;

    }

    //删除图书

    public int DelBookById(){

        //0失败 1成功

        int rs=0;

        //删除语句

        String Sql="delete from book where bookId=?";

        System.out.println("请输入要删除的图书编号!");

        //要删除的ID

        int delId=scanner.nextInt();

        PreparedStatement ps=null;

        try {

            ps=connection.prepareStatement(Sql);

            ps.setInt(1,delId);

            //执行删除

            rs=ps.executeUpdate();

            if (rs>0){

                System.out.println("删除成功!-----");

            }

        }catch (Exception e){

            e.printStackTrace();

        }

        return rs;

    }

    //修改图书

    public int updateBook(){

        int rs=0;

        System.out.println("请输入要修改的图书!");

        Book book=getOneBook();

        if(book==null){

            System.out.println("搜不到图书,请重试!");

        }else {

            String Sql="update book set bookName=?,bookAuthor=?,bookPrice=? where bookId=? or bookName=?";

            PreparedStatement ps=null;

            System.out.println("请输入图书名称!");

            String name=scanner.next();

            System.out.println("请输入图书作者!");

            String author=scanner.next();

            System.out.println("请输入图书价格!");

            double price=scanner.nextDouble();

            try {

                ps=connection.prepareStatement(Sql);

                ps.setString(1,name);

                ps.setString(2,author);

                ps.setDouble(3,price);

                ps.setInt(4,book.getBookID());

                ps.setString(5,book.getBookName());

                rs=ps.executeUpdate();

                if(rs>0){

                    System.out.println("修改成功!------");

                }

            }catch (Exception e){

                e.printStackTrace();

            }

        }

        return rs;

    }

    //查询单个图书

    public Book getOneBook(){

        Book book=new Book();

        String Sql="select * from book where bookId=? or bookName=?";

        System.out.println("请输入图书编号或者图书名字!");

        String sidorsname=scanner.next();

        //判断输入的是编号还是名字

        Boolean flag=true;

        try {

            new BigDecimal(sidorsname);

            flag=true;

        }catch (Exception e){

            flag=false;

        }

        PreparedStatement ps=null;

        ResultSet rs=null;

        try {

            ps=connection.prepareStatement(Sql);

            if(flag){

                ps.setInt(1,Integer.parseInt(sidorsname));

                ps.setString(2,"0");

            }else {

                ps.setInt(1,0);

                ps.setString(2,sidorsname);

            }

            rs=ps.executeQuery();

            while (rs.next()) {

                book.setBookID(rs.getInt(1));

                book.setBookName(rs.getString(2));

                book.setBookAuthor(rs.getString(3));

                book.setBookPrice(rs.getDouble(4));

            }

            System.out.println(book);

        }catch (Exception e){

            e.printStackTrace();

        }

        return book;

    }

    //模糊查询

    public ArrayList<Book> likeBook(){

        ArrayList<Book> arrayList=new ArrayList<>();

        //模糊查询语句的sql写法

        String Sql="Select * from book where bookName like ? or bookAuthor like ?";

        System.out.println("请输入图书关键词?");

        String word=scanner.next();

        PreparedStatement ps=null;

        ResultSet rs=null;

        try {

            ps=connection.prepareStatement(Sql);

            ps.setString(1,"%"+word+"%");

            ps.setString(2,"%"+word+"%");

            rs=ps.executeQuery();

            while (rs.next()){

                Book book=new Book();

                book.setBookID(rs.getInt(1));

                book.setBookName(rs.getString(2));

                book.setBookAuthor(rs.getString(3));

                book.setBookPrice(rs.getDouble(4));

                arrayList.add(book);

            }

            System.out.println(arrayList);

        }catch (Exception e){

            e.printStackTrace();

        }

        return arrayList;

    }

}

4.执行所写代码

package controller;

import dao.CURD;

import javax.sound.midi.Soundbank;

import javax.swing.text.rtf.RTFEditorKit;

import java.util.Scanner;

public class Start {

    private static  final String userName="admin";

    private static  final String password="123";

    Scanner scanner=new Scanner(System.in);

    CURD curd=new CURD();

    public void login(){

        String re="one";

        while (true){

            if(re.equals("one")||re.equals("r")||re.equals("R")){

                System.out.println("请输入用户名!");

                String name=scanner.next();

                System.out.println("请输入密码!");

                String pwd=scanner.next();

                    if(name.equals(userName)&&pwd.equals(password)){

                        A1();

                        break;

                    }else {

                        System.out.println("密码或用户名错误!请输入R重新登录-------");

                        re=scanner.next();

                    }

            }else {

                System.out.println("请输入R重新登录--------");

                re=scanner.next();

            }

        }

    }

    public void A1(){

        //String re="one";

        while (true){

            //if(re.equals("one")||re.equals("r")||re.equals("R")){

                System.out.println("请输入数字序号进行操作---------");

                System.out.println("1.查看所有图书\t2.添加图书\t3.删除图书\t4.查询图书\t5.修改图书\t6.关键查询\t7.退出系统");

                //不是数字会报错,需要抛异常

                int num=scanner.nextInt();

                //if(num<=0||num>7){

                  //  System.out.println("你输入的编号有误!请重新输入!");

                  //  A1();

                //}else {

                    switch (num){

                        case 1:

                            curd.getAllBook();

                            break;

                        case 2:

                            curd.AddBook();

                            break;

                        case 3:

                            curd.DelBookById();

                            break;

                        case 4:

                            curd.getOneBook();

                            break;

                        case 5:

                            curd.updateBook();

                            break;

                        case 6:

                            curd.likeBook();

                            break;

                        case 7:

                            System.out.println("正在退出系统----------");System.exit(0);

                            break;

                    }

                  // System.out.println("请输入r返回----------");

                    //re=scanner.next();

              // }

          // }else {

              // System.out.println("请输入r返回----------");

              // re=scanner.next();

            //}

        }

    }

    public static void main(String[] args) {

        Start start=new Start();

        System.out.println("欢迎来到图书管理系统-----------------");

        start.login();

    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容