jdbc入门2----实现增删改查

简介: jdbc入门2增删改一、前置教程:二、复习的基本jdbc编程六步三、jdbc之PreparedStatement3.1createStatement()3.2PreparedStatement()四、jdbc之ResultSet五、jdbc实现增删改查5.1增操作5.2删操作5.3改操作5.4查操作

一、前置教程:


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会预编译,会被缓冲,在缓存区中可以发现预编译的命令,虽然会被再次解析,但不会被再次编译,能够有效提高系统性能


f19fb409c47a4612a6832b8aaf1655ee.png


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"));
        }


输出结果:dd3787f2250447e4a691e9301c8b7d60.png


数据库:


9f3f2956406c42fe8e373814ce825ee1.png

目录
相关文章
|
7月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
833 7
|
7月前
|
SQL Java 数据库连接
除了JDBC,还有哪些常见的数据库访问技术?
除了JDBC,还有哪些常见的数据库访问技术?
591 2
|
Java 数据库连接 测试技术
SpringBoot入门 - 添加内存数据库H2
SpringBoot入门 - 添加内存数据库H2
949 3
SpringBoot入门 - 添加内存数据库H2
|
12月前
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
937 77
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
498 4
SpringBoot入门(4) - 添加内存数据库H2
|
12月前
|
XML 数据库 Android开发
Android数据库的使用(增删改查)
本文介绍了一个简单的数据库操作Demo,包含创建数据库、增删改查功能。通过5个按钮分别实现创建数据库、插入数据、删除数据、更新数据和查询数据的操作。代码结构清晰,适合初学者学习Android SQLite数据库基础操作。
349 5
|
12月前
|
数据库 Android开发 开发者
Android常用的room增删改查语句(外部数据库)
本文分享了将一个原生数据库驱动的单词APP重构为使用Room库的过程及遇到的问题,重点解决了Room中增删改查的常用语句实现。文章通过具体示例(以“forget”表为例),详细展示了如何定义实体类、Dao接口、Database类以及Repository和ViewModel的设计与实现。同时,提供了插入、删除、更新和查询数据的代码示例,包括模糊查询、分页加载等功能。此外,针对外部数据库导入问题,作者建议可通过公众号“计蒙不吃鱼”获取更多支持。此内容适合有一定Room基础的开发者深入学习。
328 0
Android常用的room增删改查语句(外部数据库)
|
关系型数据库 MySQL 数据库连接
Unity连接Mysql数据库 增 删 改 查
在 Unity 中连接 MySQL 数据库,需使用 MySQL Connector/NET 作为数据库连接驱动,通过提供服务器地址、端口、用户名和密码等信息建立 TCP/IP 连接。代码示例展示了如何创建连接对象并执行增删改查操作,确保数据交互的实现。测试代码中,通过 `MySqlConnection` 类连接数据库,并使用 `MySqlCommand` 执行 SQL 语句,实现数据的查询、插入、删除和更新功能。
|
SQL Java 关系型数据库
使用 JDBC 实现 Java 数据库操作
JDBC(Java Database Connectivity)是 Java 提供的数据库访问技术,允许通过 SQL 语句与数据库交互。本文详细介绍了 JDBC 的使用方法,包括环境准备、编程步骤和完整示例。
1200 7
|
SQL 关系型数据库 API
HarmonyOs开发:关系型数据库封装之增删改查
每个方法都预留了多种调用方式,比如使用callback异步回调或者使用Promise异步回调,亦或者同步执行,大家在使用的过程中,可以根据自身业务需要进行选择性调用,也分别暴露了成功和失败的方法,可以针对性的判断在执行的过程中是否执行成功。
563 13