JDBC(JAVA数据库连接)

JDBC (JAVA数据库连接)

1.定义

jdbc(Java数据库连接)是一种用于执行SQL语句的Java API,由一组用Java语言编写的类和接口组成。

它可以为多种关系数据库提供统一访问,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,实现了所有这些面向标准的目标并且具有简单,严格类型定义且高性能实现的接口。

2. 使用前准备

  1. 在开发环境中加载指定数据库的驱动程序。(以Mysql为例,下载MySQL支持JDBC的驱动程序)

    官方下载地址:https://downloads.mysql.com/archives/c-j/

    一般不推荐下载最新版本(笔者使用的为5.1.47),请根据自己的数据库版本选择对应的驱动版本

在这里插入图片描述

  1. 将其加载进开发工具(以IDEA为例)

    • 首先在需要使用JDBC的项目中创建一个单独的目录,将刚下载的驱动程序复制进去

      image-20210730175137574
    • 接着右键驱动程序jar包,将其添加到库(Add As Library)

      image-20210730175420045

3. 使用步骤

  1. 创建DataSource对象,并设置URL(包含要访问的服务器、端口号、哪个数据库、数据库字符集等),数据库用户名以及密码。具体示例创建MySQL的数据库连接代码如下:

    //创建DataSource对象
    MysqlDataSource dataSource = new MysqlDataSource();
    //配置 DataSource  设置要访问的服务器、端口号、哪个数据库(这里连接的是本机,本机IP为127.0.0.1 默认端口号为3306)
    dataSource.setURL("jdbc:mysql://127.0.0.1:3306/student?characterEncoding=utf-8&useSSL=true");
    //设置账号
    dataSource.setUser("root");
    //设置密码
    dataSource.setPassword("root");
    
  2. 创建数据连接对象,通过dataSource.getConnection()方法 ,创建数据库连接对象Connection,其用于检查所加载的驱动程序是否可以建立连接,如果连接失败将抛出异常。

 Connection connection = dataSource.getConnection();
  1. 拼装sql语句(分为两种,固定sql语句以及可变sql),生成PreparedStatement对象

    学生表结构如下所示

    image-20210730180937537
    //方式1:固定sql
    String sql = "INSERT INTO student VALUES (1,'张三',10)";//给student表插入一个学生信息 学生表
    PreparedStatement ps = connection.prepareStatement(sql);
    
    //方式2:可变sql
    int id = 1;
    String name = "张三";
    int classId = 10;
    String sql = "INSERT INTO myemployees.student VALUES (?,?,?)";//使用?表示需要传入的参数
    PreparedStatement ps = connection.prepareStatement(sql);
     //设置可变参数
    ps.setInt(1, id);//第一个参数表示第i个?位置,第二个参数为传入的值
    ps.setString(2, name);
    ps.setInt(3, classId);
    

    4.调用Statement对象的相关方法执行相对应的 SQL 语句

    insert delete update语句使用executeUpdate

    int i = ps.executeUpdate();//返回执行的sql语句 修改了 多少行,如果修改失败返回0
    

    select语句 使用executeQuery

    通过调用Statement对象的**executeQuery()**方法进行数据的查会得到 ResulSet对象,ResulSet表示执行查询数据库后返回的数据的集合,ResulSet对象具有可以指向当前数据行的指针。通过该对象的next()方法,使得指针指向下一行,然后将数据以列号或者字段名取出。如果当next()方法返回null,则表示下一行中没有数据存在。使用示例代码如下:

    ResultSet resultSet = ps.executeQuery();
    
    while (resultSet.next())
    {
        System.out.println(resultSet.getInt("id"));
        System.out.println(resultSet.getString("name"));
        System.out.println(resultSet.getInt("classId"));
    }
    
    1. 关闭数据库连接
//依次关闭释放资源(后创建的先释放)
 resultSet.close();
 ps.close();
 connection.close();
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值