jdbc mysql ppt,JAVAWEB数据库访问ppt课件.ppt-资源下载人人文库网

JAVA WEB数据库访问ppt课件.ppt

数据库访问 夏汛 泸职院信息工程系 学习目标 能够使用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语句int executeBatch 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该方法移动游标到结果集的第一行booleanlast throwsSQLException该方法移动游标到结果集的最后一行booleanabsolute introw throwsSQLException该方法移动游标到结果集中指定的行 row可以取正 也可以取负 1表示移动游标到第一行 2表示移动游标到第二行 1表示移动游标到最后一行 2表示移动游标到倒数第二行 接下来数据库访问还需要知道的内容 事务处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值