JDBC简介

什么是JDBC

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识
JDBC 是java database connectivity的缩写,是SUN公司提供的一套操作数据库的标准规范。它相当于java和数据库的桥梁。各大数据库厂商会提供数据库驱动实现标准规范,即API。
JDBC和数据库驱动的联系如下:
在这里插入图片描述

JDBC的典型用法

JDBC常用接口

JDBC有四个核心接口,分别如下
1.DriverManager:用于注册驱动并连接创建符合该驱动的数据库连接
2.Connection:表示与数据库创建的连接对象,即一个connection对应着一个会话,相当于在mysql workbench中打开了一个连接
3.Statement:操作数据库sql语句的对象,有两个实现类,statement和prepareStatement ,稍后介绍
4.ResultSet:从数据库中查询的结果集
数据库通过这4个接口实现java对数据库的增删改查

JDBC编程步骤

1.注册驱动
2.获取连接Connection
3.得到执行sql语句的对象statement
4.执行sql语句,并返回结果
5.处理结果
6.关闭connection

代码展示

// An highlighted block
ackage com.yan.jdbc;

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

/**
 * 使用JDBC技术实现查询数据库数据,并显示在控制台中
 *
 */
public class JDBC_Test01 {

    public static void main(String[] args) throws Exception {
        //注册驱动
        Class.forName("com.mysql.jdbc.Driver");

        //获取连接Connection
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/Y", "root", "Y");
        //得到执行sequel语句的对象Statement
        Statement stmt = conn.createStatement();
        //执行sql语句,并返回结果
        ResultSet rs = stmt.executeQuery("select id,name,password,email,birthday from t_user");

        //处理结果 
        while(rs.next()){ 
            System.out.println(rs.getObject("id"));
            System.out.println(rs.getObject("name"));
            System.out.println(rs.getObject("password"));
            System.out.println(rs.getObject("email"));
            System.out.println(rs.getObject("birthday"));
            System.out.println("-----------------");
        }

        //关闭资源
        rs.close();
        stmt.close();
        conn.close();
    }    

}

类,接口详解

DriverManager
主要作用是创建连接,其中getConnection()获取数据库的连接
Statement 接口
作用是操作sql语句,并返回响应结果的对象
常用方法有:

  • Resultset executeQuery(String sql)格局查询语句返回结果集,只能执行select语句。
  • int executeUpdate(String sql)根据执行的DML(insert update delete)语句,返回收影响的行数
  • boolean execute(String sql) 此方法可以执行任意的sql语句,返回boolean值。晋档执行select语句,且有返回结果true,其余都返回false
public class CRUD_Test01 {

    @Test
    public void testInsert() throws Exception{
        //注册驱动
        Class.forName("com.mysql.jdbc.Driver");

        //获取连接Connection
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/monkey1024", "root", "monkey1024");
        //得到执行sequel语句的对象Statement
        Statement stmt = conn.createStatement();
        //执行sql语句,并返回结果
        int flag = stmt.executeUpdate("insert into t_user(name,password,email,birthday) values('cat','123456','cat@163.com','1993-11-11')");

        //处理结果 
        if(flag > 0){
            System.out.println("成功");
        }

        //关闭资源
        stmt.close();
        conn.close();
    }

    @Test
    public void testUpdate() throws Exception{
        //注册驱动
        Class.forName("com.mysql.jdbc.Driver");

        //获取连接Connection
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/monkey1024", "root", "monkey1024");
        //得到执行sequel语句的对象Statement
        Statement stmt = conn.createStatement();
        //执行sql语句,并返回结果
        int flag = stmt.executeUpdate("update t_user set password=123 where name='cat'");

        //处理结果 
        if(flag > 0){
            System.out.println("成功");
        }

        //关闭资源
        stmt.close();
        conn.close();
    }

    @Test
    public void testDelete() throws Exception{
        //注册驱动
        Class.forName("com.mysql.jdbc.Driver");

        //获取连接Connection
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/monkey1024", "root", "monkey1024");
        //得到执行sequel语句的对象Statement
        Statement stmt = conn.createStatement();
        //执行sql语句,并返回结果
        int flag = stmt.executeUpdate("delete from t_user where name='cat';");

        //处理结果 
        if(flag > 0){
            System.out.println("成功");
        }

        //关闭资源
        stmt.close();
        conn.close();
    }
}

ResultSet
该接口的作用是用来封装结果集

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值