JDBC访问数据库的具体步骤(MySql + Oracle + SQLServer)
* 感谢DT课堂颜群老师的视频讲解(讲的十分仔细,文末有视频链接)
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/*
1、JDBC访问数据库的具体步骤:
a、导入驱动,加载具体的驱动类
b、与数据库建立连接
c、发送Sql,执行
d、处理结果集
2、API(接口、方法、类) 主要功能:
a、与数据库建立连接
b、发送Sql语句1
c、返回处理结果
3、API的几个操作:
a、DriverManager: 管理JDBC驱动
b、Connection : 连接
c、Statement : 运行 Sql 语句(增删改查)
d、CallableStatement : 调用数据库中的存储过程 / 存储函数
e、Result : 返回结果集
*/
public class JDBPMySqlDemo {
/* 这些值一般都是不轻易改变的,所以设置为常量
不同的数据库对应的连接字符串不同,(形式不同,内容类似-------哪种类型的数据库、IP地址、端口号、数据库名)
Oracle : jdbc:oracle:thin:@localhost:1521:数据库实例名 (你创建的数据库的名字)
MySql : jdbc:mysql://localhost:3306/数据库实例名
SQLServer : jdbc:microsoft:sqlserver:localhost:1433;databasename = 数据库实例名
*/
private static final String URL = "jdbc:mysql://localhost:3306/testdate";
private static final String USER = "root";
private static final String PWD = "root";
public static void update() { // 静态方法要求其内部用到的变量也应该是静态的(所以上述变量也应该设置为静态变量)
// 因为要进行两次异常处理,所以需要将变量设置成相对于 try..catch..语句的外部变量
Statement stam = null; // 会抛出SQLException异常
Connection connection = null; // 会抛出ClassNotFoundException异常
try {
/*
驱动在每个数据库各自对应的 jar包中,所以需要先把各个数据库对应的包进行导入
驱 动jar:(可以在这个链接中进行查找:https://mvnrepository.com/)
Oracle:ojdbc-x.jar
MySql:mysql-connector-java-x.jar
SqlServer:sqljdbc-x.jar
导入驱动(不同的数据库对应的驱动不同)
Oracle : oracle.jdbc.OracleDriver
MySql : com.mysql.jdbc.Driver
SqlServer : com.mircrosoft.sqlserver.jdbc.SQLServerDriver
*/
// 导入驱动(加载具体的驱动类)
Class.forName("com.mysql.jdbc.Driver");
// 连接(通过DriverManager.getConnection(连接字符串,用户名,密码))方法进行连接
connection = DriverManager.getConnection(URL, USER, PWD);
// 运行SQL语句(想要运行SQL语句要先创建一个Statement对象,用这个实例对象进行操作)
stam = connection.createStatement();
// 将sql语句作为字符串进行执行
// String sql = "delete from student where stuno = 2";
String sql = "insert into student values(2,'zs',12,'s3')";
// 通过stam的方法进行执行SQL语句进行更新数据库(返回值是影响的行数 (int) )
int count = stam.executeUpdate(sql);
if (count > 0) {
System.out.println("操作成功!");
}
} catch (ClassNotFoundException e) { // 出现异常时最好一个一个处理(更加安全)
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally { // 无论操作成功与否,我们都要进行关闭操作(放在Finally必定对执行)
try {
// 如果还没有执行到给 stam 变量赋值就已经异常处理了,那么stam还是 null,就会null.close(),从而出现空指针的问题
if(stam != null) stam.close(); // 避免出现空指针
if(connection != null)connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
// 将update() 设置为静态方法,便于调用
update();
}
}
如果写的不太清晰,或者有问题,可以留言,本人会认真回答。
颜大佬的视频链接:https://www.bilibili.com/video/av29086718?p=13
JDBC访问数据库的具体步骤(MySql + Oracle + SQLServer)的更多相关文章
- JDBC访问数据库的基本步骤是什么?
1.加载(注册)数据库驱动(到JVM) 2.建立(获取)数据库连接. 3.创建(获取)数据库操作对象. 4.定义操作的SQL语句. 5.执行数据库操作. 6.获取并操作结果集. 7.关闭对象,回收数据 ...
- JDBC访问数据库的基本步骤
加载驱动 通过DriverManager对象获取连接对象Connection 通过连接对象获取会话 通过会话进行数据的增删改查,封装对象 关闭资源
- java web中Jdbc访问数据库步骤通俗解释(吃饭),与MVC的通俗解释(做饭)
一.Jdbc访问数据库步骤通俗解释(吃饭) 1)加载驱动 Class.forName(“com.microsoft.jdbc.sqlserver.SQLServer”); 2) 与数据库建立连接 Co ...
- Jdbc访问数据库篇
一万年太久,只争朝夕 What JDBC 上部 JDBC(Java DataBase Connectivity)Java 数据库连接,主要提供编写 Java 数据库应用程序的 API 支持 java. ...
- 如何通过JDBC访问数据库
Java数据库连接(JDBC)用与在Java程序中实现数据库操作功能,它提供了执行SQL语句.访问各种数据库的方法,并为各种不同的数据库提供统一的操作接口,java.sql包中包含了JDBC操作数据库 ...
- 2017.10.3 JDBC访问数据库的建立过程
1·JDBC访问数据库,其访问流程: (1)注册驱动 (2)建立连接(Connection) (3)创建数据库操作对象用于执行SQL语句 (4)执行语句 (5)处理执行结果 (6)释放资源 2·注册驱 ...
- JDBC操作数据库的基本步骤:
JDBC操作数据库的基本步骤: 1)加载(注册)数据库驱动(到JVM). 2)建立(获取)数据库连接. 3)创建(获取)数据库操作对象. 4)定义操作的SQL语句. 5)执行数据库操作. 6)获取并操 ...
- JDBC API访问数据库的基本步骤。
JDBC本质:官方定义了一套操作所有关系型数据库的规则(接口),各个数据库厂商实现这个接口,提供数据库驱动jar包. 我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类. 任 ...
- Spring实战6:利用Spring和JDBC访问数据库
主要内容 定义Spring的数据访问支持 配置数据库资源 使用Spring提供的JDBC模板 写在前面:经过上一篇文章的学习,我们掌握了如何写web应用的控制器层,不过由于只定义了SpitterRep ...
随机推荐
- python3 三行代码基于HTTP2完美实现APNS推送【详解】
第一次做苹果APNS(Apple Push Notification service)推送,关于APNS推送原理以及证书的获取方式网上已经有许多资料,在此不做过多赘述,需要注意的是证书分为测试证书和正 ...
- MapInfo常见数据格式
在MapInfo 中所指的表是单纯的数据表或是图形与数据的结合.一个典型的MapInfo表将主要由*.tab.*.dat.*.wks.*.dbf.*.xls.*.map.*.id.*.ind文件格式组 ...
- Linux之shell编程的基本使用
1.Shell shell是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的系统级程序 2.shell编程打印hello world 2.1 代码部分 #!/bin/ba ...
- 小白学 Python 爬虫(41):爬虫框架 Scrapy 入门基础(八)对接 Splash 实战
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- mysql 多主一从
一.主服务器准备 1.1.环境准备 两台主机器ip分别为 100.100.100.105 (主1) 100.100.100.106(主2) 安装 mysql [root@centos ~]# yum ...
- Java 基础(一)| 使用泛型的正确姿势
前言 为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是泛型 泛型,即&qu ...
- 将jar包安装到本地仓库
通过cmd切换到apache maven 的bin目录 mvn install:install-file -DgroupId=com.antgroup.zmxy -DartifactId=zmxy-s ...
- C入门题目
37. 反转一个3位整数 反转一个只有3位数的整数. 样例 样例 1: 输入: number = 123 输出: 321 样例 2: 输入: number = 900 输出: 9 注意事项 你可以假设 ...
- 【Java并发基础】Java线程的生命周期
前言 线程是操作系统中的一个概念,支持多线程的语言都是对OS中的线程进行了封装.要学好线程,就要搞清除它的生命周期,也就是生命周期各个节点的状态转换机制.不同的开发语言对操作系统中的线程进行了不同的封 ...
- 我的ubuntu源18和16
16阿里云的 deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restric ...