【MySQL】JDBC

目录

1.JDBC

2.Java代码操作MySQL

2.1前置条件

2.2常用操作

2.2.1插入

2.2.2删除

2.2.3查询


1.JDBC

概念:JDBC,即Java Database Connectivity( java数据库连接 )。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问。

数据库驱动包:不同的数据库对应不同的编程语言,提供了不同的数据库驱动包,如:MySQL提供了Java的驱动包mysql-connector-java,需要基于Java操作MySQL即需要该驱动包。同样的,要基于Java操作Oracle数据库则需要Oracle的数据库驱动包ojdbc。

2.Java代码操作MySQL

2.1前置条件

1> 创建个普通Java项目并创建lib库:

【MySQL】JDBC_第1张图片

2> 下载MySQL驱动包,作为项目的依赖;

可以通过以下渠道下载:

1)Oracle官方网站

2)GitHub

3)中央仓库(下面下载以该渠道为例)

      这里提供一个常用的中央仓库​​​​​​

在中央仓库中搜索mysql并选择第二个:

【MySQL】JDBC_第2张图片

找到自己需要的版本,这里以5.1.49版本为例: 

【MySQL】JDBC_第3张图片

点击 jar 即可开始下载:

【MySQL】JDBC_第4张图片

3> 将驱动包导入到项目中;

找到jar包位置,复制jar包到项目的lib目录中:

右键放jar包的目录,点击 Add as library:

【MySQL】JDBC_第5张图片

准备工作就绪,接下来就可以编写代码了~~

2.2常用操作

使用步骤:1. 创建数据库连接Connection;
                  2. 创建操作命令Statement ;
                  3. 使用操作命令来执行SQL;
                  4. 处理结果集ResultSet;
                  5. 释放资源.

2.2.1插入

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

public class JDBCDemo1 {
    public static void main(String[] args) throws SQLException {
        // 数据库中有一个student表(id, name), 利用Java代码往里面插入一个数据.
        // 让用户通过控制台来输入学号和姓名.
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学号: ");
        int id = scanner.nextInt();
        System.out.println("请输入姓名: ");
        String name = scanner.next();

        // 1.创建"数据源".
        DataSource dataSource = new MysqlDataSource();
                                        //Url:唯一资源定位符,通常使用URL来描述网络上的资源位置.
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/javasql?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");   //数据库所在IP地址 //想操作的数据库
        ((MysqlDataSource) dataSource).setPassword("123456");// 数据库的密码

        /*MysqlDataSource dataSource1 = new MysqlDataSource();
        dataSource1.setUrl();*/ //这种写法也可以.

        // 2.和数据库服务器建立连接.
        Connection connection = dataSource.getConnection(); // 选择后缀为java.sql的connection.

        // 3.构造SQL语句.
        String sql = "insert into student values(?, ?)";// ? 占位符,即占用一个位置.
        PreparedStatement statement = connection.prepareStatement(sql);// 要将String转换为PreparedStatement.
        statement.setInt(1, id);// 下标从1开始.
        statement.setString(2, name);

        // 4.执行SQL语句,返回值就是"这次操作影响到几行".
        int n = statement.executeUpdate();
        System.out.println("n = " + n);

        // 5.释放必要的资源. 关闭连接.
        //   注意关闭顺序,先创建的对象后关闭.
        statement.close();
        connection.close();
    }
}

【MySQL】JDBC_第6张图片【MySQL】JDBC_第7张图片

2.2.2删除

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

public class JDBCDemo2 {
    public static void main(String[] args) throws SQLException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要删除的 id: ");
        int id = scanner.nextInt();

        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/javasql?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("123456");

        Connection connection = dataSource.getConnection();

        String sql = "delete from student where id = ?";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setInt(1, id);

        int n = statement.executeUpdate();
        System.out.println("n = " + n);

        statement.close();
        connection.close();
    }
}

【MySQL】JDBC_第8张图片【MySQL】JDBC_第9张图片

2.2.3查询

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

public class JDBCDemo3 {
    public static void main(String[] args) throws SQLException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要查询的学号: ");
        int studentId = scanner.nextInt();

        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/javasql?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("123456");

        Connection connection = dataSource.getConnection();

        // 这里同样可以包含一些占位符.
        String sql = "select * from student where id = ?";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setInt(1, studentId);

        // 执行查询操作,要使用executeQuery.返回值是一个ResultSet类型的对象.表示一个"表格"
        ResultSet resultSet = statement.executeQuery();

        // 遍历结果集合.
        while (resultSet.next()) {
            // 获取这一行的 学号 列
            int id = resultSet.getInt("id");
            // 获取这一行的 姓名 列
            String name = resultSet.getString("name");
            System.out.println("id: " + id + ", name: " + name);
        }

        // 释放资源.
        resultSet.close();
        statement.close();
        connection.close();
    }
}

【MySQL】JDBC_第10张图片


MySQL结束了,向着JavaEE,出发!!

你可能感兴趣的:(MySQL,mysql,数据库,JDBC,Java,ORM)