您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > java课件 第14章 Jdbc技术(共十套)
第14章JDBC技术主要内容14.1JDBC概述14.2通过JDBC建立连接14.3了解数据库的信息14.4查询数据库14.5检索结果集14.6更新数据库14.7JDBC案例14.1JDBC概述将Java语言和Sql结合的一个很好的编程接口。支持基本SQL功能的一个通用低层的应用程序编程接口,在不同的数据库功能模块上提供了一个统一的用户界面。是为Java语言定义的一个SQL调用级(CLI)界面。JDBC的结构Jdbc有两种接口,分别是面向开发人员的JDBCAPI和面向低层的JDBCDriverAPI,Java应用程序JDBCAPIJDBCManagerJDBCDrvierAPIJDBC-NetDriverJDBC-ODBCBridgeDriverODBCandDBDriverDriverADriverBPulblishedprotocolProprietaryDatabaseaccessprotocol。。。JDBC的结构JDBCAPI是一系列的接口,他使得应用程序能够进行数据库联接,执行SQL语句,并且得到返回结果。JDBC的结构Java.sql.DriverManager用来装载驱动程序,并且为创建新的数据库联接提供支持。Java.sql.Connection完成对某一指定数据库的联接Java.sql.Statement在一个给定的连接中作为SQL执行声明的容器,包含两个重要的子类。Java.sql.PreparedSatement用于执行预编译的sql声明Java.sql.CallableStatement用于执行数据库中存储过程的调用Java.sql.ResultSet取得SQL执行结果JDBCDriverinterface是面向驱动程序开发商的接口,每一个驱动程序都必须提供对于java.sql.Connection,java.sql.Statement,java.sql.PreparedStatement,java.sql.ResultSet等主要接口的实现方法。Java.sql.DriverManager需要装载驱动程序时,每个驱动程序需要提供一个能实现java.sql.Driver接口的类。例如:sun.jdbc.odbc.JdbcOdbcDrivercom.microsoft.jdbc.sqlserver.SQLServerDriverJDBC驱动程序的类型Jdbc-odbc桥Native-apipartly–javadriver本地api驱动直接把jdbc调用转变为数据库的标准调用再去访问数据库Net-protocolall-javaDriver(Jdbcproxy)是一种完全利用Java编写的JDBC驱动,这种驱动程序将JDBC转换为与DBMS无关的网络协议,然后将这种协议通过网络服务器转换为DBMS协议。Native-protocolall-javadriver是一种完全利用Java编写的JDBC驱动,这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。主要内容14.1JDBC概述14.2通过JDBC建立连接14.3了解数据库的信息14.4查询数据库14.5检索结果集14.6更新数据库14.7JDBC案例14.2通过JDBC建立连接所有Jdbc程序的第一步都是与数据库建立连接,得到一个java.sql.Connection的对象,包括两个步骤:(1)加载驱动程序通过设置Java属性中的sql.driver来制定驱动程序列表。这个属性是一系列的用冒号隔开的Driver类的名称。驱动程序所在的包存在于构建路径。使用Class.forName()显式加载驱动程序。例如Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);加载了sun公司提供的jdbc-odbc桥驱动程序,在数据库连接时,DriverManager将试图使用此驱动程序;Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);加载SqlServer的驱动程序通过JDBC建立连接(2)建立连接指定数据库连接的url,数据源的位置使用DriverManager.getConnection(url)例如:Stringurl=“jdbc:odbc:datasource”;或者“jdbc:microsoft:sqlserver://server_name:1433”Connectionconn=DriverManager.getConnection(url);或者:Connectionconn=DriverManager.getConnection(Stringurl,Stringuser,Stringpassword)Connectioncon=DriverManager.getConnection(jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=学生,sa,123456);主要内容14.1JDBC概述14.2通过JDBC建立连接14.3了解数据库的信息14.4查询数据库14.5检索结果集14.6更新数据库14.7JDBC案例14.3了解数据库中的信息在和数据库建立连接后,就可以获得有关数据源的各种信息:表,列,数据类型,存储过程等。这些信息通过DatabaseMetaData类的对象上实现的。DatabaseMetaDatadbma=conn.getMetaData();DatabaseMetaData主要方法基本信息getURL();getUserName()isReadOnly()getDatabaseProduceName()j;getDriverName();getDriverVersion();其他getTables(),getColumns(),getIndexInfo();实例主要内容14.1JDBC概述14.2通过JDBC建立连接14.3了解数据库的信息14.4查询数据库14.5检索结果集14.6更新数据库14.7JDBC案例14.4查询数据库(Statement)(1)创建StatementStatementstmt=conn.createStatement();(2)执行查询语句Stringsql=“select*fromcustomer”ResultSetrs=stmt.executeQuery(sql);executeQuery()一般用于执行一个sql语句,返回一个结果集,execute()方法返回多个结果集,一个Statement对象在同一时间只能打开一个结果集,对第二个结果集的打开隐含着对第一个结果集的关闭.(3)关闭Statementstmt.close()查询数据库(PreparedStatement)Statement对象在每次执行sql语句时都将语句传给数据库,在多次执行同一个语句时,效率比较低.可以使用PreparedStatement,使用数据库的预编译功能,速度可以提高很多.PreparedStatement对象的sql语句可以接受参数,每次执行时可以传递不同的参数.查询数据库(PreparedStatement)(1)创建Stringsql=“select*fromcustomerwhereage=?”PreparedStatementpstmt=conn.prepareStatement(sql);(2)执行pstmt.setInt(1,30);//指定第1个参数值为30ResultSet=pstmt.executeQuery();(3)关闭Pstmt.close();查询数据库(CallableStatement)用于执行存储过程(1)通过Connection的对象的prepareCall()创建一个CallableStatement对象,格式为:{callprocedureName},procedureName是存储过程名.CallableStatementcstmt=conn.prepareCall(“{callQuery1()}”);(2)执行ResultSetrs=cstmt.executeQuery();(3)关闭cstmt.close();主要内容14.1JDBC概述14.2通过JDBC建立连接14.3了解数据库的信息14.4查询数据库14.5检索结果集14.6更新数据库14.7JDBC案例14.5检索结果集ResultSet对象包括一个由查询语句返回的一个表,这个表中包含所有的查询结果,按照行和列进行处理。ResultSet对象维持一个指向当前行的指针.最初,这个指针指向第一行之前.ResultSet类的next()方法使这个指针移向下一行。next方法的返回值是一个boolean值,若为true,则成功移向下一行。若返回false则没有下一行。getXXX()方法可以从某一列中获得结果.其中XXX是JDBC中的java数据类型.如getInt(参数);需要指定检索的列名或index值(index从1开始)检索结果集Statementstmt=conn.createStatement();Stringsql=“selecta,b,cfrommytable”;ResultSetrs=stmt.executeQuery(sql);While(rs.next()){inti=rs.getInt(2);Strings=rs.getString(“a”);byteb[]=rs.getBytes(3);intcrow=rs.getrow()//获取当前行号}主要内容14.1JDBC概述14.2通过JDBC建立连接14.3了解数据库的信息14.4查询数据库14.5检索结果集14.6更新数据库14.7JDBC案例14.6更新数据库包括修改,更新和删除记录,对应于数据库的insert,update,delete等.对数据库的更新操作也是通过Statement对象完成的.不使用executeQuery()方法,使用executeUpdate()方法.executeUpdate的返回值是它影响的记录的行数.更新数据库Stringsql=“updateCustomersetaddress=‘Peking’wherelastname=‘Li’”inti=Stmt.executeUpdate(sql)Stringsql=“updatetable3setm=?Wherex=?”;pstmt.setString(1,”test”);for(inti=0;i10;i++){pstmt.setInt(2,i);pstmt.executeUpdate();}14.7JDBC案例演示数据库查询案例数据库更新案例
本文标题:java课件 第14章 Jdbc技术(共十套)
链接地址:https://www.777doc.com/doc-3379824 .html