欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    JDBC数据库访问.ppt

    • 资源ID:6510350       资源大小:1.30MB        全文页数:119页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    JDBC数据库访问.ppt

    Java Web 编程技术,第7章 JDBC数据库访问,7.1 数据库简介 7.2 Java数据库技术概述 7.3 传统的数据库连接方法7.4 JDBC API介绍7.5 访问数据库元数据(自学)7.6 预处理语句7.7 使用数据源连接数据库(自学)7.8 DAO设计模式介绍7.9可调用语句7.10事务处理(自学),7.1 数据库简介,PostgreSQL MySQLSQL ServerORACLE,7.1.1 PostgreSQL数据库简介,PostgreSQL是对象关系型数据库管理系统(ORDBMS)它起源于伯克利(BSD)的数据库研究计划,目前是最重要的开源数据库产品开发项目之一,有着非常广泛的用户PostgreSQL支持事务、子查询、多版本并发控制、数据完整性检查等特性,并且支持多语言的应用开发能在包括Linux、FreeBSD和Windows等多种平台下运行,PostgreSQL的下载和安装,计算机系统必须满足下面要求:CPU:Intel或AMD的32位或64位CPU。操作系统:Windows、Linux、FreeBSD(UNIX)、MAC。磁盘格式:文件系统为NTFS格式。用户:以系统管理员身份安装PostgreSQL。目前的最新版本是9.1.3版。下载地址:http:/,使用pgAdmin III 操作数据库,在数据库名模式public 数据表下查看或新建数据表,使用工具查询工具,查询数据库数据,7.1.2 MySQL数据库简介,MySQL是目前最为流行的开放源代码的数据库,是完全网络化的跨平台的关系型数据库系统,它是由瑞典的MySQL AB 公司(开发人Michael Widenius and David Axmark)于1995年开始发布2008年2月26日,Sun公司并购MySQL AB 公司,2010年1月27日,Oracle公司并购了Sun公司,现在MySQL属于Oracle。版本:开源版MySql5.5,企业服务器版MySql5.6,集群版MySql7.1下载地址http:/,7.1.2 MySQL数据库简介,一种完全免费的产品,被广泛地应用在中小型网站和管理系统中具有功能强大、支持跨平台、运行速度快、支持面向对象、安全性高、成本低、支持各种开发语言、数据存储量大、支持强大的内置函数等特点能在包括Linux、FreeBSD和Windows等多种平台下运行,用SQLyog工具管理MySQL数据库下载地址http:/,7.1.3 SQL Server数据库简介,SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),提供了一个可靠的、高效的、智能化的数据平台经历7.0,2000,2005,2008等版本,其中SQL Server 2008分为SQL Server 2008企业版、标准版、工作组版、Web版、开发者版、Express版(免费)、Compact 3.5版SQL Server 2008企业版是一个全面的数据管理和业务智能平台,为关键业务应用提供了企业级的可扩展性、数据仓库、安全、高级分析和报表支持。,SQL Server 2008标准版是一个完整的数据管理和业务智能平台,为部门级应用提供了最佳的易用性和可管理特性。SQL Server 2008工作组版是一个值得信赖的数据管理和报表平台,用以实现安全的发布、远程同步和对运行分支应用的管理能力。这一版本拥有核心的数据库特性,可以很容易地升级到标准版或企业版。SQL Server 2008 Web版是针对运行于Windows服务器中要求高可用、面向Internet Web服务的环境而设计。这一版本为实现低成本、大规模、高可用性的Web应用或客户托管解决方案提供了必要的支持工具。SQL Server 2008开发者版允许开发人员构建和测试基于SQL Server的任意类型应用。这一版本拥有所有企业版的特性,但只限于在开发、测试和演示中使用。基于这一版本开发的应用和数据库可以很容易地升级到企业版。,7.1.3 SQL Server数据库简介,SQL Server 2008 Express版是SQL Server的一个免费版本,它拥有核心的数据库功能,其中包括了SQL Server 2008中最新的数据类型,但它是SQL Server的一个微型版本。这一版本是为了学习、创建桌面应用和小型服务器应用而发布的。SQL Server Compact是一个针对开发人员而设计的免费嵌入式数据库,这一版本的意图是构建独立、仅有少量连接需求的移动设备、桌面和Web客户端应用。SQL Server Compact可以运行于所有的微软Windows平台之上,包括Windows XP和Windows Vista操作系统,以及Pocket PC和SmartPhone设备。,7.1.3 SQL Server数据库简介,在配置工具Sql Server配置管理器中启动Sql Server2008服务,用Sql Server management studio打开Sql Server2008控制台,7.1.4 ORACLE数据库,Oracle是目前关系型数据库管理系统市场中应用最广泛的产品,最新的Oracle版本是Oracle 11g劳伦斯埃里森和他的朋友Bob Miner和Ed Oates在1977年建立了软件开发实验室咨询公司(SDL,Software Development Laboratories)。SDL开发了Oracle软件的最初版本ORACLE数据库在物理上是存储于硬盘的各种文件。它是活动的,可扩充的,随着数据的添加和应用程序的增大而变化ORACLE数据库在逻辑上是由许多表空间构成ORACLE的详细信息参见百度百科http:/,用PL/SQL Developer管理Oracle数据库,7.2 Java数据库技术概述,Java程序是通过JDBC(Java DataBase Connection)访问数据库的。该工具包使得Java编程人员可以连接到一个数据库,进而使用SQL 对数据库进行查询和更新操作可以理解成是对查询分析器的模拟实现JDBC的基本功能包括:建立与数据库的连接;发送SQL语句;处理数据库操作结果。,Java数据库应用程序,JDBC驱动程序管理器,JDBC/ODBC桥接器,ODBC驱动程序,DB供应商提供的JDBC驱动程序,DB,JDBC API,JDBC驱动程序 API,SQL命令,(SQL Server、Oracle),JDBC运行原理,JDBC与JDBC驱动程序的关系,JDBC,=,JDBC驱动程序管理器,JDBC DriverAPI,+,供编程人员使用,供数据库厂商使用,JDBCAPI,+,java.sql包,数据库厂商提供,JDBC的结构,数据库访问的两层和三层模型,两层模型即客户机/数据库服务器结构,也就是通常所说的C/S(Client/Server)结构三层模型是指客户机/应用服务器/数据库服务器结构,也就是通常所说的B/S(Browser/Server)结构,JDBC驱动程序,在Java程序中可以使用的数据库驱动程序主要有四种类型,常用的有下面两种:JDBC-ODBC桥驱动程序专为某种数据库而编写的驱动程序postgreSQL驱动包:postgresql-9.0-801.jdbc4.jarMySQL驱动包:mysql-connector-java-5.0.8-bin.jarSql Server驱动包:sqljdbc.jarOracle驱动包:classes12.jar以上驱动包可到进入Web应用开发课程的教学材料学习参考资料 下载,安装JDBC驱动程序,使用JDBC-ODBC桥驱动程序连接数据库,不需要安装驱动程序,因为在Java API中已经包含了该驱动程序。使用专用驱动程序连接数据库,必须安装驱动程序。在开发Web应用程序中,需要将驱动程序打包文件复制到:Tomcat安装目录的lib目录中Web应用程序的WEB-INFclasseslib目录中Eclipse工程的build path中,Java访问数据库的过程,7.3 传统的数据库连接方法,7.3.1 加载驱动程序7.3.2 建立连接对象7.3.3创建语句对象7.3.4获得SQL语句的执行结果7.3.5关闭建立的对象,释放资源7.3.6简单的应用示例,7.3.1 加载驱动程序,使用Class类的forName()静态方法,该方法的声明格式为:public static Class forName(String className)throws ClassNotFoundException如果使用ODBC-JDBC桥驱动程序,则使用JDK自带的驱动程序,名称为“sun.jdbc.odbc.JdbcOdbcDriver”Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);数据库厂商提供的专门的驱动程序,应该给出专门的驱动程序名。,几种常见数据库的加载驱动程序代码,PostgreSQL数据库:Class.forName(org.postgresql.Driver);MySQL数据库:Class.forName(com.mysql.jdbc.Driver);SQL Server数据库:Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);Oracle数据库:Class.forName(oracle.jdbc.driver.OracleDriver);,7.3.2 建立连接对象,使用DriverManager类的getConnection()DriverManager类的静态方法getConnection(),该方法的声明格式为:public static Connection getConnection(String dburl)public static Connection getConnection(String dburl,String user,String password),如果通过JDBC-ODBC桥驱动程序连接数据库,URL的形式为:jdbc:odbc:DataSource例如:String dburl=jdbc:odbc:Bookstore;如果使用专门的驱动程序连接数据库,JDBC URL可能更复杂一些。例如要连接PostgreSQL数据库,它的JDBC URL为:jdbc:postgresql:/localhost:5432/dbnameString dburl=jdbc:postgresql:/localhost:5432/bookstore;Connection conn=DriverManager.getConnection(dburl,bookstore,bookstore);,7.3.2 建立连接对象(续),连接MySQL数据库为:String dburl=jdbc:mysql:/localhost:3306/bankConnection conn=DriverManager.getConnection(dburl,root,111111);连接SQL Server数据库为:String dburl=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=web2011Connection conn=DriverManager.getConnection(dburl,web,web2011);连接Oracle数据库为:String dburl=jdbc:oracle:thin:localhost:1521:ORCLConnection conn=DriverManager.getConnection(dburl,system_dba,123456);,7.3.2 建立连接对象(续),7.3.3创建语句对象,对于不同的语句对象,可以使用Connection接口的不同方法创建。例如,要创建一个简单的Statement对象可以使用createStatement()方法,Statement stmt=conn.createStatement();创建PreparedStatement对象(预编译的 SQL 语句)应使用prepareStatement()方法创建CallableStatement对象(用于执行 SQL 存储过程)应使用prepareCall()方法。,7.3.4获得SQL语句的执行结果,对于查询语句,调用executeQuery(String sql)方法,如:String sql=SELECT*FROM books;ResultSet rst=stmt.executeQuery(sql);while(rst.next()out.print(rst.getString(1)+t);对于语句如CREATE、ALTER、DROP、INSERT、UPDATE、DELETE等须executeUpdate(String sql)方法。该方法返回值为整数,用来指示被影响的行数。,7.3.5关闭建立的对象,释放资源,在Connection接口、Statement接口和ResultSet接口中都定义的close()方法。当这些对象使用完毕后应使用close()方法关闭建立的对象,关闭对象应该按与建立对象相反的顺序关闭,从而释放资源。例如:conn.close();,7.3.6 简单的应用示例,1、连接postgreSQL、MySQL和SQL Server数据库的例子(1)连接postgreSQL:testPostgreSQL.jsp(2)连接MySQL:testMySQL.jsp(3)连接SQL Server:testSqlServer.jsp,连接PostgreSQL数据库的主要代码testPostgreSQL.jsp,连接MySQL数据库的主要代码testMySQL.jsp,连接SQLServer数据库的主要代码testSqlServer.jsp,7.3.6 简单的应用示例,2、基于MVC设计模式实现数据库查询:从JSP页面输入一个书号,查询该书的信息,该应用的程序代码(P189):模型:BookBean.java 视图:bookQuerys.jsp showBook.jsp error.jsp控制器:BookQueryServlet.java,7.4 JDBC API介绍,JDBC API是Java语言的标准API,目前的最新版本是JDBC 4.0。在JDK 6.0中,它是通过两个包提供的:java.sql包 javax.sql包java.sql包提供了基本的数据库编程的类和接口,如驱动程序管理类DriverManager、创建数据库连接Connection接口、执行SQL语句以及处理查询结果的类和接口等。javax.sql包主要提供了服务器端访问和处理数据源的类和接口,如DataSource、RowSet、RowSetMetaData、PooledConnection接口等,它们可以实现数据源管理、行集管理以及连接池管理等。,java.sql包,javax.sql包中的类和接口,javax.sql.DataSource和java.sql.Connection之间的关系,连接池化过程中涉及的关系,分布式事务支持中涉及的关系,行集涉及的关系,Connection对象代表与数据库的连接,也就是在加载的驱动程序与数据库之间建立连接。一个应用程序可以与一个数据库建立一个或多个连接,或者与多个数据库建立连接。得到连接对象后,可以调用Connection接口的方法创建SQL语句对象以及在连接对象上完成各种操作,下面是Connection接口的常用方法:public Statement createStatement(),7.4.1 Connection接口,public DatabseMetaData getMetaData()所连接的数据库的元数据public void setAutoCommit(boolean autoCommit)public boolean getAutoCommit()获取自动提交模式public void commit()提交对数据库的更新操作,使更新写入数据库。只有当setAutoCommit()设置为false时才应该使用该方法。public void rollback()回滚对数据库的更新操作。只有当setAutoCommit()设置为false时才应该使用该方法。public void close()public boolean isClosed(),7.4.2 Statement对象,通过Connection对象可以创建SQL语句对象,SQL语句对象有三种:Statement、PreparedStatement和CallableStatement。通过调用Connection接口的相应方法可以得到这三种语句对象。Statement接口对象主要用于执行一般的对数据库操作SQL语句,调用Statement对象的方法可以执行SQL语句,返回一个ResultSet结果集对象。,public ResultSet executeQuery(String sql)该方法用来执行SQL查询语句。查询结果以ResultSet对象返回。public int executeUpdate(String sql)执行由字符串sql指定的SQL语句,该语句可以是INSERT、DELETE、UPDATE语句或者无返回的SQL语句,如CREATE TABLE。返回值是更新的行数,如果语句没有返回则返回值为0。public boolean execute(String sql)执行可能有多个结果集的SQL语句,sql为任何的SQL语句。如果语句执行的第一个结果为ResultSet对象,该方法返回true,否则返回false。public Connection getConnection()public void close(),Statement的方法,7.4.3 ResultSet接口,ResultSet对象表示SQL SELECT语句查询得到的记录集合,称为结果集。结果集一般是一个记录表,其中包含多个记录行和列标题,一个Statement对象一个时刻只能打开一个ResultSet对象。通过调用ResultSet对象的方法,可以对查询结果处理。每个结果集对象都有一个游标。所谓游标(cursor)是结果集的一个标志或指针。对新产生的ResultSet对象,游标指向第一行的前面,可以调用ResultSet的next()方法,使游标定位到下一条记录。如果游标指向一个具体的行,就通过调用ResultSet对象的方法,可以对查询结果处理。,1.检索当前行字段值ResultSet接口提供了检索行的字段值的方法,由于结果集列的数据类型不同,所以应该使用不同的getXxx()方法获得列值,例如若列值为字符型数据,可以使用下列方法检索列值:String getString(int columnIndex)String getString(String columnName)返回结果集中当前行指定的列号或列名的列值,结果作为字符串返回。columnIndex 为列在结果行中的序号,序号从1开始,columnName结果行中的列名。,ResultSet的方法,下面列出了返回其他数据类型的方法,这些方法都可以使用这两种形式的参数:short getShort(int columnIndex)返回指定列的short值。byte getByte(int columnIndex)返回指定列的byte值。int getInt(int columnIndex)返回指定列的int值。long getLong(int columnIndex)返回指定列的long值。float getFloat(int columnIndex)返回指定列的float值。double getDouble(int columnIndex)返回指定列的double值。boolean getBoolean(int columnIndex)返回指定列的boolean值。Date getDate(int columnIndex)返回指定列的Date对象值。Object getObject(int columnIndex)返回指定列的Object对象值。Blob getBlob(int columnIndex)返回指定列的Blob对象(Binary Large Object)值。Clob getClob(int columnIndex)返回指定列的Clob对象(Character Large Object)值,ResultSet的方法,2.对行操作的方法调用ResultSet的next()方法,使游标定位到下一条记录。还可以通过其他方法使游标任意移动,这些方法有:boolean next()throws SQLException将游标从当前位置向下移动一行。第一次调用next()方法将使第一行成为当前行,以后调用游标依次向后移动。如果该方法返回true,说明新行是有效的行,若返回false,说明已无记录。boolean isFirst()throws SQLException返回游标是否指向第一行boolean isLast()throws SQLException返回游标是否指向最后一行int getRow()返回当前行的行号。int findColumn(String columnname)返回列名指定的列号。,ResultSet的方法,对于查询语句,调用executeQuery(String sql)方法,该方法的返回类型为ResultSet,再通过调用ResultSet的方法可以对查询结果的每行进行处理。如:String sql=SELECT*FROM books;ResultSet rst=stmt.executeQuery(sql);while(rst.next()System.out.print(rst.getString(1)+t);对于更新语句,如INSERT、UPDATE、DELETE,须使用executeUpdate(String sql)方法。该方法返回值为整数,用来指示被影响的行的数目。,ResultSet的方法,3.数据类型转换在ResultSet对象中的数据为从数据库中查询出的数据,调用ResultSet对象的getXxx()方法返回的是Java语言的数据类型,因此这里就有数据类型转换的问题。实际上调用getXxx()方法就是把SQL数据类型转换为Java语言数据类型,下表列出了SQL数据类型与Java数据类型的转换。,ResultSet的方法,SQL数据类型与Java数据类型之间的对应关系,注:不同数据库的数据类型名称有略微差别,7.4.4 可滚动和可更新的ResultSet,可滚动的ResultSet是指在结果集对象上不但可以向前访问结果集中的记录,还可以向后访问结果集中的记录。可更新的ResultSet是指不但可以访问结果集中的记录,还可以通过结果集对象更新数据库。,1、可滚动的ResultSet,要使用可滚动的ResultSet对象,必须使用Connection对象的带参数的createStatement()方法创建的Statement,然后在该对象上创建的结果集才是可滚动的,该方法的格式为:public Statement createStatement(int resultType,int concurrency)参数resultType的取值应为ResultSet接口中定义的下面常量:ResultSet.TYPE_SCROLL_SENSITIVE/可滚动ResultSet.TYPE_SCROLL_INSENSITIVE/不可滚动ResultSet.TYPE_FORWARD_ONLY/仅向前读取,对于可滚动的结果集,ResultSet接口提供了下面的移动结果集游标的方法:public boolean next()throws SQLExceptionpublic boolean previous()throws SQLExceptionpublic boolean first()throws SQLExceptionpublic boolean last()throws SQLExceptionpublic boolean absolute(int rows)throws SQLException将光标移动到此 ResultSet 对象的给定行编号public boolean relative(int rows)throws SQLException按相对行数(或正或负)移动光标public boolean isFirst()throws SQLExceptionpublic boolean isLast()throws SQLExceptionpublic int getRow()返回游标所在当前行的行号。,用可滚动的结果集更新的两种方式,(1)更新 ResultSet 对象 rs 第五行中的 NAME 列,然后使用方法 updateRow 更新导出 rs 的数据源表。rs.absolute(5);/moves the cursor to the fifth row of rsrs.updateString(NAME,AINSWORTH);/updates the/NAME column of row 5 to be AINSWORTH rs.updateRow();/updates the row in the data source(2)将光标移动到插入行,构建一个三列的行,并使用方法 insertRow 将其插入到 rs 和数据源表中。rs.moveToInsertRow();/moves cursor to the insert rowrs.updateString(1,AINSWORTH);/updates the/first columnof the insert row to be AINSWORTH rs.updateInt(2,35);/updates the second column to be 35rs.updateBoolean(3,true);/updates the third column to truers.insertRow();rs.moveToCurrentRow();,例:查询数据分页显示,2、可更新的ResultSet,要使ResultSet对象可更新,应该在使用Connection的createStatement(int,int)创建Statement对象时,指定第二个参数的值决定是否创建可更新的结果集,该参数也使用ResultSet接口中定义的常量,如下所示:ResultSet.CONCUR_READ_ONLY不可以更新的 ResultSet 对象的并发模式ResultSet.CONCUR_UPDATABLE可以更新的 ResultSet 对象的并发模式例如,下面语句创建的rst对象就是可滚动和可更新的结果集对象:Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);Resultset rst=stmt.executeQuery(SELECT*FROM books);,对于每种数据类型,ResultSet都定义了相应的updateXXX()方法,例如:public void updateInt(int columnIndex,int x)public void updateInt(String columnName,int x)public void updateString(int columnIndex,String x)public void updateString(String columnName,String x)有关其他方法请参考Java API文档。,当更新了需要更新的所有列之后,调用updateRow()方法把更新写入表中。updateRow()方法的格式如下:public void updateRow()throws SQLException 执行该方法后,将用当前行的新内容更新结果集,同时更新数据库。下面代码说明了如何在books表中修改一本书的信息:static String sql=SELECT bookid,bname FROM books WHERE bookid=201;rset=stmt.executeQuery(sql);rset.next();rset.updateString(2,Java EE编程指南);rset.updateRow();/更新当前行,要插入一行数据首先应该将游标移到插入行,该方法格式如下:public void moveToInsertRow()throws SQLException当游标移到插入行时,ResultSet记住游标所在的位置。插入行是与可更新结果集相关的特殊行。它实际上是一个新行的缓冲区。当游标处于插入行时,调用updateXxx()方法用相应的数据修改每列的值。完成输入新行的数据之后,调用insertRow()方法。在调用insertRow()方法之前,该行所有的列都必须给定一个值。public void insertRow()throws SQLException,调用insertRow()方法之后,这个ResultSet仍然位于插入行。这时,可以插入另外一行数据,或者移回到刚才ResultSet记住的位置(当前行位置)。通过调用moveToCurrentRow()方法返回到当前行。也可以在调用insertRow()方法之前通过调用moveToCurrentRow()方法取消插入。最后,可以通过调用下面的方法从一个表或ResultSet中删除一行数据:public void deleteRow()throws SQLException 从结果集中删除当前行,同时从数据库中将该行删除。,7.5 访问数据库元数据(自学),7.5.1 获得数据库的信息7.5.2 获取结果集的信息,7.5.1 获得数据库的信息,在得到数据库的连接对象后,可以通过该对象获得数据库的元信息。其中包括数据库产品名称、版本号、使用的数据类型和存储过程等信息。要获取这些信息,需要得到DatabaseMetaData接口对象,这可以通过调用Connection对象的getMetaData()方法实现。假如conn是一个Connection对象,下面语句可以获得DatabaseMetaData接口对象dbmd:DatabaseMetaData dbmd=conn.getMetaData();,得到了元数据对象后就可以调用DatabaseMetaData接口的方法得到数据库的各种元信息了,常用的方法有:String getDatabaseProductName()String getDatabaseProductVersion()String getUserName()String getURL()String getDriverName()String getDriverVersion(),7.5.2 获取结果集的信息,在对数据库的表结构已经了解的情况下,可以知道返回的结果集中各个列的一些情况,如列名、数据类型等。但有时可能并不知道结果集中各个列的情况,这时可以使用ResultSet的getMetaData()方法来获得结果集的信息。该方法的格式为:ResultSetMetaData getMetaDate()throws SQLExceptionResultSetMetaData接口常用的方法有:int getColumnCount()返回结果集的列数 String getColumnLabel(int column)返回结果集中指定列的标题 String getColumnName(int column)返回结果集中指定列的名称,int getColumnType(int column)返回结果集中指定列的SQL数据类型。它的返回值是一个int型值。在java.sql.Types类中定义了各种SQL数据类型的常量 String getColumnTypeName(int column)返回结果集中指定列的数据类型在数据源中的名称 String getSchemaName(int column)返回指定列所属表的模式名 String getTableName(int column)返回指定的列所属的表名 boolaen isReadOnly(int column)返回指定的列是否只读 boolaen isNullable(int column)返回指定的列是否可取空值,7.6 预处理语句,为了提高语句的执行效率可以使用PreparedStatement接口对象调用数据库的存储过程可以使用CallableStatement接口对象。,7.6.1 创建PreparedStatement对象,PreparedStatement接口继承了Statement接口,因此它可以使用Statement接口中定义的方法。PreparedStatement对象还可以创建带参数的SQL语句,在SQL语句中指出接收哪些参数,然后进行预编译。创建PreparedStatement对象与创建Statement对象类似,唯一不同的是需要给创建的PreparedStatement对象传递一个SQL命令,即需要将执行的SQL命令传递给其构造方法而不是execute()方法。如:PreparedStatement pstmt=con.prepareStatement(UPDATE EMPLOYEES SET SALARY=15000.00 WHERE ID=110592);,用Connection的下列方法创建PreparedStatement对象:public PreparedStatement prepareStatement(String sql)public PreparedStatement prepareStatement(String sql,int type,int concurrency)public PreparedStatement prepareStatement(String sql,int type,int concurrency,int holdability)Type为结果集类型,concurrency为并发类型 ResultSet对象的可保持性是指当一条语句执行新的SQL命令或调用commit()时是否关闭之前打开的ResultSet。JDBC 3.0可以让ResultSet对象一直处于打开状态。,要指定结果集是否是可保持的,可使用ResultSet接口的常量:ResultSet.HOLD_CURSOR_OVER_COMMIT/保持打开ResultSet.CLOSE_CURSOR_OVER_COMMIT/关闭PreparedStatement对象通常用来执行动态SQL语句,此时需要在SQL语句通过问号指定参数,每个问号为一个参数。上述这些方法中的第一个参数都是一个SQL字符串。这些SQL字符串可以包含一些参数,这些参数在SQL字符串中使用问号(?)作为占位符,在SQL语句执行时将被数据替换。,7.6.2使用PreparedStatement对象,通过使用带参数的SQL语句可以大大提高SQL语句的灵活性。例如:String sql=INSERT INTO books(bookid,title,price)VALUES(?,?,?);PreparedStatement pstmt=con

    注意事项

    本文(JDBC数据库访问.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开