Statement可以操作數據庫,但是,在需要做一些結構相似的操作時,PrepareStatement比Statement更高效。
在創建PrepareStatement的時候使用
prepareStatement(String sql),其中的sql中包含?來占位
PreparedStatement ps=(PreparedStatement) conn.prepareStatement("insert into student values(?,?,?)");
在執行SQL語句之前為每個問號賦值就行了。
使用ps.setXXX(int index,XXX xxx );
注意:index從1開始。代碼如下:
- import java.awt.Color;
- import java.awt.Frame;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
-
- import com.mysql.jdbc.Connection;
- import com.mysql.jdbc.PreparedStatement;
- import com.mysql.jdbc.Statement;
-
-
- public class Test {
- public static void main(String[] args) {
-
-
- try {
- Class.forName("com.mysql.jdbc.Driver");
- Connection conn=(Connection) DriverManager
- .getConnection("jdbc:mysql://110.178.168.220:3306/zhang", "root", "zhycheng");
- //Statement st=(Statement) conn.createStatement();
- PreparedStatement ps=(PreparedStatement) conn.prepareStatement("insert into student values(?,?,?)");
-
- for(int i=5;i<100;i++)
- {
- ps.setInt(1, i);
- ps.setString(2, "test"+i);
- ps.setString(3, "男");
- ps.executeUpdate();
- }
-
-
- ps.close();
- conn.close();
-
-
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- }