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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> jdbc入门2----实现增删改查 -> 正文阅读

[大数据]jdbc入门2----实现增删改查

前言
👏作者简介:我是笑霸final,一名热爱技术的在校学生。
📝个人主页:笑霸final的主页
📕系列专栏::本文写在java专栏
📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥如果感觉博主的文章还不错的话,👍点赞👍 + 👀关注👀 + 🤏收藏🤏

一、前置教程:

JDBC入门一 驱动下载和第一个简单的jdbc程序链接

二、复习的基本jdbc编程六步

温故而知新:接下来就一起复习吧直接上代码;

//1.注册驱动
        Class.forName("com.mysql.jdbc.Driver");
//2.获取链接
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/fruitdb?useUnicode=true&characterEncoding=UTF-8&useSSL=false", "root", "0615");
        //id fname price fcount remaek
//3.获取数据库操作对象 和 4.执行sql语句
        String sql="insert into t_fruit values(100,?,?,?,?)"; //插入操作
        PreparedStatement psmt = connection.prepareStatement(sql);
        psmt.setString(1,"龙爸爸");
        psmt.setInt(2,15);
        psmt.setInt(3,100);
        psmt.setString(4,"榴莲是一种神奇的水果");
//5.处理
        int i = psmt.executeUpdate();
        System.out.println(i>0? "成功":"失败");
//释放资源
        psmt.close();
        connection.close();

    }

可以看出这里的代码和jdbc入门1的代码有所不同
1.createStatement()换成了prepareStatement()
2.SQL语句中的问号和多了一些set方法
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
接下来我们就来一起去解答这个疑惑吧

三、jdbc之PreparedStatement

3.1createStatement()

一般用法:Statement stmt = conn.createStatement();会返回一个Statement 的实列

Statement接口用于执行静态的sql语句,并返回一个结果对象,
Statement有四种形式的执行
1.executeQuery
用于产生单个结果集的语句,用于执行 SELECT 语句(SELECT无疑是是使用
最多的 SQL 语句) ,返回值为ResultSet
2.executeUpdate
用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句
3.execute
用于执行返回多个结果集、多个更新计数或二者组合的语句

3.2PreparedStatement()

Statement每次的执行都需要编译SQL
PreparedStatement会预编译,会被缓冲,在缓存区中可以发现预编译的命令,虽然会被再次解析,但不会被再次编译,能够有效提高系统性能
图片来自尚硅谷
PreparedStatement就当成一个装sql的小车,往返雨Java程序和database之间。

看代码:

 		String sql="insert into t_fruit values(100,?,?,?,?)"; //插入操作
        PreparedStatement psmt = connection.prepareStatement(sql);
        psmt.setString(1,"龙爸爸");
        psmt.setInt(2,15);
        psmt.setInt(3,100);
        psmt.setString(4,"榴莲是一种神奇的水果");

代码解析:可以在sql语句中不确定因素用?代替。然后获取PreparedStatement实例。在set***方法中数字就代表第几个?,然根据类型写对应的数据。

四、jdbc之ResultSet

一个ResultSet对象对应着一个由查询语句返回的一个表,这个表中包含所有的查询结果,实际上,我们就可以将一个ResultSet对象看成一个表。对ResultSet对象的处理必须逐行进行,而对每一行中的各个列,可以按任何顺序进行处理。

一些api

(1) getColumnCount()返回一个int值,指出结果集中的列数。

(2) getTableName(int column)返回一个字符串,指出参数中所代表列的表的名称。

(3) getColumnLabel(int column)返回一个String对象,该对象是column所指的列的显示标题。

(4) getColumnName(int column)返回的是该列在数据库中的名称。可以把此方法返回的String对象作为Resultset类的getXXX()方法的参数。不过,并没有太大的实际意义。

(5) getColumnType(int comlumn)返回指定列的SQL数据类型。他的返回值是一个int值。在java.sql.Types类中有关于各种SQL数据类型的定义。

(6) getColumnTypeName(int comlumn)返回指定列的数据类型在数据源中的名称。他的返回值是一个String对象。

(7) isReadOnly(int column) 返回一个boolean值,指出该列是否是只读的。

(8) isWriteable(int column) 返回一个boolean值,指出该列是否可写。

(9) isNullable(int column)返回一个boolean值,指出该列是否允许存入一个NULL 值。

五、jdbc实现增删改查

一些基本的注册链接,释放资源就不写了直接上sql代码:

5.1增操作

  String sql="insert into t_fruit values(100,?,?,?,?)"; //插入操作
        PreparedStatement psmt = connection.prepareStatement(sql);
        psmt.setString(1,"龙爸爸");
        psmt.setInt(2,15);
        psmt.setInt(3,100);
        psmt.setString(4,"榴莲是一种神奇的水果");
//5.处理
        int i = psmt.executeUpdate();
        System.out.println(i>0? "成功":"失败");

psmt.executeUpdate();会返回操作后成功的行数

5.2删操作

//创建造作对象,sql删除操作
        String sql="delete from t_fruit where fid=100;";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        //如果sql语句有?就填充参数,没有?就不用填充。
        //preparedStatement.setInt(1,100);;//1表示第一个?号
        int i = preparedStatement.executeUpdate();
        System.out.println(i>0?"成功":"失败");

5.3改操作

//jdbc实现修改操作
        String sql="update t_fruit set fname=?,remark=? where fid=36";
        PreparedStatement psmt = con.prepareStatement(sql);
        //如果sql语句有?就填充参数,没有?就不用填充。
        //preparedStatement.setInt(1,13);//1表示第一个?号
        psmt.setString(1,fruit.getFname());//1表示第一个?号
        psmt.setString(2,fruit.getRemark());//2表示第二个?号
        //psmt.setInt(3,fruit.getFid());
        int i = psmt.executeUpdate();
        System.out.println(i>0?"成功":"失败");

.根据fid=36来修改

5.4查操作

  String sql="select * from t_fruit ";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        
        ResultSet resultSet = preparedStatement.executeQuery();

       /* System.out.println("fid\tfname\ttprice\tremark");*/

        while(resultSet.next()){
            System.out.println(resultSet.getObject("fid")
                    +"\t"+resultSet.getObject("fname")
                    +"\t"+resultSet.getObject("price")
                    +"\t"+resultSet.getObject("remark"));
        }

输出结果:
在这里插入图片描述
数据库:
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:37:16  更:2022-03-15 22:37:30 
 
开发: 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/24 8:03:16-

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