jdbc介绍Statement使用

一.JDBC介绍

JDBC的目标是使应用程序开发人员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统

  1. DriverManager(java.sql.DriverManager)
    装载驱动程序,管理应用程序与驱动程序之间的连接
  2. Driver(由驱动程序开放式提供)
    将应用程序的API请求转换为特定的数据库请求
  3. Connection(java.sql.Connection)
    将应用程序连接到特定的数据库
  4. Statement
    在一个给定的连接中,用于执行一个数据库SQL语句u
  5. ResultSet
    SQL语句完成 后,返回的数据库结果集(包括行、列)

二.JDBC操作

  1. 加载驱动
    Class.forName(“com.mysql.cj.jdbc.Driver”);
  2. 创建与数据库的连接
    Conn conn = DriverManager.getConnection(“jdbc:mysql:///demo04?characterEncoding=utf8&useSSL=false&serverTimezone=UTC”,“root”,“root”);
    1. url:jdbc:mysql:///testcharacterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
    2. username:root
    3. password:root
  3. 创建通道(Statement)
    Statement stmt = conn.createStatement();
  4. 执行SQL指令
    1. executeUpdate():主要执行DML语句(insert,update,delete)
      该方法返回该SQL语句影响的行数,随后直接转入第6步,关闭资源。
    2. executeQuery():主要执行DQL语句(select语句)
      该方法会返回一个结果集,此时执行第5步,对结果集进行处理,然后再关闭资源
  5. 处理结果集
    通过ResultSet来获得查询结果
    1. ResultSet实例最初定位在结果集第一行之前,通过next()方法判断是否有该行记录,如果该行记录存在,该方法返回true,如果不存在返回false.
    2. ResultSet中存在大量的 getXXX()方法,用于获取值。可以同查询结果的列名获取值,或者查询的结果的列的位置(1,2,3…)来获取值
    3. while (rs.next()){
      String users = rs.getString(“users”);
      String passwords = rs.getString(“passwords”);
      System.out.println(users+" "+passwords);
      }
  6. 关闭资源
    一定注意关闭资源的顺序,先关闭ResultSet,Statement,Connection

三.Statement和ResultSet

  1. 利用Statement执行查询
 Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {
            //1.加载驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.获取链接
            conn = DriverManager.getConnection("jdbc:mysql:///demo04?characterEncoding=utf8&useSSL=false&serverTimezone=UTC","root","root");
            //3.创建通道
            stmt = conn.createStatement();
            //4.执行sql
            rs = stmt.executeQuery("SELECT  *  FROM user_table");
            //5.处理结果集
            while (rs.next()){
                String users = rs.getString("users");
                String passwords = rs.getString("passwords");
                System.out.println(users+" "+passwords);
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {//6.关闭资源
            try {
                if(null!=rs){
                    rs.close();
                }
                if(null!=stmt){
                    stmt.close();
                }
                if(null!=conn){
                    conn.close();
                }
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
  1. 利用Statement实现增删改
package com.openlab.test;

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

public class Test06 {
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt  = null;
        try {
            //1.加载驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.获取链接
            conn = DriverManager.getConnection("jdbc:mysql:///demo04?characterEncoding=utf8&useSSL=false&serverTimezone=UTC","root","root");
            //3.创建通道
            stmt = conn.createStatement();
            //4.执行sql并接受返回的结果
            int rows = stmt.executeUpdate("INSERT INTO student VALUES(119,'白豆芽','男','2001-01-01 11:11:14',3223)");
            System.out.println(rows);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e){
            e.printStackTrace();
        }finally {
            try {//5.关闭资源
                if(null!=stmt){
                    stmt.close();
                }
                if(null!=conn){
                    conn.close();
                }
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值