IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL JDBC编程 -> 正文阅读

[大数据]MySQL JDBC编程

什么是JDBC编程? JDBC的全称是Java数据库连接(Java Database connect),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等操作。

以下为 JDBC的创建及使用

1.创建一个maven项目

2.去maven 搜 MySQL 引入 JDBC 依赖,下图中第一个就是,然后根据自己MySQL版本号 选择对应的JDBC

3.下图是MySQL? ?JDBC 5.XX系列的依赖代码.

<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.49</version>
    </dependency>
</dependencies>

4.创建一个JDBC类,左边的是 Java 自带的接口,右边则是刚才引入的依赖,右边是DataSource的子类,里面具体实现了 DataSource 的功能.

public class JDBC {
    public static void main(String[] args) {
        DataSource ds = new MysqlDataSource();
    }
}

5. 下方为 MySQL?的 URL 以及URL每个部分对应的意思.

URL 为-->:   "jdbc:mysql://127.0.0.1:3306/wwj?characterEncoding=utf8&useSSL=false"

6.以下是连接数据库的代码,一共有五步

第一步, 是创建一个 JDBC类,然后 设置数据源,也就是 服务器的 url,用户名,密码 三个信息.

第二步, 是连接数据库,使用JDBC类里的get.Connection() 方法,这个方法会返回一个 Connection类,中文为 "连接"的意思,注意这个连接 会有一个受查异常,因为连接数据库可能会存在失败,我们需要处理这个异常.

第三步, 构造一个sql 然后将这个sql包装成 对象语句,(后面是我的猜测 不一定正确,包装成对象语句 安全性更高 可以防止sql注入攻击,而且使用起来也会更加的方便)

第四步, 发送sql语句 里面如果是 修改,增加,删除元素的话 需要使用 对象语句中的executeUpdate()方法,如果是查询操作 则需要使用 executeQuery() 方法.另外这两个方法的返回值是一个整数,其意义为 受影响的行数.

第五步, 释放资源,当sql执行完成后 需要释放相应的资源,否则可能会内存泄漏,先打开的后释放,后打开的先释放.一共需要释放 准备语句 和 连接数据库 这两条语句

public static void main(String[] args) throws SQLException {
        //1.设置数据源
        DataSource ds = new MysqlDataSource();
        ((MysqlDataSource)ds).setURL("jdbc:mysql://127.0.0.1:3306/wwj?characterEncoding=utf8&useSSL=false");//这里填写需要被连接的数据库的URL
        ((MysqlDataSource)ds).setUser("root");//这里填写被连接的数据库账户
        ((MysqlDataSource)ds).setPassword("1234");//这里填写被连接的数据库密码

        //2.使数据库和代码建立连接
        Connection connection = ds.getConnection();

        //3.构造一个sql语句
        String sql = "delete from student where name='王文杰'";
        //把这个sql包装成语句对象,叫做 准备语句
        PreparedStatement statement = connection.prepareStatement(sql);

        //4.发送sql语句
        //sql 里面如果是 insert(插入),update(修改),delete(删除) 都使用 executeUpdate 方法.
        //sql 里面如果是 select(查询),则使用 executeQuery 方法.
        int ret = statement.executeUpdate();//返回值是一个整数,就表明了影响了几行,就相当于在控制台里输入的sql后 得到的数字

        //5.sql语句结束后 需要释放资源
        statement.close();//释放语句对象
        connection.close();//释放数据库连接
    }

7.sql 拼接可以使用 ? 来表示尚未确定的参数,例如 select * from ? ; 这就表示 尚不确定传入的表名是什么,而使用? ?准备语句.setString(1,"student");则可以替换 sql 当中的问号,表示 传入的表名为 student , 1表示 替换第一个问号,如果有多个问号,可以用更大的数字来表示替换哪儿个问号.

8.JDBC 查询操作返回的不在是int类型的数据,而是一个临时表 类型是 ResultSet,通过迭代器可以一行一行的遍历这个临时表,并且可以通过 ResultSet 类中的 getInt("字段")之类的方法来获取一行中的某个字段对应的值.

public class JDBC {
    public static void main(String[] args) throws SQLException {

        DataSource ds = new MysqlDataSource();
        ((MysqlDataSource) ds).setURL("jdbc:mysql://127.0.0.1:3306/wwj?characterEncoding=utf8&useSSL=false");//这里填写需要被连接的数据库的URL
        ((MysqlDataSource) ds).setUser("root");//这里填写被连接的数据库账户
        ((MysqlDataSource) ds).setPassword("1234");//这里填写被连接的数据库密码
        Connection connection = ds.getConnection();
        String sql = "select * from student";
        PreparedStatement statement = connection.prepareStatement(sql);
        
        ResultSet resultset = statement.executeQuery();//返回的是一张临时表
        while(resultset.next()){//迭代器,如果下一行有元素那就返回true,并且获得下一行的数据,并且往下走一行.
            int id = resultset.getInt("id");//获取某一行字段名为 id 的值
            String name = resultset.getString("name");//获取某一行字段名为 name 的值
            System.out.println(id +" "+ name);
        }
        statement.close();
        connection.close();
    }
}

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:35:41  更:2022-09-21 00:37:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 11:06:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码