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);// 关闭数据库 } } }