statement在java中什么意思

问题描述:statement在Java表示什么? 这篇文章主要介绍了一个有趣的事情,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

java jdbc中Statement,ResultSet,PreparedStatement中各代表什么意思

statement在java中什么意思的相关图片

statement是Java语句, Java语句表示某种操作, 但是没有返回值。 例如 a = 5, if语句, break语句。

java jdbc中Statement,ResultSet,PreparedStatement中各代表什么意思的相关图片

java jdbc中Statement,ResultSet,PreparedStatement中各代表什么意思

 区别:

Statement执行一条sql就得编译一次,PrepareStatement只编译一次;常用后者原因在于参数设置非常方便;执行一条sql就得编译一次,后者只编译一次;还有就是sql放置的位置不同; 常用后者原因在于参数设置非常方便;

一般我们使用PreparedStatement代替Statement,因为:

一.代码的可读性和可维护性.

虽然用PreparedStatement来代替Statement会使代码多出几行,但这样的代码无论从可读性还是可维护性上来说.都比直接用Statement的代码高很多档次:。

stmt.executeUpdate("insert into tb_name (col1,col2,col2,col4) values ('"+var1+"','"+var2+"',"+var3+",'"+var4+"')");。

perstmt = con.prepareStatement("insert into tb_name (col1,col2,col2,col4) values (?,?,?,?)");。

perstmt.setString(1,var1);。

perstmt.setString(2,var2);。

perstmt.setString(3,var3);。

perstmt.setString(4,var4);。

perstmt.executeUpdate();。

二.PreparedStatement尽最大可能提高性能.。

每一种数据库都会尽最大努力对预编译语句提供最大的性能优化.因为预编译语句有可能被重复调用.所以语句在被DB的编译器编译后的执行代码被缓存下来,那么 下次调用时只要是相同的预编译语句就不需要编译,只要将参数直接传入编译过的语句执行代码中(相当于一个涵数)就会得到执行.这并不是说只有一个 Connection中多次执行的预编译语句被缓存,而是对于整个DB中,只要预编译的语句语法和缓存中匹配.那么在任何时候就可以不需要再次编译而可以 直接执行.而statement的语句中,即使是相同一操作,而由于每次操作的数据不同所以使整个语句相匹配的机会极小,几乎不太可能匹配。

三.最重要的一点是极大地提高了安全性.。

使用预编译语句.你传入的任何内容就不会和原来的语句发生任何匹配的关系.只要全使用预编译语句,你就用不着对传入的数据做任何过虑.而如果使用普通的statement,有可能要对drop,;等做费尽心机的判断和过虑.。

至于ResultSet, ResultSet 包含符合 SQL 语句中条件的所有行,并且它通过一套 get 方法(这些 get 方法可以访问当前行中的不同列)提供了对这些行中数据的访问,例如:

java.sql.Statement stmt = conn.createStatement();。

ResultSet r = stmt.executeQuery("SELECT a, b, c FROM Table1");。

while (r.next())。

 // 打印当前行的值。

 int i = r.getInt("a");。

 String s = r.getString("b");。

 float f = r.getFloat("c");。

 System.out.println("ROW = " + i + " " + s + " " + f);。

在Java中 Connection、Statement、ResultSet 、PreparedSta的相关图片

在Java中 Connection、Statement、ResultSet 、PreparedSta

Statement接口:用于执行不带参数的简单SQL语句。创建Statement实例对象后可以调用JDBC提供的3种执行SQL语句的方法:

(1)executeUpdate()方法,一般用于执行SQL的INSERT,DELETE,UPDATE语句。

(2)executeQuery()方法,一般用于执行SQL的SELECT语句,因为。

它的返回值是执行SQL语句后产生的一个ResultSet接口的实例(结果集)。

(3)execute()方法,即一般它执行的SQL语句既有查询又有更新值,约等于executeUpdate()和executeQuery()两个方法的合辑。

PreparedStatement接口:它与Statement。

的主要区别

(1)它包含的SQL语句是预编译的,所以当多次执行一条SQL语句时用它会更快。

(2)在设置参数是可以用“?”代替。如:

PreparedStatement。

pstmt=conn.preparedStatement(insert。

into

test

values(?,?));

pstmt.setString(1,'gg');。

pstmt.setString(2,'123');。

ResultSet接口:包含了Statement和PreparedStatement的executeQuery方法中SELECT的结果集。相当于用它来读取数据库里每列的值。

在Java中 Connection、Statement、ResultSet 、PreparedSta的相关图片

在Java中 Connection、Statement、ResultSet 、PreparedSta

Connection是建立与数据库的链接,Statement算是一个连接的实例,用来执行SQL语句,ResultSet是查询后得到的结果集,得到结果后必须执行.next()方法。

给你个我刚写的例子,区别很好理解的,我一般都用Statement,这是第一次用PreraredStatement   只不过是在后面赋值而已。

public class Test {。

 public static void main(String[] args){。

  String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";。

  String dbURL = "jdbc:sqlserver://localhost:1433;  DatabaseName=LIBRARY";。

  String userName = "sa";。

  String userPwd = "";。

  Connection dbConn;。

  Statement stmt;。

  PreparedStatement ps;。

  try {

   Class.forName(driverName);。

   dbConn = DriverManager.getConnection(dbURL, userName, userPwd);。

   stmt = dbConn.createStatement();。

   ResultSet rs1 = stmt.executeQuery("select *from borrow where uno = 2011111276");。

   System.out.println("statement:");。

   while (rs1.next()) {。

    System.out.println(rs1.getString(1)+"  "+ rs1.getString(2));。

   }

   

   

   

   ps = dbConn.prepareStatement("select *from borrow where uno = ?");。

//注意这句

   ps.setString(1, "2011111276");。

   ResultSet rs2 = ps.executeQuery();。

   System.out.println("preparedstatement:");。

   while (rs2.next()) {。

    System.out.println(rs2.getString(1)+"  "+ rs2.getString(2));。

   }

  } catch (Exception e) {。

   e.printStackTrace();。

  }

 }

什么是Statement

Connection指数据库连接,只有连接数据库成功后才可以操作数据库。

Statement和PreparedStatement:声明语句,封装SQL语句并执行更新或查询功能。

ResultSet指查询结果集合,可以循环获取查询结果。

Statement和PreparedStatement的区别:Statement指针对一些简单的SQL语句,不带参数,直接执行,而PreparedStatement在封装SQL时可以在SQL语句中配置参数(使用?),然后通过PreparedStatement的setString等方法设置这些参数,然后执行SQL语句。

使用情况主要看你的SQL语句是否带参数了。

原文地址:http://www.qianchusai.com/statement%E5%9C%A8java%E4%B8%AD%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D.html

60字作文大全30篇,作文60字大全 简单

60字作文大全30篇,作文60字大全 简单

thk和上银哪个好,thk和上银滑块可以通用吗

thk和上银哪个好,thk和上银滑块可以通用吗

v圈8u是什么意思,v圈4v是什么意思

v圈8u是什么意思,v圈4v是什么意思

vc++2015运行库下载,vc2015运行库安装教程

vc++2015运行库下载,vc2015运行库安装教程

answer的音标怎么写,answer怎么读语音音标

answer的音标怎么写,answer怎么读语音音标

iphone12pro是wifi6吗,苹果12promax是wifi6吗

iphone12pro是wifi6吗,苹果12promax是wifi6吗

wheniwas13yearsold完形填空-60,完形填空 when i was in the third

wheniwas13yearsold完形填空-60,完形填空 when i was in the third

wheniwas13yearsold完形填空-50,完形填空 when i was in the third

wheniwas13yearsold完形填空-50,完形填空 when i was in the third

quantity什么意思中文

quantity什么意思中文

habite法语什么意思

habite法语什么意思