JDBC(Java DataBase Connectivity)

Java 语言连接数据库

  • 再本模块中,java提供里一组用于连接数据库的类和接口
  • Java 语言开发者,本身没有提供如何具体连接数据库的功能
  • 只是定义了一组java程序连接数据库的访问接口
    1. 连接到数据库
    2. 向数据库发送增,修改,删除这一类的sql
    3. 发送查询sql
  • java语言并没有给实现连接数据库的功能,只提供了接口,需要开发商自己去写如何实现连接的
  • java只需要定义一套接口,就可以连接不同数据库
  • 所有通过这一系列操作,Java开发人员只需要编写一次程序,连接多个数据库

JDBC API:

提供程序员调用的接口与类,继承在java.sql包中

    • 创建lib文件夹,把官方的jar放入
  1. DriverManager类的作用:管理各种不同的JDBC

    • 声明方式

    • //2.注册驱动
      //Class.forName("com.mysql.cj.jdbc.Driver");//反射方式加载驱动类
      DriverManager.registerDriver(new Driver());
  2. Connection接口 与特定的数据库的连接

    1. URL = jdbc:mysql://[ip地址]:[端口]/[数据库名]?severTimezone=[地区 Asia/Shanghai] 国内是Asia/Shanghai

    2. USER = [mysql用户名]

    3. PASS = [mysql密码]

    4. Connection connection = DriverManager.getConnection(url, user, pass);

    5.     //3.建立连接
      String url = "jdbc:mysql://127.0.0.1:3306/student2?serverTimezone=Asia/Shanghai";
      String user = "root";
      String password = "root";
      Connection connection = DriverManager.getConnection(url, user, password);
      System.out.println(connection);
  3. Satement执行语句

    如下

 public ArrayList<ResidentConnect> search_residentConnect() throws SQLException {
DriverManager.registerDriver(new Driver());
String url = "jdbc:mysql://127.0.0.1:3306/counter?serverTimezone=Asia/Shanghai";
String user = "root";
String password = "root";
//---------------------------------------------------
Connection connection = DriverManager.getConnection(url, user, password);
// 开始查找
PreparedStatement pre = connection.prepareStatement("SELECT rc.id,rc.residentId,rc.studentId,rc.adminId,rc.oper_time,s.name AS sname,s.num AS snum,r.num AS rnum\n" +
"FROM resident_Connect rc\n" +
"LEFT JOIN student s ON s.id = rc.studentId\n" +
"LEFT JOIN resident r ON r.id = rc.residentId");
ResultSet re = pre.executeQuery();
ArrayList<ResidentConnect> arrayList = new ArrayList<>();
while (re.next()){
ResidentConnect residentConnect = new ResidentConnect(); residentConnect.setId(re.getString("id"));
residentConnect.setStudentId(re.getString("studentId"));
residentConnect.setResidentId(re.getString("residentId"));
residentConnect.setAdminId(re.getString("adminId"));
residentConnect.setOper_time(re.getString("oper_time"));
residentConnect.setSname(re.getString("sname"));
residentConnect.setSnum(re.getString("snum"));
residentConnect.setRnum(re.getString("rnum"));
arrayList.add(residentConnect);
}
return arrayList; }

JDBC的简单使用以及介绍的更多相关文章

  1. 1   开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你。   本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的原则已经被许多现有的JDBC应用程序编译运行并验证过。 这些指导原则包括:    正确的使用数据库MetaData方法    只获取需要的数据    选用最佳性能的功能    管理连

    1 开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你. 本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的 ...

  2. jdbc、Mybatis、Hibernate介绍(非原创)

    文章大纲 一.jdbc介绍二.Mybatis介绍三.Hibernate介绍四.jdbc.Mybatis.Hibernate比较五.参考文章   一.jdbc介绍 1. jdbc编程步骤 (1)加载数据 ...

  3. JDBC常用接口、类介绍

    JDBC常用接口.类介绍 JDBC提供对独立于数据库统一的API,用以执行SQL命令.API常用的类.接口如下: DriverManager 管理JDBC驱动的服务类,主要通过它获取Connectio ...

  4. 通过JDBC进行简单的增删改查

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  5. 通过JDBC进行简单的增删改查(以MySQL为例) 目录

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  6. python内置函数的简单使用和介绍

    """内置函数的简单使用和介绍参考链接:https://docs.python.org/3/library/functions.html ""&quo ...

  7. Java通过JDBC进行简单的增删改查(以MySQL为例)

    Java通过JDBC进行简单的增删改查(以MySQL为例) 目录: 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JD ...

  8. Spring整合JDBC实现简单的增删改

    Spring整合JDBC实现简单的增删改: 1.导入Spring的包和数据库的驱动包: 2.选择一个数据源(dbcp和C3P0) 3.导入数据源的包(这里我们使用dbcp) <span styl ...

  9. SLF4J 简单日志门面 介绍和使用

    参考:http://singleant.iteye.com/blog/934593        http://liuzidong.iteye.com/blog/776072 介绍: 简单日记门面(s ...

  10. 使用jdbc实现简单的mvc模式的增删改查

    Mvc模式设计: 视图:添加界面(addUser.jsp),修改界面(updateUser.jsp),显示页面(allUser.jsp) 控制器:添加信息控制器(AddUserServlet),修改信 ...

随机推荐

  1. 使用 Docker Compose 安装 APISIX

    1.基本概念 APISIX 是 Apache 下的一款云原生的 API 网关,支持全生命周期的 API 管理,在应用中可以作为所有 API 调用的统一入口. APISIX 有一些基础概念如下: Ups ...

  2. 力扣1620(java&python)-网络信号最好的坐标(中等)

    题目: 给你一个数组 towers 和一个整数 radius . 数组  towers  中包含一些网络信号塔,其中 towers[i] = [xi, yi, qi] 表示第 i 个网络信号塔的坐标是 ...

  3. Spark如何对源端数据做切分?

    简介: 典型的Spark作业读取位于OSS的Parquet外表时,源端的并发度(task/partition)如何确定?特别是在做TPCH测试时有一些疑问,如源端扫描文件的并发度是如何确定的?是否一个 ...

  4. 消息队列 RabbitMQ 遇上可观测--业务链路可视化

    简介: 本篇文章主要介绍阿里云消息队列 RabbitMQ 版的可观测功能.RabbitMQ 的可观测能力相对开源有了全面的加强,为业务链路保驾护航. 作者:文婷.不周 本篇文章主要介绍阿里云消息队列 ...

  5. 开箱即用!Linux 内核首个原生支持,让你的容器体验飞起来!| 龙蜥技术

    简介: 本文将从 Nydus 架构回顾.RAFS v6 镜像格式和 EROFS over Fscache 按需加载技术三个角度来分别介绍这一技术的演变历程. 文/阿里云内核存储团队,龙蜥社区高性能存储 ...

  6. 深度解析开源推荐算法框架EasyRec的核心概念和优势

    ​简介:如何通过机器学习PAI实现快速构建推荐模型 作者:程孟力 - 机器学习PAI团队 随着移动app的普及,个性化推荐和广告成为很多app不可或缺的一部分.他们在改善用户体验和提升app的收益方面 ...

  7. [Go] Golang并发控制: WaitGroup 含义和常规用法

    一个 WaitGroup 等待一个 goroutine 集合的结束. 主 goroutine 调用 Add 设置需要等待的 goroutine 数量. 接下来每个 goroutine 运行并在结束时调 ...

  8. [FAQ] FinalCutPro 视频背景加模糊效果

    1. 时间轴右上方,找到 倒数第二个 "显示或隐藏效果浏览器",里面有一个 "模糊" 效果: 2. "模糊"效果中的 "高斯曲线& ...

  9. WPF 已知问题 开启 IsManipulationEnabled 之后触摸长按 RepeatButton 不会触发连续的 Click 事件

    本文记录 WPF 的一个已知问题,在 RepeatButton 上开启 IsManipulationEnabled 漫游支持之后,将会导致触摸长按到 RepeatButton 之上时,不会收到源源不断 ...

  10. WPF 基于 .NET 5 框架和 .NET 6 的 SDK 进行完全单文件发布

    本文来告诉大家如何基于 .NET 5 框架和 .NET 6 SDK 进行完全单文件发布,这是对 WPF 应用程序进行独立发布,生成的是完全单文件的方法 在之前的版本,尽管也是基于 .NET 5 框架的 ...