JDBC接口介绍之Statement

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。

Statement:

1.介绍:对数据库数据一系列的操作依赖于SQL语句,而Statement接口是用来执行SQL语句的,Statement对象需要通过Connection类里面的createStatement()方法进行创建。如下图:

先创建一个连接数据库的类,以后就不用再写这片代码了,直接调用此类里面的方法即可:

image

创建Statement对象:

image

2.执行SQL语句的方法:

SQL语句大致可以分为DML(更新语句)和DQL(查询语句)两大类,Statement中分别有不同的方法操作这两类语句。

2.1 int executeUpdate(“SQL语句”):这个方法是用来执行更新语句的,如创建,修改,删除等,此方法的返回值为int类型,它反应的是影响的行数。使用案例如下图:

image

可以在SQLyog工具中验证:

image

注意:此代码只能运行一次,不能重复运行,否则会报错,因为运行一次后就有了mydb这个数据库,再运行一次就会再创建一个mydb数据库,发生重名。

2.2 ResultSet

executeQuary(“SQL语句”):此方法是用来执行查询语句的,它的返回值的类型是一个ResultSet接口,之所以不用数组或集合来做返回值的类型,而用ResultSet做返回值的类型是因为如果用数组或集合的话,那就意味着查询时要一次性将数据查询出来,如果查询的数据少还好,可是如果查询的数据极其庞大呢,这就不利于数据库的优化了。而ResultSet是一个接口,具体实现代码由数据库开发商决定,数据库开发商可自行决定到底是一条一条的查询还是一次性查询等,这就给数据库开发商留有余地,有利于程序的优化。使用案例如下图:

image

具体如何输出查询的内容可参照ResultSet和ResultSetMetaData的笔记。

3.批SQL执行:

java中有一个批SQL执行的设计,也就是批量执行SQL语句,它设计的本意就是把我们在程序中写的SQL语句都先累积在一起,然后再一次性执行多条SQL语句,但实际上是一次性执行,还是一句一句的执行,还要看数据库开发商写的驱动类里面是怎样的,而我们也无需在意这些小细节,因为这不是我们关心的事情,我们只需要知道并会使用这个操作即可。

3.1 addBatch() 累加SQL语句

3.2 executeBatch()

批量执行SQL语句,其返回值的类型是数组类型,返回的是每条SQL语句影响的行数

3.3 clearBatch() 清除批SQL语句

3.4 代码实现(下面以插入为例):

image

SQLyog验证结果如下:

image

4.提示:写SQL语句时,最好是现在SQLyog中写一遍看是否正确然后再复制到程序中去,因为如果在程序中是因为SQL语句写错了而报错,它是不会提示是什么错了,其报错的内容和在数据库中出错报错的内容一样。

原文地址:https://www.cnblogs.com/kaigexuetang/p/7443899.html