zoukankan      html  css  js  c++  java
  • jdbc、事务(Transaction)、批处理 回顾

    论文写的头疼,回顾一下jdbc,换换脑子

    传统的写法:

    1.加载驱动类

    class.forname("jdbc类的包结构");

    2.获得连接

    Connection conn=DriverManager.getConnection("url","username","userpwd");

    3.获得描述

    Ststement stmt =conn.createStstement();

    4.执行动作

    stmt.executeCreate("sql");

    ResultSet rs=stmt.executeQuery("sql");

    while(rs.next){

    }

    注意:传统写法安全性不是很好,有可能遭到sql恶意注入的问题

    可以将描述替代为

    PreparedStatement pstmt=conn.PreparedStatement("sql");

    当然此时的sql语句要采用占位符的形式

    insert into test(user,name,pwd) values(?,?,?)

    同时,在执行动作时,就不必传入“sql”参数

    当然在执行动作之前要设置参数

    pstmt.setString(1,"");

    pstmt.setString(2,"");

    pstmt.setInt(3,"");

     注意要遵循类型的方式

    以上代码不代表具体执行代码,只具备伪代码的功能。

    因为有些方法具体怎么拼写,我忘了

    凡是涉及到操作数据库,免不了要说说事务(Transaction)了:

    事务:保证与数据库操作的过程中,数据的一致性和完整性。

    事务的属性:

    ACID

    即:

    Atomic原子性:一堆又一堆的事务操作,要么全都成功,要么全都失败,不存在部分成功或失败的情况

               开始事务

                       一堆事务操作

                       ……

               事务结束

    Consistency一致性:事务操作前后,数据满足同样的规则

    Isolation隔离性:事务内部的数据对外的可见性和可操作性。即不同事务边界内的数据是限制权限的

    D稳定性、持久性:事务内部的数据都能够呗正确的持久化

    jdbc默认是自动提交的,只要执行动作语句成功,哪怕下一句异常,数据仍然被提交!

    jdbc手动设置事务的方法:

    首先,关闭jdbc的自动提交功能

      conn.setAutoCommit(false);

    其次,在执行动作成功后,提交

      conn.commit();

    最后,如果有异常,事务回滚

      conn.rollback();

    关于批处理:

    即存在多条sql的时候,可通过batch进行批处理

    string sql1="……";

    string sql2="……";

    stmt.addBatch(sql1);

    stmt.addBatch(sql2);

    完整教程:http://download.csdn.net/detail/u012373717/8874243

  • 相关阅读:
    Kafka简介
    Storm之详解spout、blot
    【刷题】面筋-页面很卡的原因分析及解决方案
    【JAVA】栈和堆,JVM内存概述
    【刷题】面筋-游戏测试-农药测试向分析
    【刷题】面筋-游戏测试-什么样的游戏可以称为一个好的游戏
    【刷题】面筋-两颗鸡蛋测临界楼层的问题
    【刷题】面筋-游戏测试的目的和流程
    【刷题】面筋-测开-游戏测试用例要点与测试俄罗斯方块
    【刷题】面筋-游戏平衡性
  • 原文地址:https://www.cnblogs.com/felixzh/p/4622642.html
Copyright © 2011-2022 走看看