分享

JDBC基础学习笔记总结与讨论

 Java修炼馆 2011-07-20
JDBC基础学习笔记总结与讨论
作者:Exam8.co…    文章来源:考试吧(Exam8.com)    点击数: 32    更新时间:2009-7-16
  JDBC基础l.连接到数据库的方法
  答:1)ODBC(OpenDatabaseConnectivity)
  一个以C语言为基础访问SQL为基础数据库引擎的接口,它提供了一致的接口用于和数据库沟通以及访问数据。
  2)JDBC
  Java版本的ODBC
  JDBC基础2.JDBC应用编程接口
  答:JDBC应用编程接口是:
  1)标准的数据访问接口,可以连到不同的数据库;
  2)JAVA编程语言的一组类和接口。
  JDBC应用编程接口能够:
  1)连接到数据库;
  2)发SQL查询字符串到数据库;
  3)处理结果。
  JDBC应用编程接口有二个主要的部分:
  1)JAVA应用程序开发接口面向JAVA应用程序开发者;
  2)JDBC驱动程序开发接口
  JDBC基础3.JDBCDriver
  答:1)一大堆实现了JDBC类和接口的类;
  2)提供了一个实现java.sql.Driver接口的类。
  JDBC基础4.JDBCDriver的四种类型
  答:1)JDBC-ODBC桥
  由ODBC驱动提供JDBC访问
  2)本地API
  部分Javadriver把JDBC调用转化成本地的客户端API
  3)JDBC-net
  纯的Javadriver,将JDBC调用转入DBMS,与网络协议无关。然后通过服务器将调用转为DBMS协议。
  4)本地协议
  纯的javadriver,将JDBC调用直接转为DBMS使用的网络协议
  JDBC基础5.JDBC开发者接口
  答:1)java.sql--java2平台下JDBC的主要功能,标准版(J2SE)
  2)javax.sql--java2平台下JDBC增强功能,企业版(J2EE)
  JDBC基础6.使用URL确认数据库
  答:我们使用URL来确定一个数据库(正确的Driver,正确的主机,正确的协议,正确的协议,正确的用户名和密码);
  语法:protocol:subprotocol:subname
  范例:jdbc:db2:MyTest
  jdbc:db2://localhost:6789/MyTest
  JDBC基础7.javax.sql包JDBC2.0的增强功能
  答:1)数据源接口;
  2)连接池;
  3)分布式交易;
  4)行集;
  JDBC基础8.创建一个基本的JDBC应用
  答:1)步骤一:注册一个driver;
  2)步骤二:建立一个到数据库的连接;
  3)步骤三:创建一个statement;
  4)步骤四:执行SQL语句;
  5)步骤五:处理结果;
  6)步骤六:关闭JDBC对象
  JDBC基础9.注册一个Driver(步骤一)
  答:1)driver被用于连接到数据库;
  2)JDBC应用编程接口使用第一个能成功连接到给定URL的driver;
  3)在同一时间可以装载多个driver
  JDBC基础10.注册一个driver的方法:
  答:1)使用类loader(装载;实例化;注册入DriverManager)
  a.Class.forName("Com.ibm.db2.jdbc.app.DB2Driver");
  b.Class.forName("Com.ibm.db2.jdbc.net.DB2Driver");
  c.Class.forName("Com.microsoft.jdbc.sqlServer.SQLServerDriver);
  d.Class.forName("oracl.jdbc.driver.OracleDriver");
  e.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  2)实例化一个Driver
  a.Driverdrv=newCOM.cloudscape.core.RmiJdbcDriver();
  JDBC基础
  1.建立一个到数据库的连接(步骤二)
  答:DriverManager调用getConnection(urlString)方法,实际上调用的是driver的connect(urlString)方法;
  1)当一个driver肯定地对应到一个数据库URL,DriverManager建立一个连接;
  2)当没有driver匹配,返回null然后下一个driver被检验;
  3)假如没有建立连接,抛出一个SQLExcepiton异常
  2.经常使用的一些JDBCURL
  答:1)JDBC-ODBC:jdbc:odbc:
  2)Oracle:jdbc:oracle:oci:@orjdbc:oracle:thin:@
  3)WeblogicMS-SQL:jdbc:weblogic:mssqlserver4:@:
  4)DB2:jdbc:db2:MyTestorjdbc.db2://localhost:6789/MyTest(需要用户名和密码)|||
  3.Driver连接方法
  答:1)创建一个到指定Driver实例的直接调用;
  2)避免一般访问的问题
  Driverdrv=newCOM.ibm.db2.jdbc.app.DB2Driver();
  Connectioncon=null;
  try{con=drv.connect("jdbc:db2:MyTest",newProperties())}
  catch(SQLExceptione){}
  4.创建一个Statement(步骤三)
  答:1)Statement的三个接口:
  a.Statement;
  b.PreparedStatement(继承自Statement);
  c.CallableStatement(继承自PreparedStatement);
  2)使用方法Connection.createStatement()得到一个Statement对象
  5.PreparedStatement对象
  答:1)调用ProparedStatement比statement更为高效;
  2)继承自Statement;
  3)语法:PreparedStatementpstm=connection.prepareStatement(sqlString);
  6.CallableStatement对象
  答:1)通过CallableStatement调用数据库中的存储过程;
  2)继承自PreparedStatement;
  3)CallableStatementcstm=connection.prepareCall("{callreturn_student[?,?]}");
  cstm.setString(1,"8623034");
  cstm.registerOutparameter(2,Types.REAL);
  cstm.execute();
  floatgpa=cstm.getFloat(2);
  7.Statement接口的比较
  答:|Statement|PreparedStatement|CallableStatement
  -----------------------------------------
  写代码位置|客户端|客户端|服务器端
  -----------------------------------------
  写代码位置|客户端|服务器端|服务器端
  -----------------------------------------
  编写代码技术|Java,SQL操作|Java,SQL操作|数据库的程序语言,如PL/SQL
  -----------------------------------------
  可配置性|高|第一次高,以后低|低
  -----------------------------------------
  可移植性|高|假设支持PreparedStatement的话高
  -----------------------------------------
  传输效率|低|第一次低,以后高|高
  8.执行SQLStatement(步骤四)
  答:通过接口方法将SQL语句传输至?认的数据库连接,返回结果可能是一个数据表,可以通过java.sql.ResultSet访问。
  1)Statement的接口方法:
  a.executeQuery(sqlString):执行给定的SQL声明,返回一个结果集(ResultSet)对象;
  b.executeUpdate(sqlString):执行给定的SQL声明,可以是INSERT、UPDATE或DELETE声明,也可以是SQLDDL声明;
  c.execute(sqlString):执行给定的SQL声明。
  9.处理结果(步骤五)
  答:1)使用结果集(ResultSet)对象的访问方法获取数据;
  a.next():下一个记录
  b.first():第一个记录
  c.last():最后一个记录
  d.previous():上一个记录
  2)通过字段名或索引取得数据
  3)结果集保持了一个指向了当前行的指针,初始化位置为第一个记录前。
  10.关闭JDBC对象(步骤六)
  答:1)首先关闭记录集;
  2)其次关闭声明;
  3)最后关闭连接对象。
  11.数据表和类对应的三种关系:
  答:1)一个表对应一个类;
  2)一个表对应相关类;
  3)一个表对应整个类关系层
  12.类间关系的几种表设计:
  答:1)多对一,
  2)一对一:
  3)一对多:
  4)多对多:|||
  13.SQL数据类型及其相应的Java数据类型
  答:SQL数据类型Java数据类型说明
  ------------------------------------------------------------------
  INTEGER或者INTint通常是个32位整数
  SMALLINTshort通常是个16位整数
  NUMBER(m,n)DECIMAL(m,n)Java.sql.Numeric合计位数是m的定点十进制数,小数后面有n位数
  DEC(m,n)Java.sql.Numeric合计位数是m的定点十进制数,小数后面有n位数
  FLOAT(n)double运算精度为n位二进制数的浮点数
  REALfloat通常是32位浮点数
  DOUBLEdouble通常是64位浮点数
  CHARACTER(n)或CHAR(n)String长度为n的固定长度字符串
  VARCHAR(n)String最大长度为n的可变长度字符串
  BOOLEANboolean布尔值
  DATEJava.sql.Date根据具体设备而实现的日历日期
  TIMEJava.sql.Time根据具体设备而实现的时戳
  TIMESTAMPJava.sql.Timestamp根据具体设备而实现的当日日期和时间
  BLOBJava.sql.Blob二进制大型对象
  CLOBJava.sql.Clob字符大型对象
  ARRAYJava.sql.Array
  JDBC基础
  1.元数据
  答:关于数据的信息,例如类型或者容量。通过JDBCAPI可以
  1)数据库元数据;
  a.使用connection.getMetadata方法返回DataMetaData引用
  b.能够使用isReadOnly此类方法获取信息
  2)结果集元数据;
  a.使用ResultSet.getMetadata方法返回ResultSetMetaData引用
  b.能够使用getColumnCount此类方法获取信息事务处理
  答:1)一系列的动作作为一个不可分的操作;
  2)JDBCAPI中使用事务处理步骤:
  a.用false作为参数调用setAutoCommit方法;
  b.执行一或多个关于数据库的操作;
  c.调用commit方法完成改变;
  d.恢复上次提交后的改变,调用rollback方法.
  try
  {
  con.setAutoCommit(false);
  Statementstm=con.createStatement();
  stm.executeUpdate("insertintostudent(name,age,gpa)values(‘gzhu‘,30,4.8)");
  stm.commit();
  }
  catch(SQLExceptione)
  {
  try
  {
  con.rollback();
  }
  catch(Exceptione)
  {
  }
  }并发控制
  答:1)设置隔离级别方法:setTransactionIsolation
  2)隔离级别静态变量
  a.TRANSACTION_NONE:只读的数据字典;
  b.TRANSACTION_READ_UNCOMMITTED:只读未提交数据;
  c.TRANSACTION_READ_COMMITTED:只读未提交数据;
  d.TRANSACTION_REPEATABLE_READ:重复读取数据;
  e.TRANSACTION_SERIALIZABLE:无论做什么操作都不许别人动。
  3)示例:con.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);JDBC2.0应用程序编程接口增强功能
  答:1)ResultSet增强:
  a.可以回卷;
  b.可以修改;
  设置示例:Statementstm=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
  2)Statement增强了批量修改能力(batchupdates);
  3)更高级的数据类型(例:Struct)。JDBC2.0标准扩展
  答:1)JNDI(JavaNamingandDirectoryInterface):解决离散状态下Object的查找;
  2)连接池:在内存中保存了一个数据库连接,不需要注册驱动器,提高性能的重要方法。
  JDBC基础学习笔记总结与讨论就到这里

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多