java_jdbc大数据,存储过程,事务处理小结

大数据处理
    大数据也称之为LOB(Large Objects),LOB又分为:clob和blob。clob用于存储大文本Text。blob用于存储二进制数据,例如图像声音等。
    对MySQL而言,只有blob,没有clob,它存储大文本采用的是Text。
    处理大文本调用的方法是:PreparedStatemnet.setCharacterStream(index,reader,length)
    处理二进制数据调用的方法:PreparedStatement.setBinarySteam(i,inputStream,length)
   
批处理
    采用Statement.addBatch(sql)来实现批处理。实现批处理的第二种方式:PreparedStatement.addBatch()
    executeBatch()方法,执行批处理命令。
    clearBatch()方法,清除批处理命令。
   
存储过程处理
    首先要在mysql文档中编写存储过程,之后得到CallableStatement,并调用存储过程:CallableStatement cstmt = con.prepareCall("{call 存储过程名(?,?)}")
      设置参数,注册返回值,得到输出cStmt.setString(1, "abcdefg");
cStmt.registerOutParameter(2, Types.VARCHAR);
cStmt.execute();
System.out.println(cStmt.getString(2));

事务处理
    事务指逻辑上的一组操作,组成这组操作的哥哥单元,要不全部执行成功,要不全部不成功。
    数据库开启事务命令:start transaction (开启事务)  Rollback (回滚事务)    Commit (提交事务)
    当jdbc程序向Connection对象时,默认情况下这个对象会向数据库提交在它上面发送的sql语句。想关闭这种默认方式,让多条SQL语句在一个事务中执行,可用Connection,setAutoCommit(false)取消自动提交。
    设置事务回滚点,Savepoint sp = con.setSavepoint();  Con.rollback(sp); con.commit();  (回滚后必须提交);
     创建JDBC的事务主要分以下步骤
     1.设置事务的提交方式为非自动提交:
        conn.setAutoCommit(false);
     2.将需要添加事务的代码放入try,catch块中。
     3.在try块内添加事务的提交操作,表示操作无异常,提交事务。
        conn.commit();
     4.在catch块内添加回滚事务,表示操作出现异常,撤销事务:
        conn.rollback();
     5.设置事务提交方式为自动提交:
        conn.setAutoCommit(true);
事务特性
    原子性
    一致性
    隔离性 
    持久性
脏读:一个事务读取了另一个事务未提交的数据。
不可重复读:在一个事务内读取表中的某一行数据,多次读取结果不同。     虚读(幻读):在一个事物内读到别的事务插入的数据,导致前后读取不一致。  
 

数据库共定义了四种隔离级别:
    Serializable:可避免脏读、不可重复读、虚读情况的发生。(串行化)(序列化)
    Repeatable read:可避免脏读、不可重复读情况的发生。(可重复读)
    Read committed:可避免脏读情况发生(读已提交)。
    Read uncommitted:最低级别,以上情况均无法保证。(读未提交)

set   transaction isolation level 设置事务隔离级别
select @@tx_isolation 查询当前事务隔离级别

你可能感兴趣的:(存储,jdbc,java,数据库,sql,mysql,java)