Statement和prepareStatement的区别
[size=x-large]两个接口都是用来实现,然后将sql语句传入实现后的对象,并通过对象发送给数据库,但是两种方式又有很大的区别。接下来就说一下它们两个的区别。
首先从它们的实例化方式来说:
Statement的实例化方式是通过Conection的实例调用createStatement方法来完成的;
而prepareStatement是Conection的实例调用prepareStatement方法来返回一个prepareStatement的对象。
再来说他们发送sql语句的方法:
Statement会调用它的executeQuery方法,将sql语句以字符串的形式传入这个方法中,这个方法会返回数据库的结果集。这种方式调用一次方法只能传入一段确定的sql语句,因为这段sql语句是确定的,所以它只是满足了该次调用的需求,无法进行复用,如果需要写入其他的sql语句就要重新键入新的sql语句。如以下代码:
Statement statement=Conection.creatStatement ();
ResultSet resultset=Statement .executeQuery(“select name from table;”);//name为列名,table代表表名
而PrepareStament的方式呢,它在创建对象时就要将所用到的sql语句作为参数传入其中,被传入的sql语句并不是准确的sql语句,它所传入的sql语句可以说是个sql填空题,这里会用到“?”这个占位符。
代码如下:
PreareStatement prearestatement =Connection.preareStatement(“select ? from table;”);
可以看到在向PrepareStament的实例传入的sql语句并不是一个完整的sql语句。所以我们可以再调用PreareStatement 的setInt和setString还有setDate等方法来向“?”所在的位置传入值,这样就可以组成一个完整的sql语句。代码如下:
prearestatement.setString(1,“sex”);//这里的1为占位符的角标,从一开始,sex是向占位符处所传入的数据。这里的String代表的是传入的数据的类型。
之后再调用PrepareStament的executeUpdate方法来获取一个ResultSet对象,
ResultSet resultset=prearestatement.executeUpdate();
当然了上面示例代码里只用了一个占位符来举例,其实占位符可以有多个,只要你能够灵活的运用PrepareStament的各种set方法来组成一个合适的sql语句,就能完成一次sql操作并返回一个结果集ResultSet 的对象。
可以看出PrepareStatement的方式更为灵活,达到了一次编译多次复用,PrepareStatement会把先传入的sql语句传到数据库中进行预编译,这种方式对于批量处理sql语句可以提高很多的效率。
还有最后一方面就是安全性的问题,
PrepareStatement的方式可以隔绝一些数据本身的漏洞攻击。具体是怎样的攻击,我暂时没细研究,所以就到这里了!
[/size]
分享到:
相关推荐
在Java编程领域,JDBC(Java Database Connectivity)是连接Java应用程序和各种数据库的...通过阅读“使用JDBC操作数据库下载资料”,你可以找到更多关于JDBC实战操作的示例和详细教程,进一步提升你的数据库操作技能。
PreparedStatement pstmt = con.prepareStatement(sql); ``` JDBC 连接数据库的方法可以分为四个步骤:加载 JDBC 驱动程序、提供 JDBC 连接的 URL、创建数据库的连接、创建一个 Statement。通过这四个步骤,开发者...
JDBC(Java Database Connectivity)是Java语言中用于连接和操作数据库的应用程序接口。它定义了Java应用程序如何与数据库之间通信,允许用户执行SQL语句并获取结果。对于初学者来说,理解JDBC连接数据库的基本步骤...
JDBC(Java Database Connectivity)是Java程序与各种数据库进行交互的一种标准接口,它允许开发者用Java语言编写数据库操作代码。本篇文章将详细讲解JDBC连接数据库的步骤,并结合标签"源码"和"工具"来深入理解JDBC...
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO mytable VALUES (?, ?)"); ``` 5. **执行SQL操作** 通过`executeQuery()`执行SELECT查询,`executeUpdate()`执行INSERT/UPDATE/DELETE操作。例如...
prepareStatement和Statement是 Java 中两个常用的数据库操作接口,它们都可以用来执行 SQL 语句,但是它们之间有着明显的区别。 首先,从创建时的区别开始,Statement 需要通过 Connection 对象的 createStatement...
**JDBC(用PrepareStatement实现)** Java Database Connectivity (JDBC) 是Java平台中的一个标准API,用于在Java应用程序和各种数据库之间建立桥梁。它允许Java开发者执行SQL语句,进行数据查询、更新和删除等操作。...
PreparedStatement pstmt = con.prepareStatement(sql); CallableStatement cstmt = con.prepareCall("{CALL demoSp(?, ?)}"); ``` ##### 5. 执行SQL语句 `Statement`接口提供了三种执行SQL语句的方法: - `...
PrepareStatement是JDBC提供的一种预编译的SQL语句,它可以提高数据库操作的效率和安全性。本资源主要涵盖了使用JDBC PrepareStatement进行MySQL数据库操作的各种场景,包括基本的查询、更新以及批量处理。 首先,...
以上就是JDBC操作数据库的基本流程和关键知识点。通过学习和实践,开发者可以熟练地使用JDBC进行数据库操作,为各种Java应用程序提供数据支持。在实际开发中,结合DataSource和连接池等高级技术,可以构建出高效、...
JDBC 3.0是该API的一个重要版本,它在JDBC 2.0的基础上进行了增强,提供了更多的功能和性能优化,以满足开发者对数据库操作的需求。 ### JDBC基础 1. **连接数据库**:JDBC的核心是建立与数据库的连接。通过`Class...
在Java编程中,JDBC(Java Database Connectivity)是Java应用程序连接和操作数据库的标准接口。它允许程序员使用SQL语句执行数据库查询、更新和事务管理。本篇将详细讲解如何使用JDBC对数据库进行查询。 首先,...
**JDBC(Java Database Connectivity)**是Java编程语言中用于规范客户端程序如何访问数据库的应用程序接口,它提供了标准的方法来连接、操作和关闭数据库。在Java中,使用JDBC可以实现对各种数据库的操作,包括...
在Java编程中,JDBC(Java Database ...总结来说,JDBC分页主要是通过构造带有LIMIT和OFFSET的SQL查询来实现的,结合数据库连接、预编译的SQL语句和结果集的处理,可以在Java应用程序中优雅地完成数据库分页操作。
通过`Connection.prepareStatement()`创建。 5. **ResultSet**: 执行查询后返回的结果集,包含了满足查询条件的数据。可以通过迭代遍历,获取每一行的数据。 6. **CallableStatement**: 用于调用存储过程。类似于`...
以上就是使用JDBC操作数据库的基础知识和流程。通过这些API和步骤,开发者可以方便地在Java程序中集成对各种数据库的操作。随着技术的发展,现代框架如Spring Data JPA等已经极大地简化了这一过程,但在理解更高层次...
- 创建`PreparedStatement`对象:`PreparedStatement pstmt = connection.prepareStatement("INSERT INTO table (column) VALUES (?)");` - 设置参数值:`pstmt.setString(1, value);` - 执行更新语句:`pstmt....
JDBC是Java程序访问数据库的一组接口和类,它允许开发者使用SQL语句来操作数据库。JDBC提供了一个标准的API,使得开发者无需关心底层数据库的具体实现,即可与不同的数据库系统进行通信。 在Java中连接PG数据库,...
创建PreparedStatement对象通过Connection对象的prepareStatement(sql)方法实现。 执行SQL语句涉及到不同的方法,执行查询(SELECT)语句时使用executeQuery()方法,它返回一个ResultSet对象,包含查询的结果;执行...
### 数据库实验JDBC连接数据库知识点 #### 一、实验目的 - **了解DBMS的各种语言接口编程方法:** - 数据库管理系统(DBMS)提供了多种编程接口,包括但不限于ODBC、JDBC等,这些接口允许应用程序通过标准的方式与...