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 ...
随机推荐
- POJ 3304 Segments(判断直线与线段是否相交)
题目传送门:POJ 3304 Segments Description Given n segments in the two dimensional space, write a program, ...
- 快速掌握—HTML快速实现自定义Input开关
HTML <input id="customSwitch" type="checkbox" /> <label for="custo ...
- mongodb的文本搜索
1.当mongodb进程文本搜索的时候, 一个collection,只有一个文本查询的索引. 2.全文索引的定义,搜索的是有意义的词,不是字母 一开始是简单的用中文姓名的姓,如:张,来查询,但是无效, ...
- python打印图形
i = 0 while i < 5: # print('*****') 效果与下行相同 print('*'*5) i+=1 print('\n\n') i = 1 while i < 6: ...
- java通过word模板生成word文档
介绍 上次公司项目需要一个生成word文档的功能,有固定的模板根据业务填充数据即可,由于从来没做过,项目也比较着急于是去网上找有没有合适的工具类,找了好几种,看到其中有freeMark模板生成比较靠谱 ...
- Manacher 学习
推荐博客 :https://blog.csdn.net/zzkksunboy/article/details/72600679 作用 线性时间解决最长回文子串问题. 思想 Manacher充分利用了回 ...
- dp - LIS
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于 ...
- js css html加载顺序
1.js放在head中会立即执行,阻塞后续的资源下载与执行.因为js有可能会修改dom,如果不阻塞后续的资源下载,dom的操作顺序不可控.正常的网页加载流程是这样的.浏览器一边下载HTML网页,一边开 ...
- java面试题-spring篇
这次是关于spring的面试题,和上次一样依旧挑了几个具有代表性的. 一. 谈谈你对 Spring 的理解 Spring 是一个开源框架,为简化企业级应用开发而生.Spring 可以是使简单的 Ja ...
- Redis 使用总结
1. 避免大key 危害: 数据热点问题,集群模式在slot分片均匀情况下,会出现数据和查询倾斜情况,部分有大key的Redis节点占用内存多,QPS高 慢查询问题,服务超时 网卡带宽压力,极端情况下 ...