JDBC 用PreparedStatement语句动态操作SQL语句

https://blog.csdn.net/u014453898/article/details/79038187

1.Statement 和 PreparedStatement:

Statement接口只能操作静态SQL语句(即SQL语句中操作的数据表,变量等等都是固定的,不能变化的)。而PreparedStatement接口则可以动态操作SQL语句(即SQL语句中的变量的值是可以变化的)。

2.问号“?”

问好的作用:在一个SQL语句中,把需要变化的部分用“?”代替。

如:String sql = “insert into mess(id,name)values(?,?)”;

3.PreparedStatement的用法:

(Connection conn ;)

1.PreparedStatement pstmt = conn.prepareStatement(SQL);  //创建一个PreparedStatement对象,注入SQL语句

2.pstmt.setInt() ,pstmt.setString()// 给SQL中的?赋值

3.pstmt.execute()//执行SQL语句

import java.sql.Connection;  
import java.sql.PreparedStatement;  
import java.sql.SQLException;  
  
public class Test2 {  
    public static void main(String[] args) {  
        Insert(10, "tomy"); // 给数据库插入一个数据(数据为 (10,“tomy”))  
    }  
  
    static void Insert(int id, String name) {  
        String sql = "insert into usertbl(id,name)values(?,?)";  
        Connection conn = DBUtil.open(); // 连接数据库  
        try {  
            /* 以下4句为关键 */  
            PreparedStatement pstmt = conn.prepareStatement(sql);// 装载SQL语句  
            pstmt.setInt(1, id); // 给SQL中第一个问号赋变量id的值  
            pstmt.setString(2, name); // 给SQL中第二个问号赋变量name的值  
            pstmt.execute(); // 执行SQL语句  
  
        } catch (SQLException e) {  
            e.printStackTrace();  
        } finally {  
            DBUtil.close(conn);// 关闭数据库  
        }  
    }  
}  
原文地址:https://www.cnblogs.com/qcq0703/p/9146935.html