JAVAWEB数据库访问.ppt

上传人:牧羊曲112 文档编号:5436012 上传时间:2023-07-06 格式:PPT 页数:17 大小:204KB
返回 下载 相关 举报
JAVAWEB数据库访问.ppt_第1页
第1页 / 共17页
JAVAWEB数据库访问.ppt_第2页
第2页 / 共17页
JAVAWEB数据库访问.ppt_第3页
第3页 / 共17页
JAVAWEB数据库访问.ppt_第4页
第4页 / 共17页
JAVAWEB数据库访问.ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《JAVAWEB数据库访问.ppt》由会员分享,可在线阅读,更多相关《JAVAWEB数据库访问.ppt(17页珍藏版)》请在三一办公上搜索。

1、数据库访问,夏汛,泸职院信息工程系,学习目标,能够使用JDBC访问数据库,JDBC驱动程序的类型,JDBC-ODBC桥(访问access,只能通过JDBC-ODBC桥)部分本地API,部分Java驱动程序JDBC网络纯Java驱动程序本地协议纯Java驱动程序,下载安装Mysql,下载mysql的社区版本MySQL Community Server,下载和使用Mysql JDBC驱动,Mysql的JDBC驱动没有包含在数据库的安装包中,需要单独下载进入网址后,点击“Connector/J”,下载Mysql的JDBC驱动在Eclipse项目文件夹下,建立文件夹lib,将JDBC驱动拷贝进去,然后

2、在Eclipse里该项目上右键点击“属性”“Java构建路径”“库”,添加JAR,将选中即可。,JDBC API,访问数据库的代码:Class.forName(com.mysql.jdbc.Driver);Connection conn=DriverManager.getConnection(“jdbc:mysql:/localhost:3306/DB,root,123);Statement stmt=conn.createStatment();ResultSet rs=stmt.executeQuery(select*from emp),JDBC API-加载与注册JDBC驱动,1.Driv

3、er接口是所有JDBC驱动程序需要实现的接口,这个接口主要是提供给数据库厂商使用,不同厂商该接口的类名是不同的。com.microsoft.jdbc.sqlserver.SQLServerDriver sql2000的驱动类名com.microsoft.sqlserver.SQLServerDriver sql2005的驱动类名oracle.jdbc.driver.OracleDriver Oracle的JDBC驱动类名com.mysql.jdbc.Driver mysql的驱动类名Driver接口中提供了一个Connect()方法,用来建立到数据库的连接Connection connect(

4、String url,properties info)throws SQLException,JDBC API-加载与注册JDBC驱动,2.加载与注册JDBC驱动加载JDBC驱动是调用Class类的静态方法forName(),向其传递要加载的JDBC驱动的类名。DriverManager类是驱动程序管理类,负责管理驱动程序,这个类中所有方法都是静态的,在DriverManager类中提供了registerDriver()方法来注册驱动程序类的实例。public static void registerDriver(Driver driver)throws SQLException通常不需要亲自

5、去调用registerDriver()方法来注册驱动程序类的实例,因为实现Driver接口的驱动程序类都包含了静态代码块,在这个静态代码块中,会调用DriverManager.registerDriver()方法来注册自身的一个实例。,JDBC API-建立到数据库的连接,3.建立到数据库的连接在DriverManger类中提供了3个重载的getConnection()方法Public static Connection getConnection(String url)throws SQLExceptionPublic static Connection getConnection(Stri

6、ng url,String user,String password)throws SQLException Public static Connection getConnection(String url,Properties info)throws SQLException Mysql的URL:jdbc:mysql:/localhost:3306/databasename,JDBC API-访问数据库,1.StaementStaement createStaement()throws SQLException该方法创建一个Staement对象,用于向数据库发送SQL语句,没有参数的SQL

7、语句通常用Statement对象来执行Staement中定义了下列方法用于执行SQL语句ResultSet exeCuteQuery(String sql)throws SQLException 该方法执行参数sql指定的sql语句,返回一个ResultSet对象,ResultSet用于查看执行结果。int executeUpdate(String sql)throws SQLException 该方法执行参数sql指定的INSERT、UPDATE或者DELETE语句,也可执行SQL DDL语句,如CREATE TABLEboolean execute(String sql)throws SQ

8、LException 该方法执行返回多个结果集的SQL语句int executeBatch()throws SQLException 该方法允许我们向数据库提交一批命令,然后一起执行。大量SQL语句的批量执行可以显著提高性能。如果所有命令都成功执行,返回值是一个更新行数的数组。数组中每一个int元素是按照加入命令的先后顺序来存储的,表示了相应命令的更新行数。可以使用addBatch()方法将SQL命令加入到命令列表中。,JDBC API-访问数据库,2.ResultSetResultSet接口由数据库厂商实现,ResultSet对象维护了一个指向当前数据行的游标,初始的时候,游标在第一行之前,

9、可以通过ResultSet对象的next()方法移动游标到下一行。boolean next()throws SQLExceptionResultSet接口中定义了很多方法来获取当前行中的数据,根据字段类型的不同用不同的方法来获取数据。方法略每种方法,又提供了两种形式的调用,一种是以列的索引作为参数(索引从1开始),一种是以列的名字作为参数。如果不知道要获取的列数据类型,可以一律采用getString()方法来得到String类型的数据,JDBC API-访问数据库,3.PreparedStatement在程序中传递的SQL语句在执行前必须被预编译,包括语句分析、代码优化等,然后才能被数据库引擎

10、执行。如果重复执行只有参数不同的SQL语句,是比较低效的。如果要用不同的参数来多次执行同一个SQL语句,可以使用PreparedStatement的对象。PreparedStatement pstmt=conn.preparedStatement(“insert employee values(?,?,?)”);pstmt.setInt(1,1);pstmt.setString(2,”zhangsan”);pstmt.setDate(3,java.sql.Date.valueof(“2011-2-25”);pstmt.executeUpdate();,可滚动结果集,之前通过Statement对

11、象所创建的结果集只能向前滚动,即只能调用next()方法向前得到数据行,无法向后滚动。如果要获得一个可滚动的结果集,需要在创建Statement或PreparedStatement对象时,调用Connection对象的另一个重载的createStatement()方法:Statement stmt=conn.createStatement(type,concurrency);PreparedStatement pstmt=conn.preparedStatement(type,concurrency);其中type可取:ResultSet.TYPE_FORWARD_ONLY:结果集不能滚动Re

12、sultSet.TYPE_SCROLL_INSENSITIVE:结果集可以滚动,但是对数据库变化不敏感,数据库查询生成结果集后发生了变化,结果集不发生变化。ResultSet.TYPE_SCROLL_SENSITIVE:结果集可以滚动,但是对数据库变化敏感。例如通过查询返回了10行数据,如果另一个程序删除了其中的2行,那么这个结果集中就只有8行了,Concurrency可取:ResultSet.CONCUR_READ_ONLY 结果集不能用于更新数据库ResultSet.CONCUR_UPDATABLE 结果集可以用于更新数据库,ResultSet接口为可滚动结果集提供的方法,boolean

13、isBeforeFirst()throws SQLExceptionboolean isAfterLast()throws SQLExceptionboolean isFirst()throws SQLExceptionboolean isLast()throws SQLException以上4种方法分别用于判断游标是否位于第一行之前、最后一行之后、第一行和最后一行,void beforeFirst()throws SQLException该方法移动游标到结果集第一行之前void afterLast()throws SQLException该方法移动游标到结果集最后一行之后boolean first()throws SQLException该方法移动游标到结果集的第一行boolean last()throws SQLException该方法移动游标到结果集的最后一行boolean absolute(int row)throws SQLException该方法移动游标到结果集中指定的行,row可以取正,也可以取负,1表示移动游标到第一行,2表示移动游标到第二行,-1表示移动游标到最后一行,-2表示移动游标到倒数第二行,接下来数据库访问还需要知道的内容,事务处理,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号