JAVAWEB数据库访

上传人:dax****eng 文档编号:244901525 上传时间:2024-10-06 格式:PPT 页数:17 大小:204KB
返回 下载 相关 举报
JAVAWEB数据库访_第1页
第1页 / 共17页
JAVAWEB数据库访_第2页
第2页 / 共17页
JAVAWEB数据库访_第3页
第3页 / 共17页
点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text stylesgood1,Second levelgood2,Third levelgood3,Fourth levelgood4,Fifth levelgood5,MLDN,软件教学研发部,Click to edit Master title style,Click to edit Master text stylesgood1,Second levelgood2,Third levelgood3,Fourth levelgood4,Fifth levelgood5,数据库访问,夏汛,泸职院信息工程系,学习目标,能够使用,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,驱动拷贝进去,然后在,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.Driver,接口,是所有,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(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,通常不需要亲自去调用,registerDriver(),方法来注册驱动程序类的实例,因为实现,Driver,接口的驱动程序类都包含了静态代码块,在这个静态代码块中,会调用,DriverManager.registerDriver(),方法来注册自身的一个实例。,JDBC API-,建立到数据库的连接,3.,建立到数据库的连接,在,DriverManger,类中提供了,3,个重载的,getConnection(),方法,Public static Connection getConnection(String url)throws SQLException,Public static Connection getConnection(String 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.Staement,Staement createStaement()throws SQLException,该方法创建一个,Staement,对象,用于向数据库发送,SQL,语句,没有参数的,SQL,语句通常用,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 TABLE,boolean execute(String sql)throws SQLException,该方法执行返回多个结果集的,SQL,语句,int executeBatch()throws SQLException,该方法允许我们向数据库提交一批命令,然后一起执行。大量,SQL,语句的批量执行可以显著提高,性能,。如果所有命令都成功执行,返回值是一个更新行数的数组。数组中每一个,int,元素是按照加入命令的先后顺序来存储的,表示了相应命令的更新行数。可以使用,addBatch(),方法将,SQL,命令加入到命令列表中。,JDBC API-,访问数据库,2.ResultSet,ResultSet,接口由数据库厂商实现,,ResultSet,对象维护了一个指向当前数据行的游标,初始的时候,游标在第一行之前,可以通过,ResultSet,对象的,next(),方法移动游标到下一行。,boolean next()throws SQLException,ResultSet,接口中定义了很多方法来获取当前行中的数据,根据字段类型的不同用不同的方法来获取数据。方法略,每种方法,又提供了两种形式的调用,一种是以列的索引作为参数(索引从,1,开始),一种是以列的名字作为参数。,如果不知道要获取的列数据类型,可以一律采用,getString(),方法来得到,String,类型的数据,JDBC API-,访问数据库,3.PreparedStatement,在程序中传递的,SQL,语句在执行前必须被预编译,包括语句分析、代码优化等,然后才能被数据库引擎执行。如果重复执行只有参数不同的,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,对象所创建的结果集只能向前滚动,即只能调用,next(),方法向前得到数据行,无法向后滚动。,如果要获得一个可滚动的结果集,需要在创建,Statement,或,PreparedStatement,对象时,调用,Connection,对象的另一个重载的,createStatement(),方法:,Statement stmt=conn.createStatement(type,concurrency);PreparedStatement pstmt=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接口为可滚动结果集提供的方法,boolean isBeforeFirst()throws SQLException,boolean isAfterLast()throws SQLException,boolean isFirst()throws SQLException,boolean 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,表示移动游标到倒数第二行,接下来数据库访问还需要知道的内容,事务处理,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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