JDBC访问数据库(Mysql 及各种数据库的连接)
程序员文章站
2024-03-22 08:49:34
...
JDBC 是什么?
Java DateBase Connection(看这个英文八九不离十是起到一个连接的作用)
看下面这张图,JDBC 处于 Java 程序和 数据库中间,我们需要通过JDBC作为一个桥梁,
使得两者之间存在联系。
怎么使得两者之间建立联系呢?
我们可以通过 Java 的一些 API 进行建立连接。
什么是 API 呢?
简单来说就是 Java 中的一些 接口、方法、类。
通过这些来建立与数据库之间的关系
JDBC 操作数据库的各个环节:
1、JDBC API: 提供各种操作访问接口
Connection、Statement、PreparedStatement、ResultSet
2、JDBC DriverManager:
管理不同的数据库驱动,统一管理访问更加方便。
3、各种数据库驱动:
相应的数据库厂商提供的(第三方公司提供)
连接(直接操作数据库)
JDBC访问数据库的具体步骤(基本上是模板):
a、导入驱动,加载具体的驱动类
b、与数据库建立连接
c、发送Sql,执行
d、处理结果集
API 的功能及操作:
API 的主要功能:
a、与数据库建立连接
b、发送Sql语句1
c、返回处理结果
API的主要操作:
a、DriverManager: 管理JDBC驱动
b、Connection : 连接
c、Statement : 运行 Sql 语句(增删改查)
d、CallableStatement : 调用数据库中的存储过程 / 存储函数
e、Result : 返回结果集
各个数据库所用到的连接字符串(数据库的一些信息):
不同的数据库对应的连接字符串不同,(形式不同,内容类似-------哪种类型的数据库、IP地址、端口号、数据库名)
Oracle : jdbc:oracle:thin:@localhost:1521:数据库实例名 (你创建的数据库的名字)
MySql : jdbc:mysql://localhost:3306/数据库实例名
SQLServer : jdbc:microsoft:sqlserver:localhost:1433;databasename = 数据库实例名
数据库对应的 jar 包 及 对应的 导入驱动:
驱动在每个数据库各自对应的 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
代码实现对 MySQL 数据库的增、删、改操作:
增、删、改 都属于对数据库的更新操作,处理结果会返回一个数表示
几行受影响。
public class JDBPMySqlDemo {
private static final String URL = "jdbc:mysql://localhost:3306/sqltest";
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 {
// 导入驱动(加载具体的驱动类,如果本地没有就需要从官网进行下载,然后复制到该项目中,之后 Build Path)
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 S values('1001','zs',23)";
// 通过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();
}
上一篇: 关系数据库中的概念
下一篇: java基础面试题(1)
推荐阅读
-
JDBC访问数据库(Mysql 及各种数据库的连接)
-
使用 JDBC 连接MySQL 、SQL Server数据库
-
jdbc获取mysql、oracle数据库的表、字段、主键、唯一索引
-
同一个mysql数据库,不同的服务器连接,速度不同
-
Mac下python以及django的安装,管理,连接mysql数据库 博客分类: djangopython pythondjango
-
No suitable driver found for jdbc:mysql://localhost:3306/test 博客分类: JSP jsp连接数据库
-
数据库 - Truncate/Delete/Drop区别及MySQL如何清空表中的数据
-
java连接mysql数据库(JDBC驱动) mysqljdbcjava
-
java连接mysql数据库(JDBC驱动) mysqljdbcjava
-
数据库连接JDBC与数据库连接池c3p0、dhcp的关系