• JDBC编程


    JDBC(java database connectivity)
    数据库编程步骤:
    1、根据应用程序所用的数据库,选择JDBC驱动程序类型
    class.forName("com.mysql.jdbc.Driver");
    2、连接到数据库,得到connection对象
    Connection con=null;
    con=DriverManager.getConnection("url","user","password");
    3、通过connection创建Statement对象
    Statement state=con.createStatement();
    String sql="";
    4、使用Statement对象提交sql语句
    int row = state.executeUpdate(sql);
    ResultSet rs=state.executeQuery(sql);
    5、操作结果集
    while(rs.next()){
    int stuID=rs.getInt("pk_stuid");
    }
    6、回收数据资源
    从小往大关,先关rs、然后state、然后con

    url:统一资源定位符——样式:协议://ip地址:端口号/服务

    SQL注入攻击
    为了防止SQL注入攻击,可以使用PreparedStatement预编译SQL语句。
    String sql="select * from t_user where f_username=? and f_pwd=?";
    PreparedStatement ps = con.PreparedStatement(sql);
    ps.setString(1,name);
    ps.setString(2,pwd);
    ResultSet rs=ps.executeQuery();
    作用:1、可以完全替代statement执行dql语句
    2、解决SQL注入问题
    3、因为在执行之前就把sql语句绑定了(交给数据库预先编译了),执行时不能再改变sql语句的结构。
    注意:1、?是用来替代语句中的数据值的位置,不能替代跟结构相关的任何对象
    2、使用?代替字符串值的时候,不能打引号
    3、不要滥用预编译,预编译语句过多,会影响数据库性能,当数据值是由外部文本输入的时候才用它。

    事务:
    复杂业务:由多条sql语句共同组成
    事务:
    整体性:同时完成、同时失败。
    原子性:业务的不可拆分性。
    Transcation:事务,sql里面保证多条sql语句的整体性和原子性的技术。
    主要控制的是DML语句,需要保证数据的完整性。
    事务的操作分为三步:
    1、开启事务
    2、事务整体提交
    3、事务整体回滚
    由一个connection对象完成,多条语句必须放到同一个连接中完成。
    con.setAutoCommit(false);开启事务——设置自动提交为假
    con.commit();整体提交
    con.rollback();整体回滚(放到catch块中)只要一条sql语句失败,就要整体回滚。

  • 相关阅读:
    Atcoder Tenka1 Programmer Contest 2019 D Three Colors
    Codeforces 1146E Hot is Cold
    ZOJ 3820 Building Fire Stations
    ZOJ 3822 Domination
    ZOJ 3949 Edge to the Root
    Codeforces 1144G Two Merged Sequences
    PTA 团体程序设计天梯赛 L3-020 至多删三个字符
    BZOJ 5102: [POI2018]Prawnicy
    BZOJ 1045: [HAOI2008] 糖果传递
    2017-2018 ACM-ICPC, Asia Tsukuba Regional Contest
  • 原文地址:https://www.cnblogs.com/fengshaolingyun/p/6785072.html
Copyright © 2020-2023  润新知