JDBC整体操作流程 第一章 拆分流程

一 记一下整体运作流程

1.导入驱动jar包

2.注册驱动

3.获取数据库连接对象   (connection)

4.定义SQL语句

5.获取执行SQL语句的对象   (statement)

6.执行SQL语句,如有返回结果则需接受返回结果

7.处理结果集

8.释放资源

二 代码示范

只有如图所示的几个步骤

import java.sql.*;

public class Test3 {
    
    
    public static void main(String[] args) {
    
    
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;
        try {
    
    
            //注册驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/shop?characterEncoding=utf8&useSSL=false&serverTimezone=UTC";
            String user = "root";
            String pas = "root";
            // 获取连接对象
            connection = DriverManager.getConnection(url,user,pas);
            // 编写SQL语句
            String sql = "SELECT * FROM t_person";
            // 获取SQL执行对象 createStatement
            statement = connection.createStatement();
            // 执行SQL语句
            resultSet = statement.executeQuery(sql);
            // 处理结果集
            while (resultSet.next()){
    
     // 如果有下一个就为真(一行一行的取出)
                System.out.println(resultSet.getInt("person_id")+"\t"+
                        resultSet.getString("person_name")+
                        resultSet.getInt("age")+"\t"+
                        resultSet.getString("sex")+"\t"+
                        resultSet.getString("mobile")+"\t"+
                        resultSet.getString("address")+"\t"
                );
            }
        } catch (ClassNotFoundException e) {
    
    
            e.printStackTrace();
        } catch (SQLException throwables) {
    
    
            throwables.printStackTrace();
        }finally {
    
    
            // 释放资源
            if (resultSet != null){
    
    
                try {
    
    
                    resultSet.close();
                } catch (SQLException e) {
    
    
                    e.printStackTrace();
                }
            }
            if (statement != null){
    
    
                try {
    
    
                    statement.close();
                } catch (SQLException e) {
    
    
                    e.printStackTrace();
                }
            }
            if (connection != null){
    
    
                try {
    
    
                    connection.close();
                } catch (SQLException e) {
    
    
                    e.printStackTrace();
                }
            }
        }
    }
}

三 基本概念

最关键的是,获取一个链接
DriverManager,驱动管理对象
1.注册驱动

2.获取数据库连接

静态方法:getconnection(URL,用户名,密码)

URL:指定连接路径

jdbc:mysql://ip地址(域名):端口号//数据库名称

String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=UTC";
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;

1 Connection connection = null;

链接对象connection

1、获取执行SQL语句的对象 Statement createStatement()
创建一个Statement对象,用于将SQL语句发送到数据库。 PreparedStatement
prepareStatement(String
sql)创建一个PreparedStatement对象,用于将参数化的SQL语句发送到数据库。(这种方式用于解决SQL注入问题)
2、管理事务 开启事务:setAutoCommit(boolean autoCommit) :调用该方法设置参数为false,即开启事务
提交事务:commit() 回滚事务:rollback()

2 Statement statement = null;

执行sql语句的对象(Statement:用于执行静态SQL语句并返回其生成的结果的对象。 常用的方法:
int executeUpdate(String sql):执行DML(表中记录的操作)语句,返回一个int值这个int值代表的就是这个SQL语句生效后,该表中受这句SQL语句影响的记录的行数。如果返回值>0,则表示执行成功,反之则失败。执行DDL语句,不会返回任何内容(因为返回值类型是int,所以会返回值0),当然在实际开发中我们很少会通过Java语言去操作DDL语句。
ResultSet executeQuery(String sql):执行DQL(查询)语句,返回单个ResultSet对象。

扫描二维码关注公众号,回复: 16372491 查看本文章

3 ResultSet resultSet = null;

执行DQL语句时,需要用Statement对象中的executeQuery()方法,该方法返回一个ResultSet集合。这个方法将查询到的结果放到ResultSet集合中,集合里有个光标,默认情况下光标指向字段行。使用next()方法后,光标会移动到当前行的下一行。读一个

get数据类型(参数)方法,用来获取当前行中某一列的值。
既可以通过列的编号(从1开始)来获取,也可以通过列的字段名来获取值参数int表示通过列的编号来取值,参数String表示通过列的字段名来获取值

while(resultset.next){
    
    
    get方法();
    //    参数有两种一种是通过下标获取,一种通过名称获取
}

猜你喜欢

转载自blog.csdn.net/CNMBZY/article/details/130662417