JDBC快速入门操作

一、jdbc简介

 JDBC是java用于连接数据库的api,数据库软件有多种,像MySQL,SQLsever,Oracle等数据库,这些数据库都是由不同的团队开发的,所以相同的功能的api的名字不同,当一个后端工程需要切换一个数据库软件时,就需要改写后端的大量跟数据库相关的代码,非常麻烦,所以Java自己提供了一套JDBC来兼容所有的数据库操作,各个厂商也根据Java的JDBC的api提供了自家数据库的驱动包,这样就是的JDBC编写时,只需要下载对应数据库的驱动包,就能使用同一套api操作不同的数据软件。

二、引入数据库驱动包

有两种办法

  1. 直接下载
    • 在Maven仓库搜索Mysql
      JDBC快速入门操作_第1张图片
    • 选择和数据库版本匹配的数据库驱动包
      JDBC快速入门操作_第2张图片
    • 点击jar直接下载好驱动包
      JDBC快速入门操作_第3张图片
    • 下载好之后在jdbc项目下面新建一个lib目录,将下载好的驱动包移动到目录下
      JDBC快速入门操作_第4张图片
  2. 创建maven项目引入依赖(和之前的Maven项目引入依赖步骤一样创建maven项目引入依赖)

三、基本api介绍

  1. DataSourse接口
     这是一个描述一个数据库的接口,这个接口是java自带的,它实例化需要数据库驱动包提供的实现了这个接口的DataSource类,本文使用的MySQL驱动包,所以对应的类名叫做MySQLDataSource。
    在这里插入图片描述
     创建好这个DataSource之后要让这个DataSource和想要操作的数据库关联起来,所以给它赋值这个数据库的对应信息。这些信息就包括,数据库用户名(user),数据库密码(password),数据库的位置信息(url)。
    在这里插入图片描述
    用户名只要不去改,自动就是数据库生成的root,password就是每次运行数据库需要输入的密码,这两个是登录数据库的钥匙,url则描述了数据库到底是在网络上的那个位置。这个url和http中的url的结构是一样的。
    jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf8&useSSL=false
    
    1. jdbc:mysql
      jdbc的版本,此时jdbc使用的是mysql驱动版。
    2. 127.0.0.1:3306
      因为是操作的本机的数据库,所以此时的ip地址是127.0.0.1,冒号后面的端口号是3306,MySQL数据库默认使用的就是3306端口。
    3. /jdbc
      数据库路径,选中的jdbc这个数据库,这个库要首先自己创建好。
      JDBC快速入门操作_第5张图片
      4.?后面的就是一些配置信息
      characterEncoding=utf8表示字符集使用utf8字符集
      useSSL=false表示不使用加密传输
      两者之间用&隔开。
  2. Connection类
    Connection是连接类,它抽象出了连接池中的连接,在实例化了DataSource,明确了目标数据库的各种信息之后,jdbc就会创建连接池,连接池会进行多个连接,当需要使用连接时,就用getConnection方法取出一个连接。然后就可以使用取出的连接进行消息的传递了。
    在这里插入图片描述
  3. Statement接口
     Statement是用来处理sql语句的类,主要使用两个它的子类,PreparedStatement和Statement。
     其中PreparedStatement会对sql语句进行预处理,statement不会。
    因为sql语句是字符串,距离真正数据库能执行的命令还需要被解析,而服务器需要接收四面八方传来的sql语句,所以一般客户端在发送sql语句时,要先对sql语句进行解析,将解析后的命令发送给服务器,从而减轻服务器的负担。所以一般Statement不建议使用
    JDBC快速入门操作_第6张图片
    实例化PreparedStatement时需要传入String类型的sql语句。
  4. executeUpdate和executeQuery方法
     executeUpdate是提交sql语句到服务器,并且返回一个int类型的数表示sql语句影响了几行。(适合delete,create,insert等)
     executeQuery是提交sql语句到服务器,并获取到服务器返回的结果,用resultSet类来接收。(适合select)
    JDBC快速入门操作_第7张图片
  5. 参数化的sql语句
    可以用?来代替sql语句中的参数。
    JDBC快速入门操作_第8张图片
    通过下标来选中第几个?(下标是从1开始的),并且用方法名setInt,setString来表示插入的参数的类型。
    构造好之后就可以用executeQuery或者executeUpdate来提交代码。
    可以多次设置不同的值,来实现不同的提交语句
  6. 资源回收(close)
    connection,statement,Resultset都需要在不使用之后对其进行关闭,如果一个connection要多次发送不同sql语句,就要产生多个statement,每个statement都会占用一定资源,需要显示的关闭。
    关闭的顺序和创建的顺序相反,ResultSet,Statement,Connection。
    有些情况下,直接关闭connection也可以自动的关闭和connection关联的ResultSet,Statement,但是这取决于对应的数据库驱动器,所以一般情况下,还是正确的关闭顺序,依次关闭比较好。

你可能感兴趣的:(数据库,mysql)