0
点赞
收藏
分享

微信扫一扫

java连接数据库(一)JDBC

你的益达233 2022-04-22 阅读 82
java

JDBC是什么?

java DataBase Connectivity——用java语言操作(关系型)数据库
概述:
是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口(是链接数据库和JAVA应用程序的纽带),提供了诸如查询和更新数据库中数据的方法。

——jdbc的背景(了解):
每个数据库厂商都有自己的数据库驱动,为了实现我们可以方便地连接到到不同数据库
(比如你的账户信息在MySQL数据库,头像图片在Oracle数据库,注:Oracle的SQL语法与MySQL有很大不同)
(举例:就好像你看一篇文章,里面有些文字用汉语,有些文字用英语、德语、法语…,为了看懂这篇文章,你被迫去学习不同的语言)
为了解决这种问题,官方(sun公司)定义了一套操作【所有关系型数据库】的规则/基准(即接口),各个数据库厂商去实现这套接口提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类

因此,JDBC是什么?
是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准/规范,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。(类似于统一使用一种文字,比如全世界都使用中文来写字)

作用:

有了JDBC API,可以大量简化重复性的代码工作,就不必为访问Mysql数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问DB2数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。

JDBC的主要任务:

与数据库建立一个链接
向数据库发送SQL语句
处理从数据库返回的结果

快速入门:

0、创建一个多级项目(如果不会创建,可以参考这篇文章)
(也可以自己随便创建一个项目)
备注:不支持发行版本5
1、导入jar包(maven方式)
【mysqk-connector】【junit】

	<dependencies>
 		<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        
        <!--注册mysql驱动-->
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
        </dependency>
    </dependencies>

可能出现的问题:

idea中pom.xml文件名是红色

新版idea如何刷新maven文件

  1. 注册驱动(告诉程序该使用哪一个数据库驱动jar包)

    1. Class.forName(“com.mysql.cj.jdbc.Driver”);
      加载Drive类进来(然后静态代码块自动执行了注册驱动程序的方法)
  2. 获取数据库连接对象Connection(只连接到数据库 ,没有到表)

  3. 定义sql

  4. 获取执行sql语句的对象statement

  5. 执行sql,接受返回结果

  6. 处理结果

  7. 释放资源(避免内存泄漏问题)

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class JdbcTest{
    public static void main(String[] args) throws Exception {
//        1、导入connect依赖
//        2、注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
//        3、获取数据库链接对象(数据库(端口号)、账号、密码) :
//【注意】如果复制代码的话这里需要修改成你对应的数据库账号和密码
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/user_db?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8", "root", "123456");
//        4、定义sql语句
        String sql ="UPDATE `t_user` SET `userage` = '18' WHERE `id` = '1'";
//        5、 获取执行sql的对象——Statement
        Statement stmt = conn.createStatement();
//        6、执行sql——stmt.executeUpdate(sql);
        int count = stmt.executeUpdate(sql);
//        7.处理结果
        System.out.println(count);
//        8、释放资源(先释放stmt)
        stmt.close();
        conn.close();
    }
}

优点:

JDBC使程序员摆脱了复杂的驱动程序调用命令和函数,并能够处理APP应用程序的重要部分。

由于JDBC支持各种关系数据库,因此大大提高了程序的可移植性。

JDBC API是面向对象的,可以将用户常用的方法封装为-类,以便以后使用。

缺点:

频繁创建与销毁连接,比较耗费机器的性能跟资源,也没有太大意义
解决方案:数据库连接池

参考文章:
自制数据库连接池(DateSource数据源)
JDBC概述(JDBC是什么,主要作用,驱动类型等)

举报

相关推荐

0 条评论