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

一、前言

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

二、Statemen@ Y p } ! & : ) 7t接f [ ? ^ ` : e M N

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

2x I S o Q C J.Statement常用的方法E 6 e X | t P

常用的方法:
1)boolean execute(Strinx 8 J / 5g sql):执行给定的SQL语句。
2)ResultSet executeQuery(String sql):执行给定的SQL查询语句。
3)int exv m K # J 9 &ecuteUpdate(String sql):执行数据[ Y ^ j更新8 ! % \ b o ^ tSQL语句。
4)Connection getConnection():| # K ! T c &获取数据库的连接。
5)int getMaxRows():获取最大行数。
6)ResultSet getResultSet():获取O Q @ ! # WResultSet对象。
7)void close():立即释放连接和JDBC资源。

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

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

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

  1. im` \ P S Pportjava.sql.Connection;
  2. imQ n W M gportjava.sql.DriverManager;
  3. importjava.sw \ zql.SQLExi , b 1 9 Mception;
  4. ig ; h k u h 9 } ]mportjava.sql.S1 } ] B 8tatement;
  5. publicclassExample26{
  6. publicstaticvoidmain(String[]args){
  7. //TODOAuto-generatedmethodstub
  8. Stringdriver="com.mysql.jdbc.Driver";
  9. try{
  10. //加载驱动
  11. Class.forName(driver);
  12. //数据z 2 { k F B库地址,本机、端口号3306、数据库名为test
  13. Stringurl="jdbc:mysql://localhost:3306/test";
  14. //用户名
  15. Stringuser="root";
  16. /Q | k a 0 6 { M i/密码
  17. Stringpwd="16m Q W m L E T8168";
  18. //连接数据库
  19. Connectionconn=DriverManager.getConnection@ J t r / | 4 *(url,user,pwd);
  20. //创建Stat/ V u / W L M oement对象
  21. Statementstmt=co7 . & L 3 / ? 9nn.cC { 0 W vreateStatement();
  22. Stringsql="select*fromu 7 A : } 5 F HstuH u & 0dent";
  23. //执行SQL语句5 w o q L x v
  24. stmB S 0 i A 0t.executeQuery(sql);
  25. System.out.println(stmt);
  26. }cu } 9 Yatch(ClassNotFoundExcepti2 ^ rone){
  27. //TODOAuto-generatedcatchblock
  28. e.printStackTrace();
  29. }catch(SQLExceptione){
  30. //TODOAuto-generatedcatchblocS & \k
  31. e.prY | Y ? : A ^intStackTrace();
  32. }
  33. }
  34. }

效果图如下所示:

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

四、PreF 2 ) ) [ 9pa{ q | v *redSta| U B s s HtemeN 3 M u d ,nt接口

1.Pre+ e . 3 _ [ $ { –paredStatement接口是用于预执行SQL语句的对象。SQL语句预编6 ) G G d B D o译存储在Prepar% B H FedStatement对象\ = Y [ V 4中,可以使\ B ` k I B用PreparedStatemeR S o G ` p mnt对象多次高效执行SQL语] # T句。

2.PreparedStatement常4 P G用的方法

常用的方法:
1)void addBatch():将一组参数添加到此 Prepl 9 IaredStatement 对象的批处理命令中。
2)void setDoq f : T T I \ \uble(int parameterIndex, double x):将指定参数设置为给定 Java double 值。
3)void setFloat(int parameterIndn % g * j : jex, float x):将指定参数设置为给定 Java REAL 值。, X h – –
4)voi` U 5 )d setInt(int parameterz Y J x s y ) rIndex, int x):0 T \ q D将指定参数设置为给定 Java int 值。
5)void setLong(int parameterIndex, long x):将指定参数设置为给定 Javg ` u e E i La long 值。
6)void setString(int parametW u ^ R K J @erIndex, String x):将指定参数设置为给定 Java String 值。
7)void setObject(int parameterIndex, Object x):使用给定对象设k L w s I \ q m f置指定参数G \ d : a的值
8)boolean execute():在此 PreparedStatement 对o d – ] 7 W (象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句。
9)ResultSet executeQuery():3 % 8 ] ( m在此 Preparede w a 3 y 2 F v |Statement 对象中执行 SQL 查询,并返回H ; D该查询生成的 ResultSet 对象。
10)int executeUH R f B _ H d opdate():在此 PreparedStatement 对象中执行 SQL 语句,该语句必须是一个 SQL 数据8 I ` h操作语言(Data Manipulation Lp p , w W x 8 W =anguage,DML)语句,比如 INSERT、UPDATE 或 DELETE 语句;或者是无返回内容的 SQL 语句,比如 DDL 语句。

上述方法引用自文档《JavaTM Pa j 3latform Standard Ed. 6》

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

1.首先导入拓展包“mysql-connector-java-5.1.7-bin.jar”,在Ecilpse编辑软e f 1 A O r B件的当前项目右键选择“Bulid Path”,再选择“Configure Build Path…”,选择Libraies,在右边有个“Ad* z k 4d^ \ ~ ^ A g d External JARs…”按钮把这个拓展包加进来,然后点击“OK”。具体操作的图片在上面。

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

  1. importjava.sql.Connection;
  2. importjava.sql.DrA 2 N u f L 1 5 liverMa8 ! ` M p j ; Ynager;
  3. importjava.sql.PreparedStatement;
  4. importjava.sql.SQLException;
  5. publicclassExample25{
  6. publicstaticvoidmain(String[]args){
  7. //定义一个字符串来保存com.mY a I T 5 mysql.jdbc的Driver类路径
  8. S, 0 I 8 stringdrive& H } V | N 9 tr="com.mysql.jO ^ v Odbc.Driver";
  9. try{
  10. //加载驱动
  11. Class.forName(driver);
  12. //数据库地址,本机、端口号3306、数据库名为test
  13. Stringurl="jdbc:mysql://localhost:3306/test";
  14. //用户名
  15. Stringuser="root";
  16. //密码
  17. Stringpwd="168168";
  18. //连接数据库
  19. Connectionconn=DriverManago O \ \ u ` S ` Uer.getConnection(url,user,pwd);
  20. //创建Prep* X P 7aredStatement对象
  21. PreparedStatementpst=conn.prepareStatement("select*fromstudentwhere# 5 n - d Pid=?");
  22. Stringid="A11";
  23. pst.setString(1,id);
  24. System.out.println(pst);
  25. }cav } - F j q ] A *tch(ClassNotFoundExceptione){
  26. //TOI e 3 ^ QDOAuto-generatedcatchblock
  27. e.printStl c o @ ( % oackTrace();
  28. }catch(SQLExceptione){
  29. //TODOAuto-generatedcatchblock
  30. e.printStackTrace();
  31. }
  32. }
  33. }

效果图如下所示:

在上面代码中,首先是加载驱动程序,之后进行Mysql数据库的连$ k , + & } j L E接,创建PreparedStatementI y b c = J h l对象包含了”select * from studev J ( s ^ K A 5nt where id=?”,它发送给数据库管理系统,并且为执行做了准备。

六、总结

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

2.Statement接口是用于执行不带参数的比较简单SQL的语句。State; ` x jment对象是由CZ c x m 9 Monnection对象方法createStatemeq O /nt()创建,该对象会把SQL语句传递给数据\ h | % G y s = D库执行,然后返回数据库处理的结果。文中介绍了它的常用方法的使用,并通过一个案例来帮助大家了解Statement接口的用法。

3.Prepares F . = 7 J \dStatement接口是用于预执行SQL语句的对象C ] \ w E A B e 1。SQL语句预编译存储在PreparedStatement对象中,可以使用PreparedStatement对象多次高效执行SQL语句。文中介绍了它的常用方法的使用,并通过一个案例来帮助大家了解PreparedStatemeR @ p { F Dnt接口的用法。

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