您的位置:首页 > 数据库

api之sql基础

2007-04-27 12:09 225 查看
下面是对sql api的一些零碎的基本总结,需要的可以参考一下。

public interface ResultSetMetaData可用于获取关于 ResultSet 对象中列的类型和属性信息的对象。以下代码片段创建 ResultSet 对象 rs,创建 ResultSetMetaData 对象 rsmd,并使用 rsmd 查找 rs 有多少列,以及 rs 中的第一列是否可以在 WHERE 子句中使用。 

     ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
     ResultSetMetaData rsmd = rs.getMetaData();
     int numberOfColumns = rsmd.getColumnCount();
     boolean b = rsmd.isSearchable(1);

DriverManager
 跟踪可用的驱动程序。JDBC的管理层,作用于用户和驱动程序之间

public class Statement extends Object
Statement 对象表示基本语句,其中将单个方法应用于某一目标和一组参数,以返回结果,比如 "a.setFoo(b)"。注意,此示例使用名称来指示目标及其参数,statement 对象不需要名称空间,可以使用值本身构造。statement 对象将指定方法与其环境相关联,作为值的简单集合:目标和参数值数组。 

public interface Connection
与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。 
Connection 对象的数据库能够提供信息描述其表、所支持的 SQL 语法、存储过程和此连接的功能等。此信息是使用 getMetaData 方法获得的。 

注:默认情况下,Connection 对象处于自动提交模式下,这意味着它在执行每个语句后都会自动提交更改。如果禁用自动提交模式,为了提交更改,必须显式调用 commit 方法;否则无法保存数据库更改。 

使用 JDBC 2.1 核心 API 创建的 Connection 对象有一个与之关联的最初为空的类型映射表。用户可以为此类型映射表中的 UDT 输入一个自定义映射关系。在使用 ResultSet.getObject 方法从数据源中检索 UDT 时,getObject 方法将检查该连接的类型映射表,以查看是否有对应该 UDT 的项。如果有,那么 getObject 方法会将该 UDT 映射到所指示的类。如果没有项,则会使用标准映射关系映射该 UDT。 

用户可以创建一个新的类型映射表,该映射表是一个 java.util.Map 对象,可在其中创建一个项,并将该项传递给可以执行自定义映射关系的 java.sql 方法。在这种情况下,该方法将使用给定的类型映射表,而不是与连接相关联的映射表。 

例如,以下代码片段指定 SQL 类型 ATHLETES 将被映射到 Java 编程语言中的 Athletes 类。该代码片段为 Connection 对象 con 获取类型映射表,并在其中插入一些项,然后使用新的项将该类型映射表设置为连接的类型映射表。 

      java.util.Map map = con.getTypeMap();
      map.put("mySchemaName.ATHLETES", Class.forName("Athletes"));
      con.setTypeMap(map);
jdbc和odbc驱动程序:
odbc二进制码以及在很多情况下的数据库客户端代码必须在每个使用该驱动的客户端进行安装,如果在程序所使用的网络里安装客户端就不是个大问题。这就应该是jdbc的绝对优势。另外JDBC-ODBC 桥驱动程序java.sql.Drive 接口在sun.jdbc.odbc.JdbcOdbcDriver 中实现。并且在JAVA_HOME/BIN 目录下有JdbcOdbc.dll 文件支持。

数据库表中的主键:
一个表的主键由一个或多个字段组成,其值具有惟一性,而且不允许取空值(NULL),主键的作用是惟一地标识表中的每一条记录。

创建数据库考虑的问题:
数据库的拥有者
数据库的初始容量、最大容量、增长量
数据库文件存放的路径

一个数据库包含:
表      视图      存储过程     触发器

public interface CallableStatementextends PreparedStatement
用于执行 SQL 存储过程的接口。JDBC API 提供了一个存储过程 SQL 转义语法,该语法允许对所有 RDBMS 使用标准方式调用存储过程。此转义语法有一个包含结果参数的形式和一个不包含结果参数的形式。如果使用结果参数,则必须将其注册为 OUT 型参数。其他参数可用于输入、输出或同时用于二者。参数是根据编号按顺序引用的,第一个参数的编号是 1。 

   {?= call <procedure-name>[<arg1>,<arg2>, ...]}
   {call <procedure-name>[<arg1>,<arg2>, ...]}
 IN 参数值是使用从 PreparedStatement 中继承的 set 方法设置的。在执行存储过程之前,必须注册所有 OUT 参数的类型;它们的值是在执行后通过此类提供的 get 方法检索的。 

CallableStatement 可以返回一个 ResultSet 对象或多个 ResultSet 对象。多个 ResultSet 对象是使用从 Statement 中继承的操作处理的。 

为了获得最大的可移植性,某一调用的 ResultSet 对象和更新计数应该在获得输出参数的值之前处理。 

关于PreparedStatement对象的使用:
PreparedStatement继承了Statement,
PreparedStatement是预编译的,效率高,
PreparedStatement可以绑定参数,防SQL注入问题 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息