JDBC 中的 Statement 对象操作增删改查

此文章中所用的数据库信息、mysql 驱动等一切信息都建立在这篇文章之上
IDEA 实现 JDBC 操作 mysql

Statement 对象

Statement 是用来执行数据库的 SQL 语句的
通常执行增删改时使用 executeUpdate() 方法
执行查询时使用 executeQuery() 方法

封装 JDBCUtils 工具类

通过我们操作 JDBC 其中是有很多重复的代码的。
我们可以自己封装一个操作 JDBC 的工具类,降低代码之间的耦合度、提高开发效率,工具类代码如下

  1. 首先在项目的 src 目录下创建一个 db.properties 文件,存放连接数据库的基本信息
    在这里插入图片描述
  2. db.properties 文件如下
# 数据库驱动
driver=com.mysql.jdbc.Driver
# 数据库连接
url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=true
# 用户名
username=root
# 密码
password=123456
  1. JDBCUtils 代码如下:
package com.jdbc.test.util;

import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/**
 * JDBC 工具类
 *
 * @author: 南独酌酒 <211425401@126.com>
 * @date: 2020/9/22 20:31
 */
public class JDBCUtils {
    private static String driver = null;
    private static String url = null;
    private static String username = null;
    private static String password = null;

    // 静态代码块,项目一启动就会执行
    static {
        try {
            // 数据库连接创建一次即可
            InputStream in = JDBCUtils.class.getClassLoader().getResourceAsStream("db.properties");
            Properties properties = new Properties();
            properties.load(in);  // 加载 db.properties 文件
            // 从 db.properties 文件中读取属性连接数据库的信息
            driver = properties.getProperty("driver");
            url = properties.getProperty("url");
            username = properties.getProperty("username");
            password = properties.getProperty("password");
        } catch (Exception e) {
            e.printStackTrace();
            System.err.println(e.getMessage());
        }
    }

    /**
     * 提供统一的用于创建数据库连接的方法
     *
     * @return 数据库连接对象  Connection
     * @throws SQLException 可能抛出的异常
     */
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url, username, password);
    }

    /**
     * 提供统一的用于释放数据库连接的方法
     *
     * @param conn 数据库连接对象
     * @param st   执行 sql 语句的对象
     * @param rs   获取 sql 返回结果的对象
     */
    public static void release(Connection conn, Statement st, ResultSet rs) {
        try {
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
            System.err.println(e.getMessage());
        }
        try {
            if (st != null) {
                st.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
            System.err.println(e.getMessage());
        }
        try {
            if (rs != null) {
                rs.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
            System.err.println(e.getMessage());
        }
    }
}

通过 JDBCUtils 简化增删改查代码

新增测试

package com.jdbc.test;

import com.jdbc.test.util.JDBCUtils;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 测试 JDBC 的插入操作
 *
 * @author: 南独酌酒 <211425401@126.com>
 * @date: 2020/9/22 20:45
 */
public class JDBCTestInsert {
    public static void main(String[] args) {
        Connection conn = null;
        Statement st = null;
        ResultSet rs = null;

        try {
            conn = JDBCUtils.getConnection();
            st = conn.createStatement();
            String sql = "INSERT INTO jdbctest(`id`,`username`,`password`,`email`,`birthday`)" +
                    "VALUES(4, '小龙', '123456', 'xllzs@qq.com', '2020-09-22')";
            int result = st.executeUpdate(sql);
            if (result > 0) {
                System.out.println("新增成功");
            } else {
                System.out.println("新增失败");
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.err.println(e.getMessage());
        } finally {
            JDBCUtils.release(conn, st, rs);
        }
    }
}

修改测试

package com.jdbc.test;

import com.jdbc.test.util.JDBCUtils;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * @author: 南独酌酒 <211425401@126.com>
 * @date: 2020/9/22 20:51
 */
public class JDBCTestUpdate {
    public static void main(String[] args) {
        Connection conn = null;
        Statement st = null;
        ResultSet rs = null;

        try {
            conn = JDBCUtils.getConnection();
            st = conn.createStatement();
            String sql = "UPDATE jdbctest SET username = 'zhangsan',`password` = '666666' WHERE id = 1";
            int result = st.executeUpdate(sql);
            if (result > 0) {
                System.out.println("更新成功");
            } else {
                System.out.println("更新失败");
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.err.println(e.getMessage());
        } finally {
            JDBCUtils.release(conn, st, rs);
        }
    }
}

删除测试

package com.jdbc.test;

import com.jdbc.test.util.JDBCUtils;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * @author: 南独酌酒 <211425401@126.com>
 * @date: 2020/9/22 20:53
 */
public class JDBCTestDelete {
    public static void main(String[] args) {
        Connection conn = null;
        Statement st = null;
        ResultSet rs = null;

        try {
            conn = JDBCUtils.getConnection();
            st = conn.createStatement();
            String sql = "DELETE FROM jdbctest WHERE id = 1";
            int result = st.executeUpdate(sql);
            if (result > 0) {
                System.out.println("删除成功");
            } else {
                System.out.println("删除失败");
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.err.println(e.getMessage());
        } finally {
            JDBCUtils.release(conn, st, rs);
        }
    }
}

查询测试

package com.jdbc.test;

import com.jdbc.test.util.JDBCUtils;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * @author: 南独酌酒 <211425401@126.com>
 * @date: 2020/9/22 20:54
 */
public class JDBCTestSelect {
    public static void main(String[] args) {
        Connection conn = null;
        Statement st = null;
        ResultSet rs = null;

        try {
            conn = JDBCUtils.getConnection();
            st = conn.createStatement();
            String sql = "select username from jdbctest WHERE id = 4";
            rs = st.executeQuery(sql);
            while (rs.next()) {
                System.out.println("查询的名称为:" + rs.getString("username"));
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.err.println(e.getMessage());
        } finally {
            JDBCUtils.release(conn, st, rs);
        }
    }
}
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值