为什么胸变得软软的了?:JDBC基础学习笔记总结与讨论

来源:百度文库 编辑:偶看新闻 时间:2024/03/29 14:38:50
作者: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基础学习笔记总结与讨论就到这里