JDBC的简单使用以及介绍
JDBC
(Java DataBase Connectivity
)
Java 语言连接数据库
- 再本模块中,
java
提供里一组用于连接数据库的类和接口 Java
语言开发者,本身没有提供如何具体连接数据库的功能- 只是定义了一组
java
程序连接数据库的访问接口- 连接到数据库
- 向数据库发送增,修改,删除这一类的sql
- 发送查询sql
java
语言并没有给实现连接数据库的功能,只提供了接口,需要开发商自己去写如何实现连接的java
只需要定义一套接口,就可以连接不同数据库- 所有通过这一系列操作,Java开发人员只需要编写一次程序,连接多个数据库
JDBC API
:
提供程序员调用的接口与类,继承在java.sql包中
-
- 创建
lib
文件夹,把官方的jar放入
- 创建
DriverManager
类的作用:管理各种不同的JDBC
声明方式
//2.注册驱动
//Class.forName("com.mysql.cj.jdbc.Driver");//反射方式加载驱动类
DriverManager.registerDriver(new Driver());
Connection
接口 与特定的数据库的连接URL = jdbc:mysql://[ip地址]:[端口]/[数据库名]?severTimezone=[地区 Asia/Shanghai]
国内是Asia/ShanghaiUSER = [mysql用户名]
PASS = [mysql密码]
Connection connection = DriverManager.getConnection(url, user, pass);
//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);
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 开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你。 本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的原则已经被许多现有的JDBC应用程序编译运行并验证过。 这些指导原则包括: 正确的使用数据库MetaData方法 只获取需要的数据 选用最佳性能的功能 管理连
1 开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你. 本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的 ...
- jdbc、Mybatis、Hibernate介绍(非原创)
文章大纲 一.jdbc介绍二.Mybatis介绍三.Hibernate介绍四.jdbc.Mybatis.Hibernate比较五.参考文章 一.jdbc介绍 1. jdbc编程步骤 (1)加载数据 ...
- JDBC常用接口、类介绍
JDBC常用接口.类介绍 JDBC提供对独立于数据库统一的API,用以执行SQL命令.API常用的类.接口如下: DriverManager 管理JDBC驱动的服务类,主要通过它获取Connectio ...
- 通过JDBC进行简单的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- 通过JDBC进行简单的增删改查(以MySQL为例) 目录
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- python内置函数的简单使用和介绍
"""内置函数的简单使用和介绍参考链接:https://docs.python.org/3/library/functions.html ""&quo ...
- Java通过JDBC进行简单的增删改查(以MySQL为例)
Java通过JDBC进行简单的增删改查(以MySQL为例) 目录: 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JD ...
- Spring整合JDBC实现简单的增删改
Spring整合JDBC实现简单的增删改: 1.导入Spring的包和数据库的驱动包: 2.选择一个数据源(dbcp和C3P0) 3.导入数据源的包(这里我们使用dbcp) <span styl ...
- SLF4J 简单日志门面 介绍和使用
参考:http://singleant.iteye.com/blog/934593 http://liuzidong.iteye.com/blog/776072 介绍: 简单日记门面(s ...
- 使用jdbc实现简单的mvc模式的增删改查
Mvc模式设计: 视图:添加界面(addUser.jsp),修改界面(updateUser.jsp),显示页面(allUser.jsp) 控制器:添加信息控制器(AddUserServlet),修改信 ...
随机推荐
- 使用 Docker Compose 安装 APISIX
1.基本概念 APISIX 是 Apache 下的一款云原生的 API 网关,支持全生命周期的 API 管理,在应用中可以作为所有 API 调用的统一入口. APISIX 有一些基础概念如下: Ups ...
- 力扣1620(java&python)-网络信号最好的坐标(中等)
题目: 给你一个数组 towers 和一个整数 radius . 数组 towers 中包含一些网络信号塔,其中 towers[i] = [xi, yi, qi] 表示第 i 个网络信号塔的坐标是 ...
- Spark如何对源端数据做切分?
简介: 典型的Spark作业读取位于OSS的Parquet外表时,源端的并发度(task/partition)如何确定?特别是在做TPCH测试时有一些疑问,如源端扫描文件的并发度是如何确定的?是否一个 ...
- 消息队列 RabbitMQ 遇上可观测--业务链路可视化
简介: 本篇文章主要介绍阿里云消息队列 RabbitMQ 版的可观测功能.RabbitMQ 的可观测能力相对开源有了全面的加强,为业务链路保驾护航. 作者:文婷.不周 本篇文章主要介绍阿里云消息队列 ...
- 开箱即用!Linux 内核首个原生支持,让你的容器体验飞起来!| 龙蜥技术
简介: 本文将从 Nydus 架构回顾.RAFS v6 镜像格式和 EROFS over Fscache 按需加载技术三个角度来分别介绍这一技术的演变历程. 文/阿里云内核存储团队,龙蜥社区高性能存储 ...
- 深度解析开源推荐算法框架EasyRec的核心概念和优势
简介:如何通过机器学习PAI实现快速构建推荐模型 作者:程孟力 - 机器学习PAI团队 随着移动app的普及,个性化推荐和广告成为很多app不可或缺的一部分.他们在改善用户体验和提升app的收益方面 ...
- [Go] Golang并发控制: WaitGroup 含义和常规用法
一个 WaitGroup 等待一个 goroutine 集合的结束. 主 goroutine 调用 Add 设置需要等待的 goroutine 数量. 接下来每个 goroutine 运行并在结束时调 ...
- [FAQ] FinalCutPro 视频背景加模糊效果
1. 时间轴右上方,找到 倒数第二个 "显示或隐藏效果浏览器",里面有一个 "模糊" 效果: 2. "模糊"效果中的 "高斯曲线& ...
- WPF 已知问题 开启 IsManipulationEnabled 之后触摸长按 RepeatButton 不会触发连续的 Click 事件
本文记录 WPF 的一个已知问题,在 RepeatButton 上开启 IsManipulationEnabled 漫游支持之后,将会导致触摸长按到 RepeatButton 之上时,不会收到源源不断 ...
- WPF 基于 .NET 5 框架和 .NET 6 的 SDK 进行完全单文件发布
本文来告诉大家如何基于 .NET 5 框架和 .NET 6 SDK 进行完全单文件发布,这是对 WPF 应用程序进行独立发布,生成的是完全单文件的方法 在之前的版本,尽管也是基于 .NET 5 框架的 ...