可以防止SQL注入,效果更高

1.新增

  1. package com.weisong2;
  2. import com.weisong.JdbcUtils;
  3. import java.sql.*;
  4. public class TestInsert {
  5. public static void main(String[] args) {
  6. Connection conn = null;
  7. PreparedStatement st= null;
  8. try {
  9. conn= JdbcUtils.getConnection();//获取数据库连接
  10. //区别
  11. //使用 ? 占位符代替参数
  12. String sql ="insert into users(`id`,`name`,`password`,`email`,`birthday`) values(?,?,?,?,?)";
  13. st=conn.prepareStatement(sql);//预编译SQL,先写sql,然后不执行
  14. //手动给参数赋值
  15. st.setInt(1,4);//id
  16. st.setString(2,"jinglin");//name
  17. st.setString(3,"123456");//password
  18. st.setString(4,"1139575348@qq.com");//email
  19. //注意点:sql.Date 数据库 java.sql.Date 转化为sqlDate
  20. // util.Date java new Date().getTime() 获得时间戳
  21. st.setDate(5,new java.sql.Date(new java.util.Date().getTime()));//birthday
  22. //执行
  23. int i = st.executeUpdate();
  24. if (i > 0){
  25. System.out.println("插入成功");
  26. }
  27. } catch (SQLException e) {
  28. // TODO Auto-generated catch block
  29. e.printStackTrace();
  30. }finally{
  31. JdbcUtils.release(conn,st,null);
  32. }
  33. }
  34. }

2.删除

  1. package com.weisong2;
  2. import com.weisong.JdbcUtils;
  3. import java.sql.Connection;
  4. import java.sql.PreparedStatement;
  5. import java.sql.SQLException;
  6. public class TestDelete {
  7. public static void main(String[] args) {
  8. Connection conn = null;
  9. PreparedStatement st= null;
  10. try {
  11. conn= com.weisong.JdbcUtils.getConnection();//获取数据库连接
  12. //区别
  13. //使用 ? 占位符代替参数
  14. String sql ="delete from users where id = ?";
  15. st=conn.prepareStatement(sql);//预编译SQL,先写sql,然后不执行
  16. //手动给参数赋值
  17. st.setInt(1,4);
  18. //执行
  19. int i = st.executeUpdate();
  20. if (i > 0){
  21. System.out.println("删除成功");
  22. }
  23. } catch (SQLException e) {
  24. // TODO Auto-generated catch block
  25. e.printStackTrace();
  26. }finally{
  27. JdbcUtils.release(conn,st,null);
  28. }
  29. }
  30. }

3.修改

package com.weisong2;

import com.weisong.JdbcUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class TestUpdate {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement st= null;

        try {
            conn= com.weisong.JdbcUtils.getConnection();//获取数据库连接

            //区别
            //使用 ? 占位符代替参数
            String sql ="update users set `name` =? where id =?;";

            st=conn.prepareStatement(sql);//预编译SQL,先写sql,然后不执行

            //手动给参数赋值
            st.setString(1,"伟松");
            st.setInt(2,1);
            //执行
            int i = st.executeUpdate();
            if (i > 0){
                System.out.println("更新成功");
            }


        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            JdbcUtils.release(conn,st,null);
        }
    }
}

4.查询

package com.weisong2;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class TestSelect {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement st = null;
        ResultSet rs = null;

        try {
            conn = JdbcUtils.getConnection();

            String sql = "select * from users where id = ?";//编写sql

            st = conn.prepareStatement(sql);

            st.setInt(1,2);//传递参数

            rs = st.executeQuery();//执行

            if (rs.next()){
                System.out.println(rs.getString("NAME"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtils.release(conn,st,rs);
        }
    }
}

防止SQL注入