• sql注入及事务


    Statement会有一个关于sql注入的bug ,所以基本不使用

    一般使用PreparedStatement


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

    import com.huawei.utils.DBUtil;

    public class TestJDBC02 {

    public static void testPreparedStatement() throws Exception{

    /**
    * 预处理sql语句 不会出现sql注入的bug
    */
    Connection connection = DBUtil.getConnection();

    String sql = "select * from users where username=?";
    //得到sql语句的 预处理对象
    PreparedStatement preparedStatement = connection.prepareStatement(sql);

    preparedStatement.setObject(1, "admin1' or 1=1 or username='");

    ResultSet rs = preparedStatement.executeQuery();

    while(rs.next()){
    System.out.println(rs.getObject(1));
    }

    DBUtil.close(rs,preparedStatement,connection);

    }


    public static void testTransaction() throws Exception{
    Connection connection = DBUtil.getConnection();
    //默认 事务是自动提交的
    //要达到手动提交的目的 必须关闭 自动提交
    connection.setAutoCommit(false);
    PreparedStatement ps = null;
    PreparedStatement ps1 = null;
    try{
    ps = connection.prepareStatement("insert into A (a) values ('lisi21')");
    ps1 = connection.prepareStatement("insert into B (b) values ('lisi123')");
    ps.executeUpdate();
    ps1.executeUpdate();
    //执行完成以后 提交到数据库
    connection.commit();

    }catch (Exception e) {
    //如果产生任何的错误 则回滚
    connection.rollback();
    e.printStackTrace();
    }
    DBUtil.close(ps,ps1,connection);
    }


    public static void main(String[] args) throws Exception {
    testTransaction();
    }


    }

  • 相关阅读:
    type() & dir()

    手机操作API
    APP模拟手势高级操作
    APP元素事件操作API
    APP元素信息操作API
    APP元素定位操作
    手机控件查看工具uiautomatorviewer
    App基础操作API
    Appium入门
  • 原文地址:https://www.cnblogs.com/hwgok/p/5814453.html
Copyright © 2020-2023  润新知