JDBC连接数据库

一、介绍

        JavaDataBaseConnectivity(Java语言连接数据库),是sun公司制定的java统一访问数据库的接口。在java.sql.*包下。

二、使用JDBC连接MySql

1、导入mysql驱动包

         <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.33</version>
        </dependency>

2、编写JDBC连接代码

加载驱动类

        驱动类只要在项目启动时加载一次即可,所以要放在静态代码块中。

static {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }

连接数据库

// 数据库连接地址
String url = "jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf8&useSSL=false";
// 获取数据库连接对象(参数:数据库地址,帐号,密码)
Connection con = DriverManager.getConnection(url, username, password);

编写sql语句

// ?表示占位符,后面会给?赋值
// 添加语句,id设置了auto_increment所以写null即可
String sql1 = "insert into music values(null,?,?,?,?)";
// 删除语句
String sql2 = "delete from music where id = ?";
// 修改语句
String sql3 = "update music set name = ? where id = ?";
// 查询语句
String sql4 = "select * from music where id = ?";

预准备sql

// 获取预准备sql对象
PreparedStatement ps = con.prepareStatement(sql);
// 给占位符赋值(参数:?下标从1开始,给?赋的具体值)
ps.setInt(1, id);

执行sql语句

        执行增删除语句,返回值是受影响的行数。

int count = ps.executeUpdate();

        执行查询语句。

// 执行查询语句,返回结果集对象
ResultSet rs = ps.executeQuery();
// 遍历结果集 rs.next() 判断是否存在下一行数据
while (rs.next()) {
    // 获取指定下标的列,从1开始
    System.out.println(rs.getInt(1));
    System.out.println(rs.getString(2));
    // 更多列...
}

关闭数据库连接

// rs.close(); 如果是查询语句
ps.close();
con.close();

三、使用DbUtils工具类操作mysql

1、导入相关依赖

<!-- dbutils工具包 -->
        <dependency>
            <groupId>commons-dbutils</groupId>
            <artifactId>commons-dbutils</artifactId>
            <version>1.8.1</version>
        </dependency>

        <!-- 数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.22</version>
        </dependency>

2、编写数据源类

package com.buba;

import com.alibaba.druid.pool.DruidDataSource;

import javax.sql.DataSource;

/**
 * @author 游王子og
 * @title MyDataSource
 * @date 2024/5/20 16:46
 */
public class MyDataSource {
    private static DruidDataSource dataSource;

    static {
        dataSource = new DruidDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/数据库?useUnicode=true&characterEncoding=utf8&useSSL=false");
        dataSource.setUsername("root");
        dataSource.setPassword("密码");
    }

    public static DataSource getDataSource() {
        return dataSource;
    }
}

3、使用QueryRunner类操作数据库

        创建QueryRunner对象

// 创建QueryRunner对象,将数据源传入该对象中
QueryRunner qr = new QueryRunner(MyDataSource.getDataSource());

        执行添加、删除、修改语句,返回受影响的行数。

int count = qr.update(sql,占位符值1,占位符值2 ...);

        执行查询语句,返回值是结果集处理器指定的对象。

T t = qr.query(sql,结果集处理器对象,占位符值1,占位符值2...);

        结果集处理器类如下:

  • BeanHandler:返回单一的结果对象。
  • BeanListHandler:返回List集合对象。
  • ScalarHandler:返回指定的下标/列名的值。
  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游王子og

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值