浅谈JDBC的概念理解与学习Java认证考试

文章作者 100test 发表时间 2009:07:19 09:14:07
来源 100Test.Com百考试题网


  JDBC的概念:doMaim对象(javaBean实体)
  UserDao(DataAccessObject)
  工厂模式,Factory消除UserDaoTest业务类对具体实现UserDaoJdbc类的依赖
  读配置文件,通过工厂读配置文件来加载信息,具体实现类使用工厂来获取实现接口类的对象
  JDBC的概念:工厂一般使用单例模式
  工厂-->.生产产品(Dao这个产品)
  类加载器,不光可以load.class,还可以load其他的文件
  事务概念与处理
  1.原子性:不能拆分,组成事事务处理的语句形成一个逻辑处理单元,不能只执行其中的一部分
  2.一致性:事务做完之后,保定数据的完整性约束
  3.隔离性:一个事务处理对另一个事务处理的影响
  4.持续性:事务处理的结果能被永久保存下来
  步骤:打开事务connection.setAutoCommit(false).
  提交事务:connection.commit().
  回滚事务:connection.rollback().
  jdbc缺省是自动提交的,客户端连接也是自动提交的,要想打开事务,要把自动提交关掉
  保存点:savePoint
  Savepointsp=null
  sp=conn.setSavepoint().
  conn.rollback(sp).
  -----------------------------------
  JDBC的概念:跨多个数据库的事务JTA
  JTA容器weblogic,websphere
  分成两阶段提交。
  用到JNDI服务器
  javax.transaction.UserTransactiontx=
  (UserTransaction)ctx.lookup("jndiName").
  tx.begin().
  //connection1connection2(可能来自不同的数据库)
  tx.commit().//tx.rollback().
  ---------------------------------
  事务的隔离级别:
  connction.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED).
  隔离级别
  读未提交(Readuncommitted)可能出现脏读,不可重复读,幻读
  读已提交(Readcommitted)可能出现不可重复读,幻读
  可重复读(Repeatableread)可能出现幻读(幻影数据,执行插入一条数据,在另一个客户端有可能看到)
  可串行化(Serializable)
  隔离级别各个数据库的实现是不一样的。
  --------------------------------------------------
  关于存储过程(两层架构的时候用的很多)
  三层架构的系统很少使用了。略过不看了先。
  ---------------------------------------------------
  其他几个有用的API
  jdbc3.0规范提供的方法
  插一条记录,它能把主键返回来
  PreparedStatement.getGeneratedKeys().
  PreparedStatementps=connection.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS).
  ps.executeUpdate().
  ResultSetrs=st.getGeneratedKeys().
  rs.getInt(1).
  批量处理:可以大幅提升大量增删改的速度(并非绝对),与具体数据库有关,也不一定能提高性能
  PreparedStatement.addBatch().
  PreparedStatement.executeBatch().
  -------------------------------------------------------------
  可滚动结果集与分页特性
  Statementst=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE).
  ResultSet.TYPE_SCROLL_SENSITIVE--对数据库敏感的,就是说,数据库中记录发生了变化,结果集会觉察到(但某些数据库不一定遵循这一规范,mysql就不遵循)
  ResultSet.CONCUR_UPDATABLE--可更新的,就是说,改变结果集中的内容可以影响到数据库里
  ResultSet.CONCUR_READ_ONLY--只读的,可滚动的结果集
  Statementst=connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE).
  ResultSetrs=st.executeQuery(sql).
  rs.beforeFirst().
  rs.afterLast().
  rs.first().
  rs.isFirst().
  rs.last().
  rs.isLast().
  rs.absolute(9).
  rs.moveToInsertRow().
  conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE).
  rs.0updateString("colname","newvalue").
  rs.0updateRow().

相关文章


Java高手必会的要点Java认证考试
根据J2ME虚拟机对程序编写的优化方式Java认证考试
J2ME实践:减少图片以减小JAR文件大小Java认证考试
全面比较AWT和SwingJava认证考试
浅谈JDBC的概念理解与学习Java认证考试
浅析Swing客户端知识Java认证考试
介绍Swing线程相关处理Java认证考试
写给在Java和.net中徘徊的新手Java认证考试
在JAVA开发中的中文处理问题及解决办法Java认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛