0811JDBC随笔

1.JDBC体系系统 一组规范:接口

  • JDBC接口(API)包括两个层次:
  • 面向应用的API:Java API,抽象接口,供应用开发人员使用(连接数据库,执行SQL语句,获得结果)
  • 面向数据库的API:Java Driver API,供开发商开发数据库驱动程序

JDBC是sun公司提供一套用于数据库操作的接口,java程序员只需要面向这套接口编程即可。
不同的数据库厂商,需要针对这套接口,提供不同的实现集合,即为不同数据库的驱动

package com.aiguigu.connection;

import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class ConnectionTest {
    @Test
    public void testConnection1() throws SQLException {
        Driver driver = new com.mysql.cj.jdbc.Driver();

        //jdbc:mysql协议
        //local:IP地址
        //3306:默认mysql端口号
        //test:test数据库
        String url = "jdbc:mysql://localhost:3306/MYSQL?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT";
        //将用户名和密码封装在properties中
        Properties info = new Properties();
        info.setProperty("user","root");
        info.setProperty("password","1234");

        Connection conn = driver.connect(url, info);

        System.out.println(conn);
    }

    //方式二:对方式一的迭代 在如下的方式中不出现第三方API,使程序具有更好的可移植性
    @Test
    public void testConnection2() throws Exception {
        //获取Driver实现类对象,使用反射
        Class clazz = Class.forName("com.mysql.cj.jdbc.Driver");
        Driver driver = (Driver) clazz.newInstance();

        //2.提供要连接的数据库
        String url = "jdbc:mysql://localhost:3306/MYSQL?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT";

        //提供要连接的用户名和密码
        Properties info = new Properties();
        info.setProperty("user","root");
        info.setProperty("password","1234");

        //获取连接
        Connection conn = driver.connect(url, info);
        System.out.println(conn);
    }

    @Test
    //方式三:使用DriverManager替换Driver
    public void testConnection3() throws Exception {
        //1.获取Drive实现类的对象
        Class clazz = Class.forName("com.mysql.cj.jdbc.Driver");
        Driver driver = (Driver) clazz.newInstance();
        //2提供另外三个连接的基本信息
        String url = "jdbc:mysql://localhost:3306/MYSQL?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT";
        String user = "root";
        String password = "1234";

        //注册驱动
        DriverManager.registerDriver(driver);

        //获取连接
        Connection connection = DriverManager.getConnection(url, user, password);

        System.out.println(connection);
    }
    @Test
    //方式三:使用DriverManager替换Driver
    public void testConnection4() throws Exception {
        //1.提供另外三个连接的基本信息
        String url = "jdbc:mysql://localhost:3306/MYSQL?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT";
        String user = "root";
        String password = "1234";
        //2.获取Drive实现类的对象
        Class.forName("com.mysql.cj.jdbc.Driver");
        //相较于方式三可以省略如下操作:
//        Driver driver = (Driver) clazz.newInstance();
//        //注册驱动
//        DriverManager.registerDriver(driver);

        //3.获取连接
        Connection connection = DriverManager.getConnection(url, user, password);

        System.out.println(connection);
    }
    //方式五:将数据库连接的四个基本信息声明在配置文件中通过读取配置文件,获取连接
    @Test
    public void getConnection5() throws Exception {
        //1.读取配置文件中4个基本信息
        InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");

        Properties pros = new Properties();
        pros.load(is);

        String user = pros.getProperty("user");
        String password = pros.getProperty("password");
        String url = pros.getProperty("url");
        String driverClass = pros.getProperty("driverClass");

        //加载驱动
        Class.forName(driverClass);

        //获取连接
        Connection conn = DriverManager.getConnection(url, user, password);
        System.out.println(conn);

    }

}

Original: https://www.cnblogs.com/heyiyuanqi/p/16578096.html
Author: 何以媛起
Title: 0811JDBC随笔

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611079/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • SpringBoot自动装配-自定义Start

    SpringBoot自动装配 JAVA技术交流群:737698533 SpringBootApplication注解 什么是自动装配,也就是说帮你把需要的类自动添加到Spring容…

    数据库 2023年6月16日
    094
  • 存储过程procedure、触发器trigger

    一、存储过程procedure MySQL 5.0 版本开始支持存储过程。 存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对…

    数据库 2023年6月9日
    082
  • 设计模式之(12)——外观模式

    外观模式(facadePattern)又叫门面模式,隐藏了子系统的复杂实现,为子系统中的一组接口提供了一个统一的访问入口,使得子系统容易被访问或使用,说白了就是把复杂的子系统封装成…

    数据库 2023年6月14日
    082
  • Javaweb07-三层架构(BaseDao)

    1、BaseDao 持久层业务接口实现类的公共父类,定义了jdbc操作数据库的所有公共方法,方便子类继承; import java.io.InputStream; import j…

    数据库 2023年6月16日
    0102
  • maven配置本地仓库

    https://www.cnblogs.com/javajetty/p/10051156.html maven配置本地仓库 Original: https://www.cnblog…

    数据库 2023年6月9日
    078
  • Mysql数据库存取原理及性能优化

    一、Mysql的系统架构图 二、Mysql存储引擎 Mysql中的数据是通过一定的方式存储在文件或者内存中的,任何方式都有不同的存储、查找和更新机制,这意味着选择不同的方式对于数据…

    数据库 2023年6月14日
    0101
  • 数据库持久化+JDBC数据库连接

    数据持久化就是 将内存中的数据模型转换为存储模型,以及 将存储模型转换为内存中的数据模型的统称。数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。 …

    数据库 2023年5月24日
    076
  • Centos7安装Docker

    一、docker运行流程 举个例子你想使用MySQL镜像,那么执行docker pull 下载镜像的时候 首先它会在本地仓库进行运行,如果本地仓库有你想要的MySQL镜像 那么它会…

    数据库 2023年6月14日
    0116
  • SpringMvc(二)- 请求处理参数 和 响应数据处理

    1、请求处理参数 1.1 请求参数 @RequestParam 1.1.1 不使用 @RequestParam 注解 请求参数处理, 不使用参数注解:1.如果 请求参数名和请求处理…

    数据库 2023年6月16日
    076
  • 第十二章 自定义类型转换器

    1.类型转换器 作用:Spring通过类型转换器把配置文件中字符串类型的数据,转换成对象中成员变量对应类型的数据,从而完成注入 2.自定义类型转换器 当Spring内部没有提供特定…

    数据库 2023年6月14日
    080
  • 567.字符串中的排列

    滑动窗口 给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。 换句话说,s1 的排列之一是 s2…

    数据库 2023年6月16日
    074
  • 带缓冲的输入/输入流

    BufferedInputStream类 与 BufferedOutputStream类 BufferedInputStream类 可以对所有InputStream的子类进行缓冲区…

    数据库 2023年6月16日
    075
  • postman操作数据库

    一、安装node.js 二、配置环境变量 三、安装xmysql,连接数据库 四、postman操作数据库 功能说明 node.js:是一个javascript运行环境,优点:单线程…

    数据库 2023年6月14日
    0109
  • SQL Server内置的HTAP技术

    SQL Server内置的HTAP技术 目录 背景 SQL Server在OLAP上的发展 SQL Server的初代HTAP SQL Server逐渐增强的HTAP SQL Se…

    数据库 2023年6月9日
    0128
  • 数据库概述

    MySQL的启动、停止 启动: net start mysql80 停止: net stop mysql80 (PS:mysql80为Win注册到MySQL中的系统服务名称)* M…

    数据库 2023年5月24日
    070
  • 第八章:变量、常量和基础类型

    本篇翻译自《Practical Go Lessons》 Chapter 8: Variables, constants and basic types 1 你将在本章中学到什么? …

    数据库 2023年6月6日
    0120
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球