JDBC

JDBC,第1张

目录

一、JDBC概述

1.1 基本介绍

1.2 JDBC带来的好处

1.3 JDBC API

二、JDBC快速入门

2.1 JDBC程序编写步骤

三、获取数据库连接5种方式 

方式1

方式2

方式3

方式4

方式5


一、JDBC概述 1.1 基本介绍

1. JDBC为访问不同的数据库提供了统一的接口,为使用者屏蔽了细节问题

2. Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,从而完成对数据库的各种 *** 作

1.2 JDBC带来的好处

        JDBC是Java提供一套用于数据库 *** 作的接口API,Java程序员只需要面向这套接口编程即可。不同的数据库厂商,需要针对这套接口提供不同实现 

1.3 JDBC API

        JDBC API是一系列接口,它统一和规范了应用程序与数据库的连接、 执行SQL语句,并得到返回结果等各类 *** 作,相关类恶化接口在 java.sql 与 javax.sql 包中

二、JDBC快速入门 2.1 JDBC程序编写步骤

1. 注册驱动——加载Driver类

2. 获取连接——得到Connection

3. 执行增删改查——发送SQL给mysql执行

4. 释放资源——关闭相关连接

package com.learn.jdbc;

import com.mysql.jdbc.Driver;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
 * @author 咕咕猫
 * @version 1.0
 * 这是JDBC程序,完成简单的 *** 作
 */
public class Jdbc01 {
    public static void main(String[] args) throws SQLException {

        //1.注册驱动
        Driver driver = new Driver();//创建Driver对象

        //2.得到连接
        //  (1) jdbc:mysql:// 规定好表示协议,通过 jdbc 的方式连接 mysql
        //  (2) localhost 主机,可以是 ip 地址
        //  (3) 3306 表示 mysql 监听的端口
        //  (4) ggm_db02 连接到 mysql dbms 的哪个数据库
        //  (5) mysql 的连接本质就是前面学过的 socket 连接
        String url = "jdbc:mysql://localhost:3306/ggm_db02";
        //将用户和密码放入到Properties对象
        Properties properties = new Properties();
        //说明:user和password是规定好的,后面的值根据实际情况
        properties.setProperty("user","root");
        properties.setProperty("password","ggm");
        Connection connect = driver.connect(url, properties);//创建连接

        //3.执行sql语句
        //String sql = "insert into actor values(null,'刘德华', '男', '1970-11-11', '111222333')";
        String sql = "update actor set name = '周星驰' where id = 1";
        Statement statement = connect.createStatement();//发送和执行sql语句
        int rows = statement.executeUpdate(sql);//如果是dml语句,返回的就是影响的行数,返回1说明成功,0是失败

        System.out.println(rows > 0 ? "成功" : "失败");

        //4.关闭连接
        statement.close();
        connect.close();
    }
}
三、获取数据库连接5种方式  方式1

方式2

方式3

方式4

方式5

 

package com.learn.jdbc;

import com.mysql.jdbc.Driver;
import org.junit.jupiter.api.Test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

/**
 * @author 咕咕猫
 * @version 1.0
 * jdbc程序,完成简单的 *** 作
 */
public class JdbcConn {

    //方式1
    @Test
     public void connect01() throws SQLException {
        Driver driver = new Driver();//创建Driver对象
        String url = "jdbc:mysql://localhost:3306/ggm_db02";
        //将用户和密码放入到Properties对象
        Properties properties = new Properties();
        //说明:user和password是规定好的,后面的值根据实际情况
        properties.setProperty("user","root");
        properties.setProperty("password","ggm");
        Connection connect = driver.connect(url, properties);//创建连接
        System.out.println(connect);
    }


    //方式2
    @Test
    public void connect02() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
        //使用反射加载Driver,动态加载,更加灵活,减少依赖性
        Class aClass = Class.forName("com.mysql.jdbc.Driver");
        Driver driver = (Driver) aClass.newInstance();

        String url = "jdbc:mysql://localhost:3306/ggm_db02";
        //将用户和密码放入到Properties对象
        Properties properties = new Properties();
        //说明:user和password是规定好的,后面的值根据实际情况
        properties.setProperty("user","root");
        properties.setProperty("password","ggm");
        Connection connect = driver.connect(url, properties);
        System.out.println("方式2 = " + connect);
    }


    //方式3 使用DriverManage 替代driverj进行统一管理
    @Test
    public void connect03() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
        //使用反射加载Driver
        Class aClass = Class.forName("com.mysql.jdbc.Driver");
        Driver driver = (Driver)aClass.newInstance();
        //创建url 和 user 和 password
        String url = "jdbc:mysql://localhost:3306/ggm_db02";
        String user = "root";
        String password = "ggm";

        DriverManager.registerDriver(driver); //注册Driver驱动
        Connection connection = DriverManager.getConnection(url, user, password);
        System.out.println("方式3 = " + connection);
    }

    //方式4  使用Class.forName自动完成注册驱动,简化代码
    //这种方式获取连接是使用最多的,推荐使用
    @Test
    public void connect04() throws ClassNotFoundException, SQLException {

        Class aClass = Class.forName("com.mysql.jdbc.Driver");

        /*
            源码:1.静态代码块,在类加载时会执行一次
                2.DriverManager.registerDriver(new Driver());
                3.因此加载和注册Driver的工作已经完成了
            static {
                try {
                    DriverManager.registerDriver(new Driver());
                } catch (SQLException var1) {
                    throw new RuntimeException("Can't register driver!");
                }
            }
         */
        //创建url 和 user 和 password
        String url = "jdbc:mysql://localhost:3306/ggm_db02";
        String user = "root";
        String password = "ggm";
        Connection connection = DriverManager.getConnection(url, user, password);
        System.out.println("方式4 = " + connection);
    }


    //方式5  在方式4的基础上改进,增加配置文件,让连接mysql更加灵活
    @Test
    public void connect05() throws IOException, ClassNotFoundException, SQLException {

        //通过properties对象获取配置文件的信息
        Properties properties = new Properties();
        properties.load(new FileInputStream("src\\mysql.properties"));
        //获取相关的值
        String user = properties.getProperty("user");
        String password = properties.getProperty("password");
        String driver = properties.getProperty("driver");
        String url = properties.getProperty("url");

        Class aClass = Class.forName(driver); //建议写上
        Connection connection = DriverManager.getConnection(url, user, password);
        System.out.println("方式5 = " + connection);
    }
}

 

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/887104.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-14
下一篇2022-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存