版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.JDBC简介与数据库访问JDBC是Java数据库连接API。
JavaDataBaseConnectivity
JDBC是Java应用程序与数据库的沟通桥梁,通过JDBC所提供的API,Java程序能很容易连接数据库。简单的说,JDBC能完成三件事:与一个数据库建立连接,有两种方法:通过建立一个JDBC-ODBC桥接器,来访问数据库JDBC直接加载数据库驱动程序,来访问数据库发送SQL语句处理数据库返回的结果12.JDBCAPIJDBC与具体的某种数据库连接时需要装载与之对应的驱动程序,不过此种驱动程序不需要我们自己去装载,而是直接通过JDBCAPI类库里的类来自动装载驱动程序。这些API类库一般都集中在java.sql包中。java.sql包中还包含了用于实现与数据库连接的其它功能的类,包括与数据库建立连接、传送查询、接受查询结果等。2JDBC要做的三件事:与数据库建立连接发送SQL语句处理返回的结果处理返回的结果发送SQL语句与数据库建立连接纵览JDBCAPIClass类DriverManager类Connection类Statement类由Connection类的createStatement()方法产生。PreparedStatement类由Connection类的PreparedStatement()方法产生。CallableStatement类由Connection类的prepareCall()方法产生。ResultSet类由Statement类或PreparedStatement类的executeQuery()方法产生。3JDBC要做的三件事:1.建立连接2.发送SQL语句3.返回的结果DriverManager类DriverManager类用于装载驱动程序。它所有的成员都是静态成员,所以在程序中无须进行实例化,直接通过类名就可以访问它。DriverManager的主要用途是通过getConnection方法来取得Connection对象引用。其格式为:
ConnectiongetConnection(Stringurl,Stringuser,Stringpassword);
其中各参数含义如下:url:指明数据库定向位置,其具体格式由数据库驱动程序约定,不同的数据库格式不同。user:登录数据库的用户password:登录数据库的密码4JDBC要做的三件事:1.建立连接2.发送SQL语句3.返回的结果class.forName(className)方法使用java.lang.Class类的forName()方法可指定所要用的驱动程序。forName的参数格式如下:class.forName(“[公司名].[数据库名].[驱动程序名]”);如:
class.forName(“oracle.jdbc.driver.OracleDriver”); class.forName(“com.mysql.jdbc.Driver”);5常见数据库的连接方法class.forName(driverName);Connectioncon=DriverManager.getConnection(url,user,pw);driverName-驱动程序名url-JDBC的URL
ORACLE数据库
driverName=“oracle.jdbc.driver.OracleDriver”;
url=“jdbc:oracle:thin:@localhost:1521:orcl”;
SQLSERVER数据库
driverName=“com.microsoft.jdbc.sqlserver.SQLServerDriver”;
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
DB2数据库
driverName="com.ibm.db2.jdbc.app.DB2Driver";
url="jdbc:db2://localhost:5000/sample";
通过ODBC桥接器
driverName=“sun.jdbc.odbc.JdbcOdbcDriver";
url="jdbc:odbc:Customers";6如装载一个JDBC-ODBC桥驱动程序,并连接一个student数据源,数据库登录用户为abc,密码为111,其实现如下:class.forName(“sun.jdbc.odbc.jdbcodbcDriver”);Connectioncon=DriverManager.getConnection(“jdbc:odbc:student”,”abc”,”111”);getConnection()方法返回一个连接类对象,假如连接成功,则此对象是指向数据库的一个连接;假如连接失败,此对象为null。7JDBC要做的三件事:1.建立连接2.发送SQL语句3.返回的结果Connection类Connection类是通过DriverManager.getConnection()方法取得的,表示驱动程序提供的与数据库连接的对象。它同时还可用于管理此连接,如向数据库发送查询和接收数据库的查询结果都是在它基础上的,它还可以在完成同数据库的连接的所有任务后关闭此连接。8Connection类的主要方法StatementcreateStatement():新建一个Statement对象PreparedStatementprepareStatement(String
sql):新建一个PreparedStatement对象setAutoCommit(boolean
sutoCommit):设置此连接是否为自动提交方式voidclose():关闭同数据库的连接并释放所占用的JDBC资源boolean
isClosed():判断是否还与数据库连接着DatabaseMetaData
getMetaData():返回DatabaseMetaData对象,此对象包括表、sql格式和后备进程描述信息。voidsetReadOnly(boolean
readOnly):设置连接为只读……9JDBC要做的三件事:1.建立连接2.发送SQL语句3.返回的结果Statement类Statement类用来管理与在数据库中查询相关的一些事情,它的对象由Connection类的createStatement()方法产生,如:Statementstatement=con.createStatement();其主要方法有:ResultSetexecuteQuery(Stringsql):返回一个静态的sql查询结果intexecuteUpdate(Stringsql):执行一个insert、update或delete的SQL命令,返回被影响行数voidclose():关闭同数据库的连接和占用的JDBC资源intgetMaxRows():返回查询结果中所允许包含的最多行数voidsetMaxRows():设置查询结果中所允许包含的最多行数voidcancel():取消一个正在执行的查询……10JDBC要做的三件事:1.建立连接2.发送SQL语句3.返回的结果PreparedStatementPreparedStatement类的作用和Statement类相似。当需要进行一批类似的查询时,可以用PreparedStatement类来简化查询。它的对象由Connection类的PreparedStatement()方法产生,如: PreparedStatementpreparedStatement=con.preparedStatement(“select*fromstudentwhereage=?andscore>=?”); preparedStatement.setString(1,21); preparedStatement.setString(2,60); ResultSetresult1=preparedStatement.executeQuery(); preparedStatement.setString(1,22); preparedStatement.setString(2,90); ResultSetresult2=preparedStatement.executeQuery();11CallableStatementCallableStatement用于执行存储过程,继承PreparedStatment接口。它的对象由Connection类的prepareCall()方法产生。JDBC要做的三件事:1.建立连接2.发送SQL语句3.返回的结果12使用CallableStatement对象
执行存储过程CallableStatementstmt=con.prepareCall(“{callMyProcedure(?,?,?)}”);stmt.setInt(1,77);stmt.setString(2,”Ruby”);stmt.setInt(3,45);stmt.executeUpdate();/*存储过程MyProcedure的SQL脚本*/CREATEPROCEDUREMyProcedure(snINNUMBER,nameINCHAR,ageINCHAR)AS BEGIN INSERTINTODEPTVALUES(sn,name,age); END;/13ResultSet类ResultSet类用来装载查询结果,并可以通过它的不同方法提取查询结果;Statement、PreparedStatement对象用executeQuery()方法都将产生ResultSet对象。JDBC要做的三件事:1.建立连接2.发送SQL语句3.返回的结果14ResultSet类的常用方法StringgetString(intcolumnIndex);StringgetString(StringcolumnName);intgetInt(intcolumnIndex);intgetInt(StringcolumnName);java.io.InputStreamgetBinaryStream(StringcolumnName);Booleannext();Booleanprevious();intgetRow();voidclose();ResultSetMetaDatagetMetaData();Booleanabsolute(introw);JDBC要做的三件事:1.建立连接2.发送SQL语句3.返回的结果15JDBC要做的三件事:与数据库建立连接发送SQL语句处理返回的结果处理返回的结果发送SQL语句与数据库建立连接纵览JDBCAPI两个步骤建立连接:1、使用java.lang.Class类的forName()方法指定所要用的驱动程序。2、使用DriverManager的getConnection()方法来取得Connection对象引用。Statement类用以管理与在数据库中查询相关的一些事情;由Connection类的createStatement()方法产生。PreparedStatement类用以进行一批较类似的查询;由Connection类的PreparedStatement()方法产生。CallableStatement类用以执行存储过程;由Connection类的prepareCall()方法产生。ResultSet类用以装载查询结果;由Statement类或PreparedStatement类的executeQuery()方法都可产生ResultSet对象。16JDBC要做的三件事:与数据库建立连接发送SQL语句处理返回的结果处理返回的结果发送SQL语句与数据库建立连接纵览JDBCAPI两个步骤建立连接:1、使用java.lang.Class类的forName()方法指定所要用的驱动程序。2、使用DriverManager的getConnection()方法来取得Connection对象引用。Statement类用以管理与在数据库中查询相关的一些事情;由Connection类的createStatement()方法产
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石油套管购销合同(2篇)
- 铝合金加工厂合同
- 《单层厂房基本构造》课件
- 中班秋收冬藏主题课程设计
- 2024企业管理资料范本船员聘用合同
- SED传输技术课程设计
- python打砖块小游戏课程设计
- 《课件岗位分析培训》课件
- 1立方 罐课程设计
- 吻合器术后护理方法
- 特殊级抗菌药物会诊单及申请表
- 新教材人教版高中生物选择性必修第二册 2.1 群落的结构(第2课时) 教学课件
- 幼儿园中班数学活动《图形分类》
- Q-RJ 557-2017 航天型号产品禁(限)用工艺目录(公开)
- 食品安全法培训课件
- 曹龙骐版金融学课后习题答案全解
- 第7课《风的成因》教学设计(教科版小学三年级上册科学第二单元)
- AWS D8.10M-2021 汽车焊接质量规范.钢的激光束焊接
- 建设工程项目临建标准化图集
- 爱护公物_从我做起ppt
- 幼儿园绘本故事:《感谢的味道》 PPT课件
评论
0/150
提交评论