首页 > 编程语言 >JavaAPI.05.JDBC的使用(改查)

JavaAPI.05.JDBC的使用(改查)

时间:2024-11-20 21:14:33浏览次数:3  
标签:语句 JavaAPI.05 JDBC description rs price title 改查 id

JDBC对象与方法

目录

JDBC对象与方法

Connection

PreparedStatement

ResultSet

JDBC修改操作:

SQL语句

根据id修改信息

JDBC查询操作:

SQL语句

模糊查询

集合承载查询

原始查询

区间查询(价格)

查询分六步走


Connection

Connection 接口表示应用程序与特定数据库之间的连接(会话)。

Connection con = DriverManager.getConnection(url, username, password);

PreparedStatement

PreparedStatement 用于执行预编译的SQL语句。预编译可以提高性能,并且有助于防止SQL注入攻击。

PreparedStatement ps= conn.prepareStatement("SELECT * FROM users WHERE id=?");

常用方法:

  • setXxx() 方法为预编译语句中的占位符设置值,例如 ps.setInt(1, id);

  • executeUpdate() 用于执行SQL更新语句,如 INSERT、UPDATE 或 DELETE 语句。==此方法返回一个整数值,表示受影响的行数。==

  • executeQuery() 用于执行SQL查询语句,如 SELECT 语句。==该方法返回一个 ResultSet 对象,包含查询的结果。==

ResultSet

ResultSet 用于存储由SQL查询语句返回的数据集。它提供了一种方式来遍历和读取结果表中的行。

通过调用 PreparedStatement 对象的 executeQuery() 方法来获取 ResultSet

ResultSet rs = pstmt.executeQuery();

使用 next() 方法移动到下一个行,使用 getXxx() 方法来读取列的值。

  • getXxx(int col) 通过顺序获取对应的值,从0开始

  • getXxx(String name) 通过列段名获取对应的值

JDBC修改操作:

  1. 数据库连接:使用JDBC连接数据库,包括配置数据库连接信息、加载数据库驱动、建立数据库连接,以及关闭数据库连接。

  2. SQL语句:使用SQL语句执行修改操作,例如INSERT、UPDATE、DELETE等。

  3. PreparedStatement:使用预编译的SQL语句进行修改操作,可以提高性能和安全性。

  4. 批量处理:JDBC支持批量处理操作,可以一次性执行多个修改操作,提高效率。

  5. 事务管理:使用JDBC事务管理机制,控制修改操作的原子性和一致性。

  6. 异常处理:处理可能出现的数据库操作异常,例如连接异常、SQL异常等。

  7. 数据库连接池:使用连接池管理数据库连接,提高系统的性能和资源利用率。

SQL语句

CREATE TABLE books (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    price DOUBLE NOT NULL,
    description VARCHAR(255)
);
INSERT INTO books (title, price, description) VALUES
('飞天遇记', 29.99, '飞天之路充满欢笑和激情。'),
('时钟大冒险', 24.99, '打开神奇的时钟,卷入奇幻浪漫的冒险。');

根据id修改信息

// 获取用户输入的新信息
System.out.print("请输入新的标题(当前标题:" + book.getTitle() + "):");
String nt = sc.next();
System.out.print("请输入新的价格(当前价格:" + book.getPrice() + "):");
double np = sc.nextDouble();
System.out.print("请输入新的描述(当前描述:" + book.getDescription() + "):");
String nd = sc.next();
try {
    // 获得连接
    Connection con = DBHelper.getCon();
    // 编写需要执行的sql语句
    String sql = "UPDATE books SET title = ?, price = ?, description = ? WHERE id = ?";
    // 通过sql语句与连接对象制出执行对象
    PreparedStatement ps = con.prepareStatement(sql);
    // 设置参数
    ps.setString(1, nt);
    ps.setDouble(2, np);
    ps.setString(3, nd);
    ps.setInt(4, bookId);
    // 执行更新
    int n = ps.executeUpdate();
    if (n > 0) {
        System.out.println("书籍信息已成功更新。");
    } else {
        System.out.println("书籍信息更新失败。");
    }
} catch (Exception e) {
    e.printStackTrace();
}

JDBC查询操作:

SQL语句

CREATE TABLE books (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    price DOUBLE NOT NULL,
    description VARCHAR(255)
);
INSERT INTO books (title, price, description) VALUES
('飞天遇记', 29.99, '飞天之路充满欢笑和激情。'),
('时钟大冒险', 24.99, '打开神奇的时钟,卷入奇幻浪漫的冒险。');

模糊查询

List<Books> bookList = new ArrayList<>();
try {
    // 获得连接
    Connection con = DBHelper.getCon();
    // 编写需要执行的sql语句
    String sql = "SELECT id, title, price, description FROM books WHERE title LIKE ?";
    // 通过sql语句与连接对象制出执行对象
    PreparedStatement ps = con.prepareStatement(sql);
    // 设置参数
    ps.setString(1, "%" + 关键字 + "%");
    // 执行语句 获得结果
    ResultSet rs = ps.executeQuery();
    // 处理结果集
    while (rs.next()) {
        int id = rs.getInt("id");
        String title = rs.getString("title");
        double price = rs.getDouble("price");
        String description = rs.getString("description");
        // 创建 Books 对象并设置属性
        Books book = new Books(id, title, price, description);
        // 将 Books 对象添加到列表中
        bookList.add(book);
    }
} catch (SQLException e) {
    e.printStackTrace();
}

集合承载查询

List<Books> bookList = new ArrayList<>();
try {
    // 获得连接
    Connection con = DBHelper.getCon();
    // 编写需要执行的sql语句
    String sql = "SELECT id, title, price, description FROM books";
    // 通过sql语句与连接对象制出执行对象
    PreparedStatement ps = con.prepareStatement(sql);
    // 执行语句 获得结果
    ResultSet rs = ps.executeQuery();
    // 处理结果集
    while (rs.next()) {
        int id = rs.getInt("id");
        String title = rs.getString("title");
        double price = rs.getDouble("price");
        String description = rs.getString("description");
        // 创建 Books 对象并设置属性
        Books book = new Books(id, title, price, description);
        // 将 Books 对象添加到列表中
        bookList.add(book);
    }
} catch (Exception e) {
    e.printStackTrace();
}

// 输出集合的长度
System.out.println("总共有 " + bookList.size() + " 本书");
// 允许用户输入想要查看的书的序号
Scanner scanner = new Scanner(System.in);
System.out.print("请输入您想查看的书的序号:");
int index = scanner.nextInt();
Books book = bookList.get(index);
System.out.println(book);

原始查询

try {
    // 获得连接
    Connection con = DBHelper.getCon();
    // 编写需要执行的sql语句
    String sql = "SELECT id, title, price, description FROM books";
    // 通过sql语句与连接对象制出执行对象
    PreparedStatement ps = con.prepareStatement(sql);
    // 执行语句 获得结果
    ResultSet rs = ps.executeQuery();
    // 处理结果集
    while (rs.next()) {
        int id = rs.getInt("id");
        String title = rs.getString("title");
        double price = rs.getDouble("price");
        String description = rs.getString("description");
        // 输出书籍信息
        System.out.println("ID: " + id + ", 标题: " + title + ", 价格: " + price + ", 描述: " + description);
    }
} catch (Exception e) {
    e.printStackTrace();
}

区间查询(价格)

List<Books> bookList = new ArrayList<>();
try {
    // 获得连接
    Connection con = DBHelper.getCon();
    // 编写需要执行的sql语句
    String sql = "SELECT id, title, price, description FROM books WHERE price BETWEEN ? AND ?";
    // 通过sql语句与连接对象制出执行对象
    PreparedStatement ps = con.prepareStatement(sql);
    // 设置参数
    ps.setDouble(1, 价格1);
    ps.setDouble(2, 价格2);
    // 执行语句 获得结果
    ResultSet rs = ps.executeQuery();
    // 处理结果集
    while (rs.next()) {
        int id = rs.getInt("id");
        String title = rs.getString("title");
        double price = rs.getDouble("price");
        String description = rs.getString("description");
        // 创建 Books 对象并设置属性
        Books book = new Books(id, title, price, description);
        // 将 Books 对象添加到列表中
        bookList.add(book);
    }
} catch (SQLException e) {
    e.printStackTrace();
}

查询分六步走

一.获得连接

二.编写需要执行的SQL语句

三.通过SQL语句连接对象制出执行对象

四.执行语句,获得结果

五.处理查询结果集

六。输出查询信息

标签:语句,JavaAPI.05,JDBC,description,rs,price,title,改查,id
From: https://blog.csdn.net/yyayyl_xzq/article/details/143898203

相关文章

  • JDBC讲解(第三篇)
    PreparedStatement接口防止SQL注入使用PreparedStatement接口是防止SQL注入的一种有效方法。SQL注入SQL注入是一种常见的网络攻击手段,攻击者通过在应用程序的输入字段中插入恶意的SQL代码,试图干扰或破坏正常的数据库操作。为了防止这种攻击,Java的JDBCAPI提供了PreparedStat......
  • JDBC
    总结:第一步:获取连接第二步:创建数据库对象第三步:执行语句查询语句用excuteQuery方法;SQL语句使用executeUpdate(“”);方法将jar包添加为库变成项目内的依赖//通过drivermanger来获取数据库连接try(Connectionconnection=DriverManager.getConnection("连接URL","用户名”,......
  • Python那些事儿 - 列表的增删改查
    第八回 登峰造极前言上一回给大家分享了列表的定义、索引、遍历以及列表推导式,这一回我们对列表的增删改查进行详细的讲解。让我们一起在知识的海洋里遨游吧!......
  • 实现一个增删改查系统的过程
    今天讲一下做一个增删改查系统的具体过程,案例为之前发布的随笔,企业erp生产管理系统。要完成整个系统的前端后端流程,配置系统环境是必不可少的,比如,我用到的环境有:语言环境:Java1.8数据库:mysql8.0用到的数据库图形化软件:Navicat由于项目是基于的SpingBoot,用到了Maven框架,用起来......
  • 使用SSM框架实现Pet表的增删改查功能效果案例
    1.查询功能@RequestMapping("/index")publicStringindex(Modelmodel){List<Pet>petList=petService.findPetList();model.addAttribute("petList",petList);return"index";}2.修改功能@Re......
  • 使用java程序模拟电影案例(增删改查)
    publicstaticvoidmain(String[]args){//完成电影案例//1、创建电影对象:定义电影类//2、创建一个电影操作对象:专门负责对电影数据进行业务处理(上架、下架、查询、封杀)MovieServicemovieService=newMovieService();movi......
  • JVM---JDBC案例是否真的打破了双亲委派机制的思考
    首先先来了解一下数据库驱动的加载过程:数据库驱动加载的过程我们先来看看Java中SPI定义的一个核心类:DriverManager,该类位于rt.jar包中,是Java中用于管理不同数据库厂商实现的驱动,同时这些各厂商实现的Driver驱动类,都继承自Java的核心类java.sql.Driver,如MySQL的com.mysql.c......
  • JDBC学习笔记(四)--JdbcUtil工具类的底层实现、解决 java.sql.SQLException: Operation
    目录(一)为什么要使用JdbcUtil工具类(二)创建一个prorperties文件1.在文件目录或src目录下,选择新建FIle2.创建properties文件 3.编写配置文件Java基础:反射4.获取资源的方式第一种第二种 ​编辑 第三种(一)为什么要使用JdbcUtil工具类问题:在编写jdbc的时候,在每一......
  • Vue 3实现一个带有左侧导航菜单的页面。该页面包含一个类似的增删改查(CRUD)功能模块。
    效果图:实现步骤:项目结构我们将构建一个简单的Vue3项目,包含以下内容:左侧导航栏:用于切换不同页面或模块。右侧内容区域:用于展示不同模块的内容(如小组成员管理)。代码实现1.创建主页面组件App.vue首先,在App.vue中定义左侧导航栏和内容区域:<template><divid="app"......
  • JDBC中数据库的连接与查询
    让我们仔细看看是怎么访问数据库的packagesql;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassConn{//创建类ConnConnectioncon;//声明Connection对象publicstaticStringuser;publicstat......