JDBC

JDBC

一、JDBC理解

(一)概念

Java Database Connectivity  Java连接数据库的技术 独立于数据库系统、通用的存取数据的一组接口(API)

这一组接口在jdk中已经定义好。但是这些接口没有实现代码。具体的实现代码是通过各个数据库厂商自己提供。

(二)本质:

独立于数据库系统、通用的存取数据的一组接口(API)

(三)作用

1.JDBC为连接不同的数据库 提供了统一路径,为开发者屏蔽了细节问题
2.开发者只需要面向这一组API(接口)即可,提高开发效率
3.连接不同的数据库,需要不同的数据库厂商提供不同的驱动即可
没有JDBC 连接数据库

image

 有了JDBC

image

二、JDBC的快速入门

(一)涉及的API

MySQL 驱动下载:https://dev.mysql.com/downloads/connector/j/

涉及的API(java.sql.* 或 javax.sql.*)
	1. DriverManager类  管理不同的驱动
	2. Connection 接口  应用和数据库的连接
	3. Statement 接口   用于执行sql语句 
	4. ResultSet 接口   保存查询的结果

(二)使用

整体步骤:
1.注册驱动
2.获取数据库连接
3.创建执行对象
4.执行sql代码
5.释放资源

① 注册驱动(加载驱动)  下载驱动包

image

② 获取连接对象        url/用户名/密码

image

③ 创建命令对象   

image

④ 执行sql命令 返回结果
	1. int update = statement.executeUpdate(sql); // 执行增 删 改
	2. ResultSet rs = statement.executeQuery(sql);  // 执行查询

⑤ 处理结果

image

⑥ 释放资源

image

完整代码

package com.offcn.test;

import com.mysql.jdbc.Driver;

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

public class TestJdbc {

    /**
     * 整体步骤:
     * 1.注册驱动
     * 2.获取数据库连接 数据库连接地址   数据库登录名  数据库登录密码
     * 3.创建执行对象
     * 4.执行sql代码
     * 5.释放资源
     * @param args
     */
    public static void main(String[] args) throws SQLException {
        //add();
        //delete();
    }
	
    //删除
    public static void delete() throws SQLException {
        DriverManager.registerDriver(new Driver());
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/day10", "root", "root");
        Statement statement = connection.createStatement();
        statement.executeUpdate("delete from user where id = 1");
        statement.close();
        connection.close();
    }
	
    //增加
    public static void add() throws SQLException {
        DriverManager.registerDriver(new Driver());
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/day10", "root", "root");
        Statement statement = connection.createStatement();
        statement.executeUpdate("insert into user values(null,'张三','123',20,'男')");
        statement.close();
        connection.close();
    }
    
    public static void select() throws SQLException {
        DriverManager.registerDriver(new Driver());
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/day10", "root", "root");
        Statement statement = connection.createStatement();
        //ResultSet resultSet = statement.executeQuery("select * from user where id = 2");
        ResultSet resultSet = statement.executeQuery("select * from user");
        //解析结果集
        while(resultSet.next()){
            //提取光标所在上的数据
            int id = resultSet.getInt("id");
            int age = resultSet.getInt("age");
            String name = resultSet.getString("name");
            String password = resultSet.getString("password");
            String sex = resultSet.getString("sex");
            System.out.println(id+"	"+age+"	"+name+"	"+password+"	"+sex);
        }
        //先开后关 后开先关
        resultSet.close();
        statement.close();
        connection.close();
    }
}

原文地址:https://www.cnblogs.com/conglingkaishi/p/15232235.html