java连接oracle数据库实现增删改查

java连接oracle数据库实现增删改查

实现效果如图:
在这里插入图片描述

数据库建表语句如下:

create table book                                                        --创建图书表
(id int primary key not null,
isbn int,
bookName varchar2(30),
bookClassify varchar2(30),
authorId int,
publisherId int,
wordNumber int,
issueYear int,
price int);

java连接数据库实现增删改查代码如下:


package com;
import java.sql.*;
import java.util.Scanner;


public class testOracle {

    static final String JDBC_DRIVER = "oracle.jdbc.OracleDriver";
    static final String DB_URL = "jdbc:oracle:thin:@localhost:1521:orcl";

    // 数据库的用户名与密码,需要根据自己的设置
    static final String USER = "ceshi";
    static final String PASS = "13579";
    Connection conn = null;
    public void find() {
        try {
            Class.forName(JDBC_DRIVER);
        } catch (ClassNotFoundException e1) {
            e1.printStackTrace();
        }
        // 打开链接
        System.out.println("连接数据库...");
        System.out.println("查询数据如下:");
        try {
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
        try {
            String sql;
            sql = "SELECT * FROM book";
            PreparedStatement stmt = conn.prepareStatement(sql);
            ResultSet rs = stmt.executeQuery(sql);
            // 展开结果集数据库
            while (rs.next()) {
                // 通过字段检索
                int id = rs.getInt("id");
                int isbn = rs.getInt("isbn");
                String bookName = rs.getString("bookName");
                String bookClassify = rs.getString("bookClassify");
                int authorId = rs.getInt("authorId");
                int publisherId = rs.getInt("publisherId");
                int wordNumber = rs.getInt("wordNumber");
                int issueYear = rs.getInt("issueYear");
                int price = rs.getInt("price");
                System.out.println("ID: \t" + "编号: \t\t" + "图书名: \t\t" + "图书分类: \t\t" + "作者ID:\t \t" + "出版社ID: \t\t" + "字数: \t\t" + " 发行年份: \t" + " 价格: \t");
                System.out.print(id + "\t\t");
                System.out.print(isbn + "\t\t\t");
                System.out.print(bookName + "\t\t");
                System.out.print(bookClassify + "\t\t\t\t");
                System.out.print(authorId + "\t\t\t");
                System.out.print(publisherId + "\t\t\t\t");
                System.out.print(wordNumber + "\t\t\t");
                System.out.print(issueYear + "\t\t");
                System.out.println(price + "\t\t");
                System.out.println("--------------------------------------------------------------------------------------------------------------------------------");
                System.out.println("查询成功");
                System.out.print("\n");
            }
            // 完成后关闭
            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException se) {
            // 处理 JDBC 错误
            se.printStackTrace();
        }
    }


    public void alter() {
        try {
            Class.forName(JDBC_DRIVER);
        } catch (ClassNotFoundException e1) {
            e1.printStackTrace();
        }
        // 打开链接
        System.out.println("连接数据库...");
        System.out.println("正在修改数据...");
        try {
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
        } catch (SQLException e1) {
            e1.printStackTrace();
        }

        try {
            System.out.print("输入修改图书id:");
            Scanner al = new Scanner(System.in);
            int id_alt = al.nextInt();
            int isbn_alt, publisherId_alt, authorId_alt, wordNumber_alt, issueYear_alt, price_alt;
            String bookName_alt, bookClassify_alt;

            System.out.println("isbn编码:");
            isbn_alt = al.nextInt();
            al.nextLine();                     //解决nextInt();和nextLine();连用问题
            System.out.println("图书名:");
            bookName_alt = al.nextLine();
            System.out.println("图书分类:");
            bookClassify_alt = al.nextLine();
            System.out.println("作者id:");
            authorId_alt = al.nextInt();
            System.out.println(" 出版社id:");
            publisherId_alt = al.nextInt();
            System.out.println("字数:");
            wordNumber_alt = al.nextInt();
            System.out.println("发行年份:");
            issueYear_alt = al.nextInt();
            System.out.println("价格:");
            price_alt = al.nextInt();
            al.close();

            String sqlupd = "update book set id=?, isbn=?,bookName=?,bookClassify=?, authorId=?,publisherId=?,wordNumber=?,issueYear=? ,price=? where id=? ";
            PreparedStatement ststupd = conn.prepareStatement(sqlupd);
            ststupd.setInt(1, id_alt);//索引参数1代表着sql中的第一个?号,也就是条件是id为4
            ststupd.setInt(2, isbn_alt);//ISBN编号
            ststupd.setString(3, bookName_alt);//图书名
            ststupd.setString(4, bookClassify_alt);//图书分类
            ststupd.setInt(5, authorId_alt);//作者ID
            ststupd.setInt(6, publisherId_alt);//出版社ID
            ststupd.setInt(7, wordNumber_alt);//字数
            ststupd.setInt(8, issueYear_alt);//发行年份
            ststupd.setInt(9, price_alt);//价格
            ststupd.setInt(10, id_alt);//id

            ststupd.executeUpdate();
            System.out.println("修改成功");
            ststupd.close();
            conn.close();
        } catch (SQLException se) {
            // 处理 JDBC 错误
            se.printStackTrace();
        }
    }

    public void add() {
        try {
            Class.forName(JDBC_DRIVER);
        } catch (ClassNotFoundException e1) {
            e1.printStackTrace();
        }
        // 打开链接
        System.out.println("连接数据库...");
        System.out.println("正在增加记录...");
        try {
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
        } catch (SQLException e1) {
            e1.printStackTrace();
        }

        try {
            String sqladd = "insert into book  values (?,?,?,?,?,?,?,?,?)";
            PreparedStatement statadd = conn.prepareStatement(sqladd);
            Scanner ad = new Scanner(System.in);
            int id_add, isbn_add, publisherId_add, authorId_add, wordNumber_add, issueYear_add, price_add;
            String bookName_add, bookClassify_add;
            System.out.println("输入要增加的完整记录:");
            System.out.println("id:");
            id_add = ad.nextInt();
            System.out.println("isbn编码:");
            isbn_add = ad.nextInt();
            ad.nextLine();                   //解决nextInt();和nextLine();连用问题
            System.out.println("图书名:");
            bookName_add = ad.nextLine();
            System.out.println("图书分类:");
            bookClassify_add = ad.nextLine();
            System.out.println("作者id:");
            authorId_add = ad.nextInt();
            System.out.println(" 出版社id:");
            publisherId_add = ad.nextInt();
            System.out.println("字数:");
            wordNumber_add = ad.nextInt();
            System.out.println("发行年份:");
            issueYear_add = ad.nextInt();
            System.out.println("价格:");
            price_add = ad.nextInt();
            ad.close();

            statadd.setInt(1, id_add);//索引参数1代表着sql中的第一个?号,也就是条件是id为4
            statadd.setInt(2, isbn_add);//ISBN编号
            statadd.setString(3, bookName_add);//图书名
            statadd.setString(4, bookClassify_add);//图书分类
            statadd.setInt(5, authorId_add);//作者ID
            statadd.setInt(6, publisherId_add);//出版社ID
            statadd.setInt(7, wordNumber_add);//字数
            statadd.setInt(8, issueYear_add);//发行年份
            statadd.setInt(9, price_add);//价格
            statadd.executeUpdate();
            System.out.println("增加成功");
            statadd.close();
            conn.close();
        } catch (SQLException se) {
            // 处理 JDBC 错误
            se.printStackTrace();
        }
    }

    public void delect() {
        try {
            Class.forName(JDBC_DRIVER);
        } catch (ClassNotFoundException e1) {
            e1.printStackTrace();
        }
        // 打开链接
        System.out.println("连接数据库...");
        try {
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
        try {
            String sqldel = "delete from book  where  id=?";
            PreparedStatement ststdel = conn.prepareStatement(sqldel);
            Scanner del = new Scanner(System.in);
            int id_del;
            System.out.println("请输入要删除的图书id:");
            id_del = del.nextInt();
            ststdel.setInt(1, id_del);
            ststdel.executeUpdate();
            System.out.println("删除成功");
            ststdel.close();
            conn.close();
        } catch (SQLException se) {
            // 处理 JDBC 错误
            se.printStackTrace();
        }
    }

    public static void main(String[] args) {
        System.out.println("1.查询\t2.修改\t3.删除\t4.增加");
        Scanner in = new Scanner(System.in);
        System.out.print("请输入功能数字:");
        int input = in.nextInt();
        testOracle test = new testOracle();
        if (input == 1) {
            test.find();
        } else if (input == 2) {
            test.alter();
        } else if (input == 3) {
            test.delect();
        } else if (input == 4) {
            test.add();
        } else {
            System.out.print("输入错误!");
        }
        in.close();
    }
}


  • 11
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值