您好,欢迎访问三七文档
JDBC概述JDBC编程步骤JDBC编程实现CRUD(增删改查)IJDBC简介JDBC开发包JDBCDriver(JDBC驱动)Sun公司为统一对数据库的操作,定义了一套Java操作数据库的规范,称为JDBC。JDBC:全称JavaDataBaseConnectivity▪Java数据库连接JDBC是Java环境下访问数据库的一组API(应用编程接口),提供一些用Java语言编写好的类和接口,通过它可以方便地向数据库发送SQL命令,操作数据库JDBC开发包(JDK提供,供开发人员使用):通过Java语言访问数据库的接口▪java.sql:该开发包提供访问数据库的基本接口和类▪javax.sql:提供数据库访问的一些增强接口和类,比如针对数据源的访问java.sql包的主要类和接口▪Driver▪DriverManager▪Connection▪Statement▪PreparedStatement▪ResultSet开发JDBC程序,程序开始需要引入java.sql包▪importjava.sql.*JDBCDriver:开发JDBC应用除需要以上JDBC开发包外,还需要具体数据库的JDBC驱动(JDBCDriver)JDBC开发包提供访问数据库的统一接口,具体实现有不同数据库厂商的JDBC驱动类来完成▪各自数据库的访问细节和底层实现由各自JDBC驱动完成▪不同数据库厂商开发各自的JDBC驱动MySQLSQLServerMySQL驱动SQLServer驱动应用程序JDBC开发包OracleOracle驱动具体实现细节交由不同的JDBC数据库驱动类来完成开发人员仅面向JDBC开发包编程,采用统一的访问方法JDBCDriver大致分为四种类型▪JDBCType1:JDBC-ODBC桥驱动JDBC调用ODBC,再由ODBC调用本地数据库接口,效率不高▪JDBCType2:本地API驱动▪JDBCType3:网络协议驱动▪JDBCType4:本地协议驱动纯JAVA实现,称为PureJavaJDBCDriver,直接把JDBC调用转换为符合相关数据库规范的请求,执行效率高实际开发:通常采用Type4类型教材bookshop:采用的是Type1类型教材bookshop部署和访问教材bookshop应用的数据库连接方式,每台客户机都需要配置ODBC数据源,实际开发不采用这种连接方式常用JDBC驱动▪SQLServerJDBC驱动下载(微软官网,Type4类型驱动)=21599适用SQLServer2000/2005/2008▪MySQLJDBC驱动▪OracleJDBC驱动注册一个JDBC驱动类建立与具体数据库的连接创建一个Statement执行SQL语句处理结果集关闭JDBC对象(结果集对象,语句对象,连接对象),释放资源STEP1:注册一个JDBC驱动举例:注册PPT示例提供的SQLServerJDBC驱动方法作用:▪实例化一个驱动类对象▪在java.sql.DriverManger中进行注册Class.forName(含包名的Driver类名);Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);1等价于:Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);Driverdrv=newcom.microsoft.sqlserver.jdbc.SQLServerDriver();DriverManger.registerDriver(drv);STEP2:建立与具体数据库的连接方法作用:▪建立到URL指定数据库的连接▪DriverManger从已注册的JDBC驱动集中选择符合的驱动,调用所选驱动类的连接方法,去与数据库建立连接DriverManger.getConnection(Stringurl,Stringuser,Stringpassword);2方法参数说明▪url:连接数据库的URL▪user:连接数据库的用户名▪password:连接数据库的密码DriverManger.getConnection(Stringurl,Stringuser,Stringpassword);数据库url:▪用于标识数据库的位置,通过数据库URL地址通知JDBC程序连接具体哪个数据库▪连接不同数据库,或者连接相同数据库但采用不同类型的驱动,有不同的数据库URL采用PPT示例所提供JDBC驱动连接SQLServer的url写法“jdbc:sqlserver://localhost:1433;DatabaseName=数据库名访问协议访问本机1433端口上的SQLServer访问的数据库名子协议方法说明▪getConnection是DriverManager的static方法▪方法返回一个Connection对象▪Connection对象代表一个数据库的连接,之后程序与数据库的交互通过Connection对象完成Connectionconn=DriverManger.getConnection(Stringurl,Stringuser,Stringpassword);STEP3:创建一个Statement对象方法说明:▪通过之前创建的Connection连接对象,创建一个Statement对象▪方法返回Statement对象Connection对象.createStatement();Statementstm=conn.createStatement();3STEP4:通过Statement对象执行SQL语句方法说明:▪executeQuery:执行查询SQL▪executeUpdate:执行更新SQL(增加、修改、删除)Statement对象.excuteQuery(sql语句);Statement对象.excuteUpdate(sql语句);stm.excuteQuery(“查询SQL语句”);stm.excuteUpdate(“更新SQL语句”);4STEP5:处理结果集▪如果执行Statement对象的executeQuery(SQL语句)方法,会返回一个ResultSet类型的结果集对象ResultSetrs=stm.excuteQuery(查询sql语句);5ResultSet代表查询SQL语句执行的结果,采用类似表格的形式封装了查询结果ResultSet对象维护一个指向表格数据行的游标,初始时,游标在第一行之前,调用一次ResultSet对象的next()方法,使游标下移一行001JavaWeb开发35002JavaScript权威指南30003深入浅出HTML40查询结果被封装在ResultSet对象中ResultSet提供了按索引和按列名获取列数据的方法▪获取指定类型的数据getString(intindex)按字段在行中的索引位置返回数据,返回字符串getString(StringcolumnName)按字段名称返回数据,返回字符串getInt(intindex)按字段在行中的索引位置返回数据,返回整型getInt(StringcolumnName)按字段名称返回数据,返回整型SQL类型Jdbc对应方法返回类型BITgetBoolean()BooleanSMALLINTgetShort()ShortIntgetInt()IntBIGINTgetLong()LongCHAR,VARCHARgetString()StringDATEgetDate()java.sql.DateTIMEgetTime()java.sql.TimeTIMESTAMPgetTimestamp()java.sql.TimestampSTEP6:关闭JDBC对象,释放资源▪JDBC程序运行完后,切记要关闭程序在运行过程中创建的那些与数据库进行交互的对象(通常是ResultSet,Statement和Connection对象),释放资源▪特别是Connection对象,如果不能及时、正确地关闭,容易导致程序运行缓慢、系统宕机Statement对象.close();ResultSet对象.close();Connection对象.close();6STEP1步骤(注册驱动)可省略不写STEP5步骤(处理结果集):▪是否需要该步骤,根据实际情况▪如果执行查询SQL语句,通常要对返回结果集进行处理▪如果仅是执行更新SQL语句(如添加、修改和删除),则不需要该步骤Class.forName(含包名的Driver类名);按照以上步骤编写JDBC编程JDBC编程的重点:JDBCStatement对象用于向数据库发送SQL语句,要完成对数据库的增删改查操作,只需通过该对象向数据库发送增删改查语句即可▪Statement对象的executeQuery方法用于向数据库发送查询语句,executeQuery方法返回代表查询结果的ResultSet对象▪Statement对象的executeUpdate方法,用于向数据库发送增、删、改的sql语句,executeUpdate执行完后,将会返回一个整数(即增删改语句导致了数据库几行数据发生了变化)搭建实验环境——数据库创建▪在SQLServer2000或2005中新建bookstore数据库,并创建book表——字段bookid(主键,VARCHAR),bookname(VARCHAR),price(FLOAT)▪或:示例提供了所用数据库文件,在database文件夹下,可以通过SQLServer企业管理器附加其中数据文件即可搭建实验环境——导入JDBC驱动JAR包▪JDBC编程学习采用普通Java工程编写▪新建一个普通Java工程,并导入SQLServerJDBC驱动sqljdbc4.jar▪开发JDBC应用,项目应导入具体数据库JDBC驱动JAR包项目右键——BuildPath——ConfigureBuildPath——AddExternalJARsPPT提供JDBC编程示例:▪dbtest应用/src/db包下(含异常处理)▪dbtest应用/src/默认包下(不含异常处理)注意:在本机导入PPT示例工程后,需要按照上页方法重新导入JDBC驱动示例程序开头importjava.sql.*编写普通Java工程程序,从bookstore数据库book表中读取数据,并打印在命令行窗口中Connectionconn=null;Statementstm=null;ResultSetrs=null;Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);Stringurl=jdbc:sqlserver://localhost:1433;DatabaseName=bookstore;conn=DriverManager.getConnection(url,“sa,“xxxx);stm=conn.createStatement();rs=stm.executeQuery(select*frombook);while(rs.next()){System.out.print(rs.getString(“bookid));System.out.print(rs.getString(“bookname));System.out.println(rs.getString(“price));}rs.close();stm.close();conn.close();ResultSet代表查询SQL语句执行的结果,采用类似表格的形式封装了查询结果▪ResultSet对象的next()方法指向下一行001Ja
本文标题:JDBC编程I
链接地址:https://www.777doc.com/doc-3780155 .html