浅析JDBC常用的接口——JDBC的Statement接口、PreparedStatement接口

开发 后端
本文主要给大家介绍在Java中,通过连接数据库之后,如何来执行SQL的语句,接下来小编带大家一起来学习!

[[399263]]

大家好,我是Java进阶者。今天给大家继续分享JDBC技术。

一、前言

在《浅析JDBC常用的类和接口——JDBC的Driver接口、DriverManager类、Connection接口》文章中,我们介绍了使用Java语言来连接数据库。本文主要给大家介绍在Java中,通过连接数据库之后,如何来执行SQL的语句,接下来小编带大家一起来学习!

二、Statement接口

1.Statement接口是用于执行不带参数的比较简单SQL的语句。Statement对象是由Connection对象方法createStatement()创建,该对象会把SQL语句传递给数据库执行,然后返回数据库处理的结果。

2.Statement常用的方法

常用的方法:
1)boolean execute(String sql):执行给定的SQL语句。
2)ResultSet executeQuery(String sql):执行给定的SQL查询语句。
3)int executeUpdate(String sql):执行数据更新SQL语句。
4)Connection getConnection():获取数据库的连接。
5)int getMaxRows():获取最大行数。
6)ResultSet getResultSet():获取ResultSet对象。
7)void close():立即释放连接和JDBC资源。

三、通过一个案例了解Statement接口的用法

1.首先导入拓展包“mysql-connector-java-5.1.7-bin.jar”,在Ecilpse编辑软件的当前项目右键选择“Bulid Path”,再选择“Configure Build Path...”,选择Libraies,在右边有个“Add External JARs...”按钮把这个拓展包加进来,然后点击“OK”。具体操作如下图所示:

2.在上面介绍了Statement接口的基础知识点,接下来,小编通过一个案例带大家一起了解Statement接口的用法,代码如下所示:

  1. import java.sql.Connection
  2. import java.sql.DriverManager; 
  3. import java.sql.SQLException; 
  4. import java.sql.Statement; 
  5.  
  6.  
  7. public class Example26 { 
  8.     public static void main(String[] args) { 
  9.         // TODO Auto-generated method stub 
  10.         String driver="com.mysql.jdbc.Driver"
  11.         try { 
  12.             //加载驱动 
  13.             Class.forName(driver); 
  14.             //数据库地址,本机、端口号3306、数据库名为test 
  15.             String url="jdbc:mysql://localhost:3306/test"
  16.             //用户名 
  17.             String user="root"
  18.             //密码 
  19.             String pwd="168168"
  20.             //连接数据库 
  21.             Connection conn=DriverManager.getConnection(url,user,pwd); 
  22.             //创建Statement对象 
  23.             Statement stmt=conn.createStatement(); 
  24.             String sql="select * from student"
  25.             //执行SQL语句 
  26.             stmt.executeQuery(sql); 
  27.             System.out.println(stmt); 
  28.         } catch (ClassNotFoundException e) { 
  29.             // TODO Auto-generated catch block 
  30.             e.printStackTrace(); 
  31.         } catch (SQLException e) { 
  32.             // TODO Auto-generated catch block 
  33.             e.printStackTrace(); 
  34.         } 
  35.   } 
  36.  

效果图如下所示:

在上面代码中,首先是加载驱动程序,之后,进行Mysql数据库的连接,创建Statement对象,使用executeQuery()方法执行SQL语句。

四、PreparedStatement接口

1.PreparedStatement接口是用于预执行SQL语句的对象。SQL语句预编译存储在PreparedStatement对象中,可以使用PreparedStatement对象多次高效执行SQL语句。

2.PreparedStatement常用的方法

常用的方法:
1)void addBatch():将一组参数添加到此 PreparedStatement 对象的批处理命令中。
2)void setDouble(int parameterIndex, double x):将指定参数设置为给定 Java double 值。
3)void setFloat(int parameterIndex, float x):将指定参数设置为给定 Java REAL 值。
4)void setInt(int parameterIndex, int x):将指定参数设置为给定 Java int 值。
5)void setLong(int parameterIndex, long x):将指定参数设置为给定 Java long 值。
6)void setString(int parameterIndex, String x):将指定参数设置为给定 Java String 值。
7)void setObject(int parameterIndex, Object x):使用给定对象设置指定参数的值
8)boolean execute():在此 PreparedStatement 对象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句。
9)ResultSet executeQuery():在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。
10)int executeUpdate():在此 PreparedStatement 对象中执行 SQL 语句,该语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句,比如 INSERT、UPDATE 或 DELETE 语句;或者是无返回内容的 SQL 语句,比如 DDL 语句。

上述方法引用自文档《JavaTM Platform Standard Ed. 6》

五、通过一个案例了解PreparedStatement接口的用法

1.首先导入拓展包“mysql-connector-java-5.1.7-bin.jar”,在Ecilpse编辑软件的当前项目右键选择“Bulid Path”,再选择“Configure Build Path...”,选择Libraies,在右边有个“Add External JARs...”按钮把这个拓展包加进来,然后点击“OK”。具体操作的图片在上面。

2.在上面介绍了PreparedStatement接口的基础知识点,接下来,小编通过一个案例带大家一起了解PreparedStatement接口的用法,代码如下所示:

  1. import java.sql.Connection
  2. import java.sql.DriverManager; 
  3. import java.sql.PreparedStatement; 
  4. import java.sql.SQLException; 
  5.  
  6. public class Example25 { 
  7.     public static void main(String[] args) { 
  8.         //定义一个字符串来保存com.mysql.jdbc的Driver类路径 
  9.         String driver="com.mysql.jdbc.Driver"
  10.         try { 
  11.             //加载驱动 
  12.             Class.forName(driver); 
  13.             //数据库地址,本机、端口号3306、数据库名为test 
  14.             String url="jdbc:mysql://localhost:3306/test"
  15.             //用户名 
  16.             String user="root"
  17.             //密码 
  18.             String pwd="168168"
  19.             //连接数据库 
  20.             Connection conn=DriverManager.getConnection(url,user,pwd); 
  21.             //创建PreparedStatement对象 
  22.             PreparedStatement pst=conn.prepareStatement("select * from student where id=?"); 
  23.             String id="A11"
  24.             pst.setString(1,id); 
  25.             System.out.println(pst); 
  26.         } catch (ClassNotFoundException e) { 
  27.             // TODO Auto-generated catch block 
  28.             e.printStackTrace(); 
  29.         } catch (SQLException e) { 
  30.             // TODO Auto-generated catch block 
  31.             e.printStackTrace(); 
  32.         } 
  33.     } 

效果图如下所示:

在上面代码中,首先是加载驱动程序,之后进行Mysql数据库的连接,创建PreparedStatement对象包含了"select * from student where id=?",它发送给数据库管理系统,并且为执行做了准备。

六、总结

1.本文介绍了JDBC的Statement和PreparedStatement接口。

2.Statement接口是用于执行不带参数的比较简单SQL的语句。Statement对象是由Connection对象方法createStatement()创建,该对象会把SQL语句传递给数据库执行,然后返回数据库处理的结果。文中介绍了它的常用方法的使用,并通过一个案例来帮助大家了解Statement接口的用法。

3.PreparedStatement接口是用于预执行SQL语句的对象。SQL语句预编译存储在PreparedStatement对象中,可以使用PreparedStatement对象多次高效执行SQL语句。文中介绍了它的常用方法的使用,并通过一个案例来帮助大家了解PreparedStatement接口的用法。

本文转载自微信公众号「Java进阶学习交流」,可以通过以下二维码关注。转载本文请联系Java进阶学习交流公众号。

 

责任编辑:武晓燕 来源: Java进阶学习交流
相关推荐

2021-06-28 10:25:47

MySQL语句接口

2021-06-28 10:00:32

JDBC数据库MySQL

2021-06-22 10:24:22

Statement接口修改数据删除数据

2021-05-21 10:01:01

JDBCJavaStatement接口

2021-06-03 10:01:28

JDBCStatement接口

2009-07-06 17:36:06

ResultSetJDBC Connec

2009-07-17 10:59:59

iBATIS接口

2010-04-19 08:51:30

2009-06-19 17:14:47

JDBC驱动设置

2009-06-19 15:08:23

JDBC驱动

2009-08-31 17:02:28

C#接口编程

2009-09-23 17:28:55

Hibernate C

2010-04-16 16:12:51

jdbc分页

2009-09-28 14:45:22

C#接口的定义

2011-08-25 11:36:50

PreparedStaJDBC存储过程调用

2009-08-27 17:33:51

Interface接口

2009-07-16 14:46:48

jdbc statem

2009-07-14 16:02:42

JDBC例子

2009-08-27 18:09:49

C#接口的实现

2009-06-19 15:28:31

JDBC分布式事务
点赞
收藏

51CTO技术栈公众号