我是靠谱客的博主 舒心手套,最近开发中收集的这篇文章主要介绍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并执行

 

代码如下:

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 prepareStatement 与Statement的区别它是Statement的一个子接口,使用步骤分为3步:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部