Java 如何通过JDBC 操作数据库
JDBC 是Java 数据库连接,即 Java DataBase Connectivity。JDBC 可让Java 通过程序操作关系型数据库,可基于驱动程序实现与数据库的连接与操作。JDBC 有统一的API ,提供一致的开发过程。其功能强大,执行效率高,可处理海量数据。
开发准备
在Navicat 中新建一个数据库,注意字符集 的选择,如下图所示:
然后运行 SQL 文件创建的表如下图:
接着在mysql 官网下载 mysql8驱动程序如下:
实际开发
1,加载并注册JDBC 驱动
在idea 中创建一个新工程,然后在工程名上右键,新建一个目录“lib”,用于添加所需依赖:
接着在idea中,执行 File -> Project Structure -> Modules -> Dependencies ,接着点击右边的 ”+“ ,添加mysql 驱动依赖,如下图所示:
然后就可以通过如下语句在程序中加载并注册JDBC 驱动:
Class.forName("com.mysql.cj.jdbc.Driver");
Class.forName 用于加载指定的JDBC 驱动类,其本质是通知JDBC 注册这个驱动类。
2,创建数据库连接
通过如下程序语句创建数据库连接:
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/imooc?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai",
"root", "123456"
);
- Connection 对象用于JDBC 与数据库的网络通信对象,所有数据库的操作都是建立在Connection 基础上。
- DriverManager 用于注册 / 管理JDBC 驱动程序,DriveManager.getConnection(连接字符串,用户名,密码),其返回值Connection 对象,对应数据库的物理网络连接。
3,创建Statement 对象
通过如下程序语句实现Statement 对象的创建:
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from employee where dname='研发部'");
说明:ResultSet 表示结果集。
4,遍历查询结果
如下程序语句可以实现结果集的遍历查询:
while (rs.next()) {
Integer eno = rs.getInt(1); //eno
String ename = rs.getString("ename");
Float salary = rs.getFloat("salary");
String dname = rs.getString("dname");
System.out.println(dname + "-" + eno + "-" + ename + "-" + salary);
}
5,关闭连接,释放资源
关闭连接,这里我们可以直接通过语句:
conn.close();
即可,因为底层的连接被关闭,其他的连接自然就被关闭了。
完整代码实现
package com.imooc.jdbc.sample;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* 标准JDBC操作五步骤
*/
public class StandardJDBCSample {
public static void main(String[] args) {
Connection conn = null;
try {
//1. 加载并注册JDBC驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2. 创建数据库连接
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/imooc?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai",
"root", "123456"
);
//3. 创建Statement对象
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from employee where dname='研发部'");
//4. 遍历查询结果
while (rs.next()) {
Integer eno = rs.getInt(1); //eno
String ename = rs.getString("ename");
Float salary = rs.getFloat("salary");
String dname = rs.getString("dname");
System.out.println(dname + "-" + eno + "-" + ename + "-" + salary);
}
}catch(Exception e){
e.printStackTrace();
}finally {
try {
if (conn != null && conn.isClosed() == false) {
//5. 关闭连接,释放资源
conn.close();
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
}
程序运行结果如下:
特别说明:以上程序只是为了说明应用 JDBC 开发的标准流程。
Java 如何通过JDBC 操作数据库的更多相关文章
- Java笔记(第七篇 JDBC操作数据库)
JDBC是连接数据库和java程序的桥梁,通过JDBC API可以方便地实现对各种主流数据库的操作.学习java语言,必须学习JDBC技术,因为JDBC技术实在java语言中被广泛使用的一种操作数据库 ...
- Java基础之原生JDBC操作数据库
前言 日常开发中,我们都习惯了使用ORM框架来帮我们操作数据库,本文复习.记录Java如何使用原生JDBC操作数据库 代码编写 封装几个简单方法 find查询方法 findOne查询方法 update ...
- 用于JDBC操作数据库的公共类
/* * @(#)CommonSql.java 2011-9-5 * * Copyright 2011 Bianjing,All rights reserved. */ import java.sql ...
- JDBC操作数据库的学习(2)
在上一篇博客<JDBC操作数据库的学习(1)>中通过对例1,我们已经学习了一个Java应用如何在程序中通过JDBC操作数据库的步骤流程,当然我们也说过这样的例子是无法在实际开发中使用的,本 ...
- JDBC操作数据库的学习(1)
单单对数据库的操作,比如说MySQL,我们可以在命令行窗口中执行,但是一般是应用程序要操作数据库,因此我们应该在程序中的代码上体现对数据库的操作,那么使用程序应用如何操作数据库呢?那就要使用到数据库的 ...
- JDBC操作数据库的三种方式比较
JDBC(java Database Connectivity)java数据库连接,是一种用于执行上sql语句的javaAPI,可以为多种关系型数据库提供统一访问接口.我们项目中经常用到的MySQL. ...
- Spark Streaming通过JDBC操作数据库
本文记录了学习使用Spark Streaming通过JDBC操作数据库的过程,源数据从Kafka中读取. Kafka从0.10版本提供了一种新的消费者API,和0.8不同,因此Spark Stream ...
- Spring入门(十五):使用Spring JDBC操作数据库
在本系列的之前博客中,我们从没有讲解过操作数据库的方法,但是在实际的工作中,几乎所有的系统都离不开数据的持久化,所以掌握操作数据库的使用方法就非常重要. 在Spring中,操作数据库有很多种方法,我们 ...
- JavaWeb_(Mybatis框架)JDBC操作数据库和Mybatis框架操作数据库区别_一
系列博文: JavaWeb_(Mybatis框架)JDBC操作数据库和Mybatis框架操作数据库区别_一 传送门 JavaWeb_(Mybatis框架)使用Mybatis对表进行增.删.改.查操作_ ...
- JDBC操作数据库的基本操作
JDBC操作数据库的基本步骤: 1)加载(注册)数据库驱动(到JVM). 2)建立(获取)数据库连接. 3)创建(获取)数据库操作对象. 4)定义操作的SQL语句. 5)执行数据库操作. 6)获取并操 ...
随机推荐
- 【云原生 · Kubernetes】Kubernetes简介及基本组件
1.Kubernetes简介 Kubernetes是Google开源的容器集群管理系统,其提供应用部署.维护. 扩展机制等功能,如图1.3所示.利用Kubernetes能方便地管理跨机器运行容器化的应 ...
- lauyi渲染
下拉框 <div class="layui-form-item x-city" id="start"> <label class=" ...
- 记一次hook mac地址实现伪装硬件码
1. 前言 好久没写文章了,工作比较忙,不过我还是对技术比较热爱,即使它不能给我带来利益,保持初心. 工作期间遇到一个问题,连接vpn的软件是校验机器硬件码,不是公司电脑不让使用vpn软件,上下班已经 ...
- 英格索兰扳手网口通信协议EOR原理
前言 前几天遇到这个需求,需要记录扳手每一次的周期数据,但是我不知道通信协议是什么,只知道是一个tcp的连接,问售后,也不给我网口调试软件(英格索兰自己家的软件).经过我俩天的谷歌,终于找到了他们公司 ...
- combobox 只能选择第一个
在使用combobox时有时对于特定的下拉框内容我们一般不需要去请求url获得值,我们只用在js里面控制就好了,昨天遇到的问题是在js里面按照api给的方法写进去,显示是正常的 但是当我去选择的时候发 ...
- MySQL 性能压测工具-sysbench,从入门到自定义测试项
sysbench是一个开源的.基于LuaJIT(LuaJIT 是 Lua 的即时编译器,可将代码直接翻译成机器码,性能比原生 lua 要高) 的.可自定义脚本的多线程基准测试工具,也是目前用得最多的 ...
- Linux 系统用户文件缺失造成“bash-4.2$”错误的解决办法
一.问题出现的原因 造成这个现象的原因是因为用户文件夹下的bash_logout.bash_profile和bashrc这三个隐藏文件缺失 二.问题复现 现在删除这三个文件 此时问题出现了 三.问题解 ...
- 03.Javascript学习笔记2
1.逻辑运算符 在javascript中与或非对应的逻辑运算符是: && || ! const a = true; const b = false; console.log(a &am ...
- 用 Java?试试国产轻量的 Solon v1.11.4(带视频)
一个更现代感的 Java 应用开发框架:更快.更小.更自由.没有 Spring,没有 Servlet,没有 JavaEE:独立的轻量生态.主框架仅 0.1 MB. @Controller public ...
- 软件工程大作业——“你帮我助”软件开发v2.0
项目简介 在疫情管控期间,很多物资由于信息不对称,不能达成资源的有效分配,尽管这样的事件已经基本不会在新冠疫情的场景中出现,但是开发出一个物品交换的公开信息平台在任何一个社区中都是有必要的,这是构建完 ...