20.JDBC的基本使用

JDBC使用步骤:

  1. 在程序中导入想要连接的数据库的驱动包,由数据库厂商提供

  2. 加载驱动:Class.forName(“对应的数据库驱动类名”),如:oracle.jdbc.OracleDriver

    • 加载驱动类后,其static块内代码被执行,会创建一个自身的实例,然后将实例交给DriverManager管理
  3. 建立连接:Connection conn = DriverManager.getConnection(url,username,password);

    • java提供的DriverManager类根据连接参数找到与之匹配的Driver对象,调用其方法获取连接对象

    • url:数据库的连接参数,如:“jdbc:oracle:thin:@localhost:1521:orcl”

    • username:用户名,如:“system”

    • password:密码,如:“admin”

  4. 创建语句对象:Statement st = conn.createStatement();

  5. 执行SQL语句:st.execute(sql)|st.executeQuery(sql)|st.executeUpdate(sql)

    • 三个重要的方法:sql为要执行SQL语句

    • boolean execute(String sql):执行任何SQL,常用于执行DDL,如果没有异常则语句执行成功,返回ture则表示有结果集,false表示无结果集

    • ResultSet executeQuery(String sql):只能执行DQL语句,执行成功则返回查询出的结果集,失败则发生异常

    • int executeUpdate(String sql):常用于执行DML语句,执行成功返回该SQL语句执行后表中受影响的行数,失败则发生异常

  6. 处理结果集:ResultSet rs = st.executeQuery(sql);

    • 返回的ResultSet对象,代表二维查询结果,使用while遍历处理
  7. 关闭连接:conn.close();

演示:JDBC的基本使用

package demo01;

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

public class Demo01 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {

        //1.加载Oracle驱动
        Class.forName("oracle.jdbc.OracleDriver");

        //2.从驱动管理中获取Oracle的连接对象
        String url = "jdbc:oracle:thin:@localhost:1521:orcl";
        String user = "system";
        String password = "admin";
        Connection conn = DriverManager.getConnection(url, user, password);

        //输出conn引用对象的实际类型,证明驱动程序提供了Connection接口的实现类
        System.out.println(conn.getClass());

        //3.创建"Statement语句"对象
        Statement st = conn.createStatement();

        //4.1执行SQL(DDL),不要分号
        String ddl = "CREATE TABLE demo(id NUMBER(7),name VARCHAR(100))";
        boolean b = st.execute(ddl);
        System.out.println(b);
        //4.2执行DML
        String dml1 = "INSERT INTO demo(id,name) VALUES(1,'Tom')";
        int n1 = st.executeUpdate(dml1);
        System.out.println(n1);

        String dml2 = "UPDATE demo SET name='Jack' WHERE id=1";
        int n2 = st.executeUpdate(dml2);
        System.out.println(n2);
        
        String dml3 = "DELETE demo WHERE id=1";
        int n3 = st.executeUpdate(dml3);
        System.out.println(n3);

        //5.关闭连接
        conn.close();
    }
}

处理结果集ResultSet

  • ResultSet rs = st.executeQuery(dql);

    • ResultSet代表DQL查询结果,是一个二维表,其内部维护了一个读取数据的游标

    • 天生需要搭配while循环进行遍历

在这里插入图片描述

  • rs.next():移动游标到下一个位置,并且检查当前位置是否有数据,如果有数据返回true

  • rs.getXXX(String 列名):从结果集中获取游标所在行中指定列的值

    • XXX为数据的类型,如:rs.getInt(“id”),rs.getString(“name”)

    • 这类方法也有重载的方法,要求传入列号,来获取对应的值,如:rs.getInt(1),rs.getString(2)

演示:ResultSet

package demo;

import java.sql.*;

public class Demo {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.加载驱动类
        Class.forName("oracle.jdbc.OracleDriver");

        //2.获取连接
        String url = "jdbc:oracle:thin:@localhost:1521:orcl";
        String user = "system";
        String password = "admin";
        Connection conn = DriverManager.getConnection(url, user, password);

        //3.创建语句对象
        Statement st = conn.createStatement();

        //4.执行sql语句(DQL)
        String dql = "SELECT * FROM demo";
        ResultSet rs = st.executeQuery(dql);

        //5.处理结果集
        while (rs.next()) {
            int id = rs.getInt("id");
            String name = rs.getString("name");
            int age = rs.getInt(3);
            System.out.println(id + "," + name + "," + age);
        }
		
		//6.关闭连接
        conn.close();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值