Java与数据库的连接.ppt

上传人:w****2 文档编号:15541264 上传时间:2020-08-19 格式:PPT 页数:80 大小:1,003KB
收藏 版权申诉 举报 下载
Java与数据库的连接.ppt_第1页
第1页 / 共80页
Java与数据库的连接.ppt_第2页
第2页 / 共80页
Java与数据库的连接.ppt_第3页
第3页 / 共80页
资源描述:

《Java与数据库的连接.ppt》由会员分享,可在线阅读,更多相关《Java与数据库的连接.ppt(80页珍藏版)》请在装配图网上搜索。

1、Java与数据库的连接,JDBC 简介,数据库的应用目前已经非常普遍,在应用程序的开发过程中,经常会涉及到访问数据库。Java语言为访问数据库提供了方便的技术。 Java使用JDBC (Java Database Connectivity)技术进行数据库的访问。Java应用程序通过JDBC API和JDBC驱动程序管理器进行通信。,JDBC的诞生,从ODBC到JDBC ODBC(Open DataBase Connectivity),是一种用来在关系数据库以及非关系数据库管理系统中存取数据,用C语言实现的标准应用程序接口。 其主要结构:应用程序接口、驱动程序管理器、数据库驱动程序和数据源。,J

2、DBC的诞生 以前由于没有一个Java语言的数据库API,编程人员不得不在Java程序中加入C语言的ODBC函数调用,从而使Java的很多优秀特性无法充分发挥 ODBC具有不易使用,非面向对象等缺点 为了充分发挥java语言的特性,迎合数据库开发的需求,sun开发了一套java语言的数据库应用程序开发接口和类,即JDBC。它在Java程序中实现数据库操作功能并简化操作过程。,JDBC为数据库及其工具的开发人员提供了一个标准的API,使他们能够用纯Java API编写数据库应用程序 JDBC支持基本SQL语句,提供多样化的数据库连接方式,为各种不同的数据库提供统一的操作界面,JDBC连接数据库的

3、方法,通过专用网络协议创建的驱动程序与数据库直接通信。 直接使用数据库厂商提供的、用专用网络协议创建的驱动程序 各大厂商都为数据库提供了这种JDBC驱动,这种方式最简单实用。,通过JDBC-ODBC桥与ODBC数据库通信 Sun公司发行了一个用于访问ODBC数据源的驱动程序,称为JDBC-ODBC桥接器。该桥接器用jdbcodbc.class和一个用于访问ODBC驱动程序的本地库来实现的。 对于Windows平台,该本地库是一个DLL动态链接库JDBCODBC.DLL 其优点是使JDBC目前有能力访问几乎所有的数据库。,通过部分专用的驱动程序与数据库通信 将JDBC数据库调用直接翻译为厂商专用

4、的API,执行更有效,更快捷。,JDBC API,JDBC API所有的类和接口都集中在java.sql和javax.sql这两个包中,(1) 登记并加载JDBC驱动程序,(2) 建立与SQL数据库的连接,(3) 传送一个SQL查询,(4) 获得结果,JDBC API的使用方法,注册数据库的驱动程序 隐式加载 作为初始化的一部分,DriverManager 类会尝试加载在 “jdbc.drivers” 系统属性中引用的驱动程序类。这允许用户自定义由他们的应用程序使用的 JDBC Driver。例如jdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad

5、.taste.ourDriver public static void registerDriver(Driverdriver) throws SQLException 向 DriverManager 注册给定驱动程序,一旦DriverManager类被初始化,将不再检查jdbc.drivers属性表 需要持久的预设环境,public interface Driver,每个驱动程序类必须实现的接口 Java SQL 框架允许多个数据库驱动程序 每个驱动程序都应该提供一个实现 Driver 接口的类 DriverManager 会试着加载尽可能多的它可以找到 的驱动程序,然后,对于任何给定连接请

6、求,它会 让每个驱动程序依次试着连接到目标 URL,DriverManager.registerDriver(new com.microsoft.jdbc. sqlserver.SQLServerDriver( ) );,DriverManager DriverManager 类是 JDBC 的管理层,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。 public static Driver getDriver(Stringurl) throws SQLException 试图查找能理解给定 URL 的驱动程序。 public static Enumera

7、tion getDrivers() 检索带有当前调用方可以访问的所有当前已加载 JDBC 驱动程序的 Enumeration public static void registerDriver(Driverdriver) throws SQLException 向 DriverManager 注册给定驱动程序。在加载驱动程序时由驱动程序自动调用,显式加载 public static Class forName(StringclassName) throws ClassNotFoundException java.lang.Class 使用与当前 applet 或应用程序相同的类加载器显式加载驱

8、动程序,Class.forName(“com.mysql.jdbc.Driver”); Class.forName(“acme.db.Driver”);,如果将acme.db.Driver编写为加载时创建实例,并调用以该实例 为参数的DriverManager.registerDriver,则它在 DriverManager的驱动程序列表中,并可用于创建连接,将驱动程序添加到Java.lang.System的属性jdbc.drivers中 是一个由DriverManager类加载的驱动程序类名的列表,由冒号分隔 jdbc.drivers=foo.bah.Driver:wombat.sql.Dr

9、iver:bad.test.ourDriver; 初始化DriverManager类时,它搜索系统属性jdbc.drivers,如果用户已输入了一个或多个驱动程序,则DriverManager类将试图加载它们。 一旦DriverManager类被初始化,将不再检查jdbc.drivers属性表,建立数据库连接 public static Connection getConnection(Stringurl) throws SQLException 试图建立到给定数据库 URL 的连接。 DriverManager 试图从已注册的驱动程序集中选择一个适当的驱动程序。 假定构造数据库连接时不需要用

10、户名、口令或其他数据库属性 DriverManager将检查每个驱动程序,轮流在每个驱动程序上调用方法Driver.connect, 查看它是否可以建立连接。 DriverManager将使用它所找到的第一个可以成功连接到给定URL的驱动程序,public static Connection getConnection(Stringurl, Propertiesinfo) throws SQLException info包含连接数据库所需的所有属性项;通常至少应该包括 user 和 password 属性 public static Connection getConnection(Strin

11、gurl, Stringuser, Stringpassword) throws SQLException 指定了连接的用户名和密码,Connection con=DriverManager.getConnection( “jdbc:mysql:/localhost/UpdateDB”,”root”,”);,Connection对象 用于连接数据库和Java应用程序 打开连接的方法 Connection connect(Stringurl, Propertiesinfo) throws SQLException java.sql.Driver 试图创建一个到给定 URL 的数据库连接。 Dri

12、verManager.getConnection 提供应用程序与数据库的静态连接 单一应用程序可以: 拥有与单个数据库的一个或多个连接 拥有与许多不同数据库的连接,public interface Connection,JDBC URL,JDBC URL提供了一种标识数据库的方法,可以使用相应的驱动程序识别该数据库,并与之建立连接。,标准语法: jdbc: jdbc协议:JDBC URL中的协议总是jdbc。 子协议:驱动程序名或连接机制的名称。 如果要用网络命名服务,则命名服务可以作为子协议。 Jdbc:dcenaming:accounts 驱动程序编程员可保留某个名称以将之用作JDBC U

13、RL的子协议名 子名称:数据库的唯一标识符。 如果数据库是通过Internet来访问的 ,则遵循命名规定 /主机名:端口/数据库名 例 jdbc:odbc:goods jdbc:dcenaming:accounts jdbc:dbnet:/wombat:356/fred jdbc:mysql:/localhost/UpdateDB,odbc子协议,odbc子协议用于指定ODBC风格的数据资源名称的URL,允许指定任意多的属性值。 语法: Jdbc:odbc:;= 例: Jdbc:odbc:students;UID=tech;PWD=123 Jdbc:odbc:wombat;CacheSize=

14、20;ExtensionCase=LOWER,如何与数据库建立连接?,获取和安装JDBC,以mysql为例: 首先,下载mysql,并安装。 打开命令行界面 下载mysql-connector-java-5.1.5.tar.zip 解压,并进行相应的配置。,配置方法: 进入Javajre1.6.0_02lib目录将mysql-connector-java-5.1.5-bin.jar拷贝到该目录下。 配置classpath,追加%JAVA_HOME% jre1.6.0_02lib mysql-connector-java-5.1.5-bin.jar; 配置的目的是让java应用程序找到连接mys

15、ql的驱动,如何向数据库递交查询和更新请求 并获得返回的结果?,Statement对象 用于执行SQL语句并获取数据库的返回结果 Statement createStatement( ) throws SQLException java.sql.Connection 常用方法 boolean execute(Stringsql) throws SQLException 执行给定的 SQL 语句,该语句可能返回多个结果。 如果结果是ResultSet对象则返回true;结果是更新计数或执行的语句是DDL命令则返回false ResultSet executeQuery(Stringsql) th

16、rows SQLException 执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。,public interface Statement,int executeUpdate(Stringsql) throws SQLException 执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。 返回INSERT、UPDATE 或 DELETE 语句的行计数;或者 0,表示不返回任何内容的 SQL 语句 执行语句的所有方法都将关闭所调用的Statement对象的当前打开结果集(如

17、果存在)。这意味着在重新执行Statement对象之前,需要完成对当前ResultSet对象的处理。 使用方法execute( ) 仅在语句能返回多个ResultSet对象、多个更新计数或ResultSet对象与更新计数的组合时使用,ResultSet getResultSet( ) throws SQLException 以 ResultSet 对象的形式检索当前结果。每个结果只应调用一次此方法。当SQL语句的结果不是结果集时,将返回null。 boolean getMoreResults() throws SQLException 移动到此 Statement 对象的下一个结果,如果其为

18、ResultSet 对象,则返回 true,并隐式关闭利用方法 getResultSet 获取的所有当前 ResultSet 对象。 int getUpdateCount() throws SQLException 以更新计数的形式检索当前结果;如果结果为 ResultSet 对象或没有更多结果,则返回 -1。每个结果只应调用一次此方法。,int getMaxFieldSize() throws SQLException 检索可以为此 Statement 对象所生成 ResultSet 对象中的字符和二进制列值返回的最大字节数。如果超过了该限制,则安静地丢弃多出的数据。 int getMaxR

19、ows() throws SQLException 检索由此 Statement 对象生成的 ResultSet 对象可以包含的最大行数。如果超过了此限制,则安静地撤消多出的行。 int getQueryTimeout() throws SQLException 检索驱动程序等待 Statement 对象执行的秒数。如果超过该限制,则抛出 SQLException。,关闭Statement对象 Statement对象将由Java垃圾收集程序自动关闭 显式关闭将立即释放DBMS资源,有助于避免潜在的内存问题。,如何处理查询结果?,ResultSet 表示数据库结果集的数据表,通常通过执行查询数据

20、库的语句生成。 ResultSet 对象具有指向其当前数据行的指针。最初,指针被置于第一行之前。next 方法将指针移动到下一行。 ResultSet 接口提供用于从当前行检索列值的获取方法(getBoolean、getLong 等) 可以使用列的索引编号或列的名称检索值 String getString(intcolumnIndex) throws SQLException String getString(StringcolumnName) throws SQLException 列名不区分大小写,public interface ResultSet,对于获取方法getXXX( ),JDB

21、C 驱动程序尝试将基础数据转换为在获取方法中指定的 Java 类型,并返回适当的 Java 值。 用户不必关闭ResultSet;当产生它的Statement关闭、重新执行或用于从多结果序列中获取下一个结果时,该ResultSet将被Statement自动关闭。,Statement stmt=conn.createStatement( ); ResultSet r=stmt.executeQuery(SELECT a,b,c FROM Table1“); while (r.next( ) /打印当前行的值。 Int i=r.getInt(a“); String s=r.getString(b“

22、); Float f=r.getFloat(c“); System.out.println(ROW=+i+ +s+ +f ); ,获取MyDB数据库中的表属性,包括列的最大字节数,表的最大行数,驱动程序等待SQL操作执行的秒数 在MyDB中创建一个teacher表,包括的字段及类型为:id (int) , name (varchar(10), sex (char(2), age(int) 以id为主键 将teachers.txt的内容插入teacher表中,在teacher表上创建一个仅包括name和age列的视图teacher_view 查询teacher和teacher_view的内容,如

23、何获取结果集中任意位置处的记录?,游标控制 boolean next() throws SQLException 将指针从当前位置下移一行。ResultSet 指针最初位于第一行之前 boolean previous() throws SQLException 将指针移动到此 ResultSet 对象的上一行 boolean first() throws SQLException 将指针移动到此 ResultSet 对象的第一行。 boolean last() throws SQLException 将指针移动到此 ResultSet 对象的最后一行。 void beforeFirst() t

24、hrows SQLException 将指针移动到此 ResultSet 对象的开头,正好位于第一行之前。,void afterLast() throws SQLException 将指针移动到此 ResultSet 对象的末尾,正好位于最后一行之后。 boolean absolute(introw) throws SQLException 将指针移动到此 ResultSet 对象的给定行编号。 boolean relative(introws) throws SQLException 按相对行数(或正或负)移动指针 在ResultSet对象或其父辈Statement对象关闭之前,光标一直保持

25、有效。,输出teacher表的所有内容(包括列名和记录) 在teacher表上执行查询,并将结果填充到结果集中 输出结果集第一行记录 输出结果集第四行记录 输出结果集最后一行记录 输出结果集当前位置的前两行对应记录 输出结果集当前位置的前一行对应记录,如何向结果集及数据库中插入、删除、 更改记录?,可更新的ResultSet,创建可更新的结果集: createStatement方法第二参数需要是CONCUR_UPDATABLE UpdatableResultSet不能保证获得可更新的结果集,需要驱动程序的支持。 int getConcurrency() throws SQLException

26、检索此 ResultSet 对象的并发模式。 并发类型ResultSet.CONCUR_READ_ONLY 或 ResultSet.CONCUR_UPDATABLE,插入新行 可更新的 ResultSet 对象具有一个与其关联的特殊行,该行用作构建要插入的行的暂存区域 (staging area)。 void insertRow() throws SQLException 将插入行的内容插入到此 ResultSet 对象和数据库中。,rs.moveToInsertRow(); / moves cursor to the insert row rs.updateString(1, AINSWOR

27、TH); / updates the first column of the insert row to be AINSWORTH rs.updateInt(2,35); / updates the second column to be 35 rs.updateBoolean(3, true); / updates the third column to true rs.insertRow(); rs.moveToCurrentRow();,更新当前行中的列值 void updateRow() throws SQLException 用此 ResultSet 对象的当前行的新内容更新底层数据

28、库。 删除行 将游标移动到想删除的行,调用方法deleteRow(). 注:不同的JDBC以不同的方式处理删除操作(将删除行移走,使其在结果集中不可见;或者在被删除行的原来位置插入一个空行)。,rs.absolute(5); / moves the cursor to the fifth row of rs rs.updateString(NAME, AINSWORTH); / updates the NAME column of row 5 to be AINSWORTH rs.updateRow(); / updates the row in the data source,(1)在表中插

29、入一条新记录“7 LiuJie F 23” (2)删除第四条记录 (3)将第二条记录的教师年龄修改为40,可滚动的ResultSet,ScrollableResultSet,支持将结果集中的游标按任意方向移动。 创建可滚动的ResultSet: public Statement createStatement(int rsType, int rsConcurrenty) throws SQLException 其中,rsType必须是一下三种变量之一,添加到ResultSet接口中指示其对象类型: TYPE_FORWARD_ONLY:创建不可滚动的结果集,默认 TYPE_SCROLL_INSE

30、NSITIVE:创建可滚动的ResultSet对象,结果集打开时不反映变化 TYPE_SCROLL_SENSITIVE:创建可滚动的ResultSet对象,结果集打开时反映变化,rsConcurrenty必须是ResultSet常量中的一个,用于指定结果集是只读的还是可更新的: CONCUR_READ_ONLY 默认 CONCUR_UPDATABLE 检查ResultSet对象是否可滚动: ResultSet.getType() 例如: if(rs.getType()=ResultSet.TYPE_FORWARS_ONLY) System.out.println(“FORWARD_ONLY”)

31、: else System.out.println(“SCROLLABLE”);,如果多次重复执行同一条SQL语句,只 是语句中参数的取值不同,如何避免对 该SQL语句进行重复编译?,PreparedStatement SQL 语句被预编译并且存储在 PreparedStatement 对象中。然后可以使用此对象高效地多次执行该语句。 用来设置 IN 参数值的 setter 方法(setShort、setString 等等)必须指定与输入参数的已定义 SQL 类型兼容的类型。 获取PreparedStatement 对象的方法 PreparedStatement prepareStatemen

32、t(Stringsql) throws SQLException 创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。 SQL 语句可能包含一个或多个 ? IN 参数占位符的 SQL 语句,public interface PreparedStatement extends Statement,PreparedStatement可以作为IN参数的变量包含占位符,初始化的方法是调用该类的一系列setXXX()方法。 setXXX()方法一般有两个参数:第一个参数都是int型,指示JDBC PreparedStatement对象的第几个参数将要被初始化。第二个

33、参数的值就是PreparedStatemetn将要被初始化的参数取值 PreparedStatement接口有自己的executeQuery、executeUpdate和execute方法,但并不需要SQL语句作为参数提供给这些方法,因为它们已经包含预编译SQL语句,例:将mysql的myDB数据库中teacher表的ChenHong 的年龄修改为30,LiMing的年龄修改为20,如何执行带输入和输出参数的存储过程?,CallableStatement 用于执行 SQL 存储过程的接口 该对象包含了对存储过程的调用,但不包含存储过程本身(存储过程是存储在数据库中的) 获取CallableSt

34、atement对象 CallableStatement prepareCall(Stringsql) throws SQLException sql可能包含一个或多个 ? 参数占位符的 SQL 语句。,public interface CallableStatement extends PreparedStatement,IN 参数值是使用从 PreparedStatement 中继承的 set 方法设置的。 在执行存储过程之前,必须注册所有 OUT 参数的类型;它们的值是在执行后通过此类提供的 get 方法检索的。 void registerOutParameter(intparameter

35、Index, intsqlType) throws SQLException 按顺序位置 parameterIndex 将 OUT 参数注册为 JDBC 类型 sqlType。sqlType是由 java.sql.Types 定义的 SQL 类型代码。 void registerOutParameter(StringparameterName, intsqlType) throws SQLException 将名为 parameterName 的 OUT 参数注册为 JDBC 类型 sqlType。,例:执行存储过程,对mysql中的myDB数据库中的 teacher表,通过教师id能得到教师

36、姓名,对非常大的行值使用流 ResultSet可以获取任意大的LONGVARBINARY或LONGVARCHAR数据。 方法getBytes和getString将数据返回为大的块(最大为Statement.getMaxFieldSize的返回值)。 但是,以较小的固定块获取非常大的数据可能会更方便 InputStream getBinaryStream(intcolumnIndex) throws SQLException 以未解释字节的流的形式获取此 ResultSet 对象的当前行中指定列的值。,InputStream getAsciiStream(intcolumnIndex) thro

37、ws SQLException 以 单字节ASCII 字符流的形式获取此 ResultSet 对象的当前行中指定列的值。 InputStream getUnicodeStream(intcolumnIndex) throws SQLException 以双字节Unicode字符流的形式获取此 ResultSet 对象的当前行中指定列的值。,JDBC/ODBC桥连接Access的硬件设置,打开控制面板,选中管理工具。 打开管理工具,选中(ODBC)数据源 打开数据源管理器,选择系统DNS,并单击添加按钮。,选中Driver do Microsoft Access (*mdb),在ODBC Mic

38、rosoft Access安装界面中,填写数据源(如Book),并选择数据库,选好后如图。单击确定,完成了设置。,将Access的学生表的内容输出,DatabaseMetaData getMetaData( ) throws SQLException 获取 DatabaseMetaData 对象,该对象包含关于 Connection 对象连接到的数据库的元数据。 元数据包括关于数据库的表、受支持的 SQL 语法、存储过程、此连接的功能等信息。,如何获取所连接数据库的属性?,DatabaseMetaData,由Connection.getMetaData()方法创建,可以用于获取数据库的相关信息

39、: 例如:获取数据库中表的名字 Connection con=DriverManager.getConnection (“jdbc:odbc:Customers”); DatabaseMetaData dm=con.getMetaData(); ResultSet rs=dm.getTables(null,null,”%”,new String“Table”); ResultSet getTables(Stringcatalog, StringschemaPattern, StringtableNamePattern, Stringtypes) throws SQLException 检索可在

40、给定类别中使用的表的描述。仅返回与类别、模式、表名称和类型标准匹配的表描述。,从数据库获得的常规信息的方法: String getURL( ) throws SQLException 检索此 DBMS 的 URL String getDriverName() throws SQLException 检索此JDBC驱动程序的名称 String getUserName() throws SQLException 检索此数据库的已知的用户名称 String getDatabaseProductName( ) throws SQLException 检索此数据库产品的名称。,String getSQL

41、Keywords() throws SQLException 检索此数据库的还“不”是 SQL92 关键字的所有 SQL 关键字的逗号分隔列表。 boolean nullsAreSortedHigh() throws SQLException 检索 NULL 值是否被高排序。 boolean nullsAreSortedLow() throws SQLException 检索 NULL 值是否被低排序,检索信息的方法: boolean supportsBatchUpdates() throws SQLException 检索此数据库是否支持批量更新 boolean supportsStored

42、Procedures() throws SQLException 检索此数据库是否支持使用存储过程转义语法的存储过程调用 boolean supportsFullOuterJoins() throws SQLException 检索此数据库是否支持完全嵌套的外连接。 boolean supportsPositionedDelete() throws SQLException 检索此数据库是否支持位置的 DELETE 语句。,检索SQL对象及属性: ResultSet getSchemas() throws SQLException 检索可在此数据库中使用的模式名称。模式列为: TABLE_SC

43、HEM , TABLE_CATALOG ResultSet getCatalogs() throws SQLException 检索可在此数据库中使用的类别名称。 类别列为: TABLE_CAT ResultSet getTables(Stringcatalog, StringschemaPattern, StringtableNamePattern, Stringtypes) throws SQLException catalog 类别名称 schemaPattern 模式名称的模式 tableNamePattern 表名称模式 type 要包括的表类型组成的列表,表描述的列为: TABLE

44、_CAT 表类别 TABLE_SCHEM 表模式 ,TABLE_NAME 表名称 TABLE_TYPE 表类型 REMARKS, 表的解释性注释 TYPE_CAT, 类型类别 TYPE_SCHEM, 类型模式 TYPE_NAME, 类型名称 SELF_REFERENCING_COL_NAME, 有类型表的指定”identifier” 列的名称 REF_GENERATION 指定在 SELF_REFERENCING_COL_NAME 中创建值的方式,ResultSet getProcedures(Stringcatalog, StringschemaPattern, Stringprocedur

45、eNamePattern) throws SQLException 检索可在给定类别中使用的存储过程的描述。 过程描述的列为: PROCEDURE_CAT, PROCEDURE_SCHEM, PROCEDURE_NAME, REMARKS 过程的解释性注释 PROCEDURE_TYPE 过程的种类 procedureResultUnknown 可能返回结果 procedureNoResult 不返回结果 procedureReturnsResult 返回结果 ResultSet getPrimaryKeys(Stringcatalog, Stringschema, Stringtable) t

46、hrows SQLException 检索对给定表的主键列的描述。它们根据 COLUMN_NAME 进行排序。,输出MyDB中mydb数据库的下列属性 数据库URL 驱动程序名 对表及视图的描述 对模式的描述 数据库中使用的类别名称 对personal表的主键描述 对存储过程的描述 用户名 数据库产品名 SQL关键字 null是升序还是降序排列,是否支持批量更新 是否支持存储过程 是否支持完全外连接 是否支持定点删除,ResultSetMetaData,ResultSet中有关列的信息可以调用getMetaData()方法获得。 返回的ResultSetMetaData对象可以查询Result

47、Set对象的列的号码、类型和属性。,如何获取结果集的相关属性?,int getColumnCount() throws SQLException 返回此 ResultSet 对象中的列数 int getColumnDisplaySize(intcolumn) throws SQLException 指示指定列的最大标准宽度,以字符为单位 String getColumnName(intcolumn) throws SQLException 获取指定列的名称。 int getColumnType(intcolumn) throws SQLException 获取指定列的 SQL 类型。 Stri

48、ng getColumnTypeName(intcolumn) throws SQLException 获取指定列的数据库特定的类型名称。,String getTableName(intcolumn) throws SQLException 获取指定列的表名称。 boolean isAutoIncrement(intcolumn) throws SQLException 指示是否自动为指定列进行编号 int isNullable(intcolumn) throws SQLException 指示指定列中的值是否可以为 null boolean isReadOnly(intcolumn) throws SQLException 指示指定的列是否明确不可写入。,int getPrecision(intcolumn) throws SQLException 获取指定列的指定列宽。 int getScale(intcolumn) throws SQLException 获取指定列的小数点右边的位数,显示从teacher表查询得到的结果集的下列属性 结果集的列数 结果集各列的列名 表名 各列的类型名 各列的SQL类型标识 工资列的总宽度 工资列的小数位数 各列的最大标准宽度 各列的值是否自动增长 各列是否允许取空值 各列是否是只读的,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!