JAVA WEB数据库访问_第1页
JAVA WEB数据库访问_第2页
JAVA WEB数据库访问_第3页
JAVA WEB数据库访问_第4页
JAVA WEB数据库访问_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库访问,夏汛,泸职院信息工程系,学习目标,能够使用JDBC访问数据库,JDBC驱动程序的类型,JDBC-ODBC桥(访问access,只能通过JDBC-ODBC桥)部分本地API,部分Java驱动程序JDBC网络纯Java驱动程序本地协议纯Java驱动程序,下载安装Mysql,下载和使用MysqlJDBC驱动,JDBCAPI,访问数据库的代码:Class.forName(com.mysql.jdbc.Driver);Connectionconn=DriverManager.getConnection(“jdbc:mysql:/localhost:3306/DB,root,123);Statementstmt=conn.createStatment();ResultSetrs=stmt.executeQuery(select*fromemp),JDBCAPI-加载与注册JDBC驱动,1.Driver接口java.sql.Driver是所有JDBC驱动程序需要实现的接口,这个接口主要是提供给数据库厂商使用,不同厂商该接口的类名是不同的。com.microsoft.jdbc.sqlserver.SQLServerDriversql2000的驱动类名com.microsoft.sqlserver.SQLServerDriversql2005的驱动类名oracle.jdbc.driver.OracleDriverOracle的JDBC驱动类名com.mysql.jdbc.Drivermysql的驱动类名Driver接口中提供了一个Connect()方法,用来建立到数据库的连接Connectionconnect(Stringurl,propertiesinfo)throwsSQLException,JDBCAPI-加载与注册JDBC驱动,2.加载与注册JDBC驱动加载JDBC驱动是调用Class类的静态方法forName(),向其传递要加载的JDBC驱动的类名。DriverManager类是驱动程序管理类,负责管理驱动程序,这个类中所有方法都是静态的,在DriverManager类中提供了registerDriver()方法来注册驱动程序类的实例。publicstaticvoidregisterDriver(Driverdriver)throwsSQLException通常不需要亲自去调用registerDriver()方法来注册驱动程序类的实例,因为实现Driver接口的驱动程序类都包含了静态代码块,在这个静态代码块中,会调用DriverManager.registerDriver()方法来注册自身的一个实例。,JDBCAPI-建立到数据库的连接,3.建立到数据库的连接在DriverManger类中提供了3个重载的getConnection()方法PublicstaticConnectiongetConnection(Stringurl)throwsSQLExceptionPublicstaticConnectiongetConnection(Stringurl,Stringuser,Stringpassword)throwsSQLExceptionPublicstaticConnectiongetConnection(Stringurl,Propertiesinfo)throwsSQLExceptionMysql的URL:jdbc:mysql:/localhost:3306/databasename,JDBCAPI-访问数据库,1.StaementStaementcreateStaement()throwsSQLException该方法创建一个Staement对象,用于向数据库发送SQL语句,没有参数的SQL语句通常用Statement对象来执行Staement中定义了下列方法用于执行SQL语句ResultSetexeCuteQuery(Stringsql)throwsSQLException该方法执行参数sql指定的sql语句,返回一个ResultSet对象,ResultSet用于查看执行结果。intexecuteUpdate(Stringsql)throwsSQLException该方法执行参数sql指定的INSERT、UPDATE或者DELETE语句,也可执行SQLDDL语句,如CREATETABLEbooleanexecute(Stringsql)throwsSQLException该方法执行返回多个结果集的SQL语句intexecuteBatch()throwsSQLException该方法允许我们向数据库提交一批命令,然后一起执行。大量SQL语句的批量执行可以显著提高性能。如果所有命令都成功执行,返回值是一个更新行数的数组。数组中每一个int元素是按照加入命令的先后顺序来存储的,表示了相应命令的更新行数。可以使用addBatch()方法将SQL命令加入到命令列表中。,JDBCAPI-访问数据库,2.ResultSetResultSet接口由数据库厂商实现,ResultSet对象维护了一个指向当前数据行的游标,初始的时候,游标在第一行之前,可以通过ResultSet对象的next()方法移动游标到下一行。booleannext()throwsSQLExceptionResultSet接口中定义了很多方法来获取当前行中的数据,根据字段类型的不同用不同的方法来获取数据。方法略每种方法,又提供了两种形式的调用,一种是以列的索引作为参数(索引从1开始),一种是以列的名字作为参数。如果不知道要获取的列数据类型,可以一律采用getString()方法来得到String类型的数据,JDBCAPI-访问数据库,3.PreparedStatement在程序中传递的SQL语句在执行前必须被预编译,包括语句分析、代码优化等,然后才能被数据库引擎执行。如果重复执行只有参数不同的SQL语句,是比较低效的。如果要用不同的参数来多次执行同一个SQL语句,可以使用PreparedStatement的对象。PreparedStatementpstmt=conn.preparedStatement(“insertemployeevalues(?,?,?)”);pstmt.setInt(1,1);pstmt.setString(2,”zhangsan”);pstmt.setDate(3,java.sql.Date.valueof(“2011-2-25”);pstmt.executeUpdate();,可滚动结果集,之前通过Statement对象所创建的结果集只能向前滚动,即只能调用next()方法向前得到数据行,无法向后滚动。如果要获得一个可滚动的结果集,需要在创建Statement或PreparedStatement对象时,调用Connection对象的另一个重载的createStatement()方法:Statementstmt=conn.createStatement(type,concurrency);PreparedStatementpstmt=conn.preparedStatement(type,concurrency);其中type可取:ResultSet.TYPE_FORWARD_ONLY:结果集不能滚动ResultSet.TYPE_SCROLL_INSENSITIVE:结果集可以滚动,但是对数据库变化不敏感,数据库查询生成结果集后发生了变化,结果集不发生变化。ResultSet.TYPE_SCROLL_SENSITIVE:结果集可以滚动,但是对数据库变化敏感。例如通过查询返回了10行数据,如果另一个程序删除了其中的2行,那么这个结果集中就只有8行了,Concurrency可取:ResultSet.CONCUR_READ_ONLY结果集不能用于更新数据库ResultSet.CONCUR_UPDATABLE结果集可以用于更新数据库,ResultSet接口为可滚动结果集提供的方法,booleanisBeforeFirst()throwsSQLExceptionbooleanisAfterLast()throwsSQLExceptionbooleanisFirst()throwsSQLExceptionbooleanisLast()throwsSQLException以上4种方法分别用于判断游标是否位于第一行之前、最后一行之后、第一行和最后一行,voidbeforeFirst()throwsSQLException该方法移动游标到结果集第一行之前voidafterLast()throwsSQLException该方法移动游标到结果集最后一行之后booleanfirst()throwsSQLException该方法移动游标到结果集的第一行b

温馨提示

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

评论

0/150

提交评论