JDBC规范与实现

2023-11-13

JDBC

一、JDBC的概述

二、获取数据库连接

//1.JDBC: sun公司提供的一套api(java.sqL ,javax.sql ) ,
//    使用这套api可以实现对数据的连接和操作(DML、DDL )

// 2.如下代码来测试:
//    获取mysql数据库连接要想获取连接,准备工作:
//        1.mysqL服务开启
//        2.连接的基本条件:指名数据库的ip地址、端口号、用户名、密码
//        3.导入mysql的驱动(即为jdbc中相关接口的实现类的集合)
// 3.网络编程中的URL:代表着互联网当中的某一资源的地址
//http://192.168.21.34:8080/gmall/index.jsp?user=tom
//协议      ip地址    端口号  目标资源      参数列表

1.连接方式一

import org.junit.Test;

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

public class ConnectionText {
   

//    获取数据库的连接方式一
  @Test
    public void test1() throws SQLException{
   

      //提供mysql 中 Driver 接口的实现类
      Driver driver= new com.mysql.jdbc.Driver ();
      //注册驱动
  DriverManager.registerDriver (driver);

     String url ="jdbc:mysql://localhost:3306/test";//test 表示具体的数据库
      String user ="root";
      String password ="fan1116.";

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

2.连接方式二(反射)

  //获取数据库的连接方式二:使用反射实现Driver的实例化
  //面向接口编程
  @Test
  public void test2() throws SQLException, ClassNotFoundException, IllegalAccessException, InstantiationException {
   

      //提供mysql 中 Driver 接口的实现类的对象
String className ="com.mysql.jdbc.Driver";
Class  classzz=Class.forName (className);
      Driver driver= (Driver) classzz.newInstance ();
      //注册驱动
      DriverManager.registerDriver (driver);

      String url ="jdbc:mysql://localhost:3306/bjpowernode";//`bjpowernode 表示具体的数据库
      String user ="root";
      String password ="fan1116.";

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

3.连接方式三

    //    获取数据库的连接方式三
    @Test
    public void test3() throws SQLException, ClassNotFoundException, IllegalAccessException, InstantiationException {
   

        //1.获取四个基本信息
        String className ="com.mysql.jdbc.Driver";
        String url ="jdbc:mysql://localhost:3306/bjpowernode";//`bjpowernode 表示具体的数据库
        String user ="root";
        String password ="fan1116.";

        //2.加载驱动
        Class.forName (className);

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

***4.连接方式四(配置文件)

className=com.mysql.jdbc.Driver
url =jdbc:mysql://localhost:3306/bjpowernode
user =root
password =fan1116.
    //使用配置文件的好处?
    //1.实现数据和代码的分离
    //2.编写的java程序在部署到服务器上时,需要打包。I如果java代码修改过就需要重新打包。使用配置文件的方式,如果配置信息修改,并没有导致代码的修改。所以不需要重写打包。
  //   获取数据库的连接方式四——将数据库连接的基本信息声明在配置文件中
   @Test
   public void test4() throws IOException, ClassNotFoundException, SQLException {
   
//读取配置文件中的四个信息
       Properties properties=new Properties ();
     //加载资源的路径默认为: src下
  InputStream is= ClassLoader.getSystemClassLoader ().getResourceAsStream ("jdbc.properties");

       properties.load(is);
     String className=  properties.getProperty ("className");
       String url=  properties.getProperty ("url");
       String user=  properties.getProperty("user");
       String password=  properties.getProperty ("password");
       //2.加载驱动
       Class.forName (className);

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

   }

三、数据库连接池

1.使用数据库连接池的好处?

1.更方便的获取连接对象,效率高
2.资源可以更好的重复利用
3.便于进行必要的管理

2.有哪些数据库连接池技术呢?

DBCP :速度快,不稳定
C3Pe:稳定、速度慢
Druid:兼具二者兼备

Datasource通常被称为数据源,它包含连接池和连接池管理两个部分,习惯上也经常把Datasource称为连接池

3.使用Druid获取连接的方式1

import com.alibaba.druid.pool.DruidDataSource;
import org.junit.Test;

import java.sql
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JDBC规范与实现 的相关文章

随机推荐

  • 服务机器人串口配置

    服务机器人串口配置 1 确定串口号 2 查看串口号对应的kernels 3 修改rules 1 确定串口号 如下图 以雷达为了例子 插拔之后 可知串口号为 ttyUSB1 2 查看串口号对应的kernels 3 修改rules 更改KERN
  • 搭建Zerotier内网穿透网络及彻底删除zerotier方法

    搭建Zerotier内网穿透网络 1 注册zerotier账号并登录https my zerotier com 2 访问https my zerotier com network 点击Create a Network 之后再Your Net
  • Java 【基础】 模拟log4j,输出当前语句的行数,和类路径

    一直很好奇log4j 是如何获取到当前输出的行数的 今天学到了 原来是堆栈跟踪 把代码贴出来给大家看一下 模拟log4j public static void debug String string System out println 调
  • declare-styleable的使用

    declare styleable是给自定义控件添加自定义属性用的 可以定义多种类型 int Boolean string等等 参考链接
  • 正则表达式去除冗长代码,tppabs

    利用正则表达式去除网页中的冗长没用代码 1 btppabs h 2 tpa http 3 清除css内的 tpa http s gif png jpg 4 tpa
  • org.springframework.http.converter.HttpMessageNotWritableException

    这里说无法将 对应对象转换 原因在于没有导入json 依赖 所以无法转换 org springframework http converter HttpMessageNotWritableException No converter fou
  • SD/MMC存储器启动方案在SoC中的设计与实现

    原文地址 http blog csdn net allen6268198 article details 7745208 引言 SD MMC存储器以其成本低廉 存储容量大 性能优良 安全性高等特点越来越广泛地应用于便携式设备和家用电子设备
  • Android Studio中设置鼠标悬停显示文档提示方法

    有些小伙伴在开发的过程中可能会习惯使用文档注释 那么在Android Studio中如何设置启用文档注释呢 1 首先打开Android Studio 点击菜单栏中的 File选项菜单 点击如下的Settings 进行设置 2 点击Edito
  • Windows10系统下swin-transformer目标检测环境搭建

    Swin Transformer Object Detection环境搭建 前言 1 环境准备 2 虚拟环境创建 3 安装pytorch 4 安装mmcv 5 安装mmdet 6 安装apex 7 测试 前言 刚搞明白了分类 又进来了检测这
  • 基于 Linux 安装 web 服务及基本配置

    在网络环境中 web 服务无疑是最为流行的应用系统 有了 web 站点 企业可以充分展示自己的作品 宣传企业形象 web 站点还为企业提供了与客户交流 电子商务交易平台等丰富的网络应用 Apache HTTP Server 是 ASF 旗下
  • mycat实现mysql读写分离,热切换,集群

    在互联网时代 实现mysql读写分离 热切换 集群能大大提高mysql数据库访问压力 防止数据丢失 使用mycat能帮我们实现这些 我们要实现的是这种架构 1 Mycat能实现数据库的垂直切分和水平切分 这里用户写数据的时候 通过mycat
  • Linux 上的NetworkManager示例

    如果您是一位经验丰富的系统管理员 并且专注于网络管理 那么您可能已经听说过NetworkManager NetworkManager于 2004 年发布 由 Red Hat 开发 是一组不同的工具 主要是接口 旨在促进系统上的网络管理 如果
  • C - 选票统计

    Description 某校学生会主席由全校学生投票选举产生 共有 名候选人报名参选 编号为1到 0 1000 全校有 名学生 0 30000 每人都可以投票 但每人只能投一票 每票只能选1名候选人 请你设计一个程序能够统计出哪个候选人得票
  • FP-growth算法(仅理解部分,代码待更新)

    FP growth算法 仅理解部分 代码待更新 1 简介 2 构建FP树 2 1 FP树简介 2 2 FP树的构建步骤 2 3 FP树的构建实例 step1 扫描数据集 对所有元素项的出现次数进行计数 step2 去掉不满足最小支持度的元素
  • 【华为OD机试真题2023B卷 JAVA&JS】事件推送

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 事件推送 时间限制 1秒 内存限制 262144K 语言限制 不限 题目描述 同一个数轴X上有两个点的集合A A1 A2 Am 和B B1 B2 Bn Ai和Bj均为正整数 A B已经
  • pikachu之RCE

    pikachu之RCE 一 神魔是RCE RCE漏洞 可以让攻击者直接向后台服务器远程注入操作系统命令或者代码 从而控制后台系统 1 远程系统命令执行 出现原因 因为应用系统从设计上需要给用户提供指定的远程命令操作的接口 比如常见的路由器
  • C语言中基本整型数据类型

    为了更好的分享体验 博客搬迁至极客驿站 欢迎查阅 C语言中的基本整型数据类型 整型家族包括字符 短整型 整型 长整型 它们都分为有符号和无符号两种版本 整型值相互之间的大小的规则 长整型至少应该和整型一样长 而整型至少应该和短整型一样长 一
  • JointJS官方API(中文)

    某位大佬博主整理的 备份一份 方便使用 原文地址 https blog csdn net orangeunicorn article details 84982992 锚点anchor 链接锚是一个链接想要到达的点 这意味着连接端点最终未必
  • 启动dubbo项目提示zk连接不上 Will not attempt to authenticate using SASL

    背景 本来自己本地能正常连接zk 启动项目 突然就不行了 这种莫名其妙的错误 令人头大 虽然找到了解决方法 但不知其原因 希望有大佬一起交流下 解决方案 查看zookeeper安装目录下的 conf zoo cfg文件 查看dataDir的
  • JDBC规范与实现

    JDBC 一 JDBC的概述 二 获取数据库连接 1 JDBC sun公司提供的一套api java sqL javax sql 使用这套api可以实现对数据的连接和操作 DML DDL 2 如下代码来测试 获取mysql数据库连接要想获取