我是靠谱客的博主 舒心手套,这篇文章主要介绍JDBC prepareStatement 与Statement的区别它是Statement的一个子接口,使用步骤分为3步:,现在分享给大家,希望可以做个参考。

目录

 

pstm构建动态sql

JDBC prepareStatement 与Statement的区别

         prepareStatement是Statement的一个子接口

          使用步骤分为3步:

1创建:通过连接获得prepareedStatement对象

2,给?赋值(也称参数绑定)

3.执行SQL


 

先来看看JDBC prepareStatement 与Statement的区别

如上图,可以概括两点,

一、使用PreparedStatement更安全,解决了Sql注入的问题

二、效率更高,特别是调用次数较多的时候

相比较Statement而言,它是个半成品。

它是Statement的一个子接口,使用步骤分为3步:

1创建:通过连接获得prepareedStatement对象

String sql  = "Select * from users_luxw where username= ? And password = password=?  " 

PreparedStatement pstm = conn.prepareStatemement(sql);

创建时,将Sql语句中取值发生变化的部分用占位符(?)代替、。

2,给?赋值(也称参数绑定)

   使用Set[type] 方法给?赋值、其中Type表示?位置的数据类型。第一个参数代表问号位置,从1开始;第二个参数是具体取值,比如:

     pstm.setString(1, username);

     pstm.setString(2, password);

3.执行SQL

Pstm.executeQuery();

Pstm.executeUpdate();//执行官更新时使用

此时JDBC将所有对应的参数发送至数据库服务器,调用池中有第一步创建的预编译的SQL并执行

 

代码如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package jdbc; import java.sql.Connection; import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class demoprearedStatementf { public static void main(String[] args) { //加载获取连接 Connection conn = null; PreparedStatement psm = null; ResultSet rs = null; try { Class.forName("com.mysql.jdbc.Driver"); //获取连接 String url = "jdbc:mysql://localhost:3306/mybase"; String user = "root"; String password = "root123"; conn = DriverManager.getConnection(url, user, password); //3、创建一个preparedStatement对象 预编译sql语句 //查询 String sql = "select * from test where deptno = ?"; psm = conn.prepareStatement(sql); psm.setString(1,"10"); //删除 // String sql = "delete from test where ename=? "; // psm = conn.prepareStatement(sql); // psm.setString(1,"小弟"); // //修改 // String sql = "update test set job = ? where ename = ?"; // psm = conn.prepareStatement(sql); // psm.setString(1, "manner"); // psm.setString(2, "白展堂"); // //插入 // String sql = "insert into test(ename,job,deptno) values(?,?,?)"; // psm = conn.prepareStatement(sql); // psm.setString(1, "大白"); // psm.setString(2, "leader"); // psm.setInt(3, 20); //4执行sql语句 // int line = psm.executeUpdate();//增删改都用 executeUpdate // System.out.println("影响行数: "+line); rs = psm.executeQuery(); while(rs.next()){ int empno = rs.getInt(1); String ename = rs.getString(2); String job = rs.getString(3); int mgr = rs.getInt(4); Date hiredata = rs.getDate(5); int sal = rs.getInt(6); int commit = rs.getInt(7); int deptno = rs.getInt(8); System.out.println(empno+" "+ename+" "+job+" "+mgr+" "+hiredata+" "+sal+" "+commit+" "+deptno); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ try { rs.close(); psm.close(); conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }

 

最后

以上就是舒心手套最近收集整理的关于JDBC prepareStatement 与Statement的区别它是Statement的一个子接口,使用步骤分为3步:的全部内容,更多相关JDBC内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部