已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章 JDBC,讲课教师:郭庆 EMAIL:,介绍,应用程序与数据库 应用程序与数据库的交互 4种数据库操作 常见数据库 Oracle、DB2、SQLServer2000/2005/2008、MySql,2.1 常用SQL语句,创建数据库语句如下: create database databaseName 删除数据库语句如下: drop database databaseName,2.1 常用SQL语句 续1,创建表的语句格式如下:,create table tableName (column1 datatypecolumn_constraint, column1 datatypecolumn_constraint, Constrain primary key pk_table_name(column_n),2.1 常用SQL语句 续2,在SQLServer2000中创建用户表user 注意:user是关键字,不能直接使用,需要在两边加上,create table user(id int, name varchar(50), password varchar(50), email varchar(50), age int, birthday datetime);,2.1 常用SQL语句 续3,删除表的语句如下: drop table tableName;,2.1 常用SQL语句 续4,插入一条记录的语句格式如下: insert into tableName(column1,column2,) values(value1,value2,); 例如往user表插入一条记录: insert into user(name,password,email,age,birthday) values(zhangsan,123,,23,1981-12-06,66.0);,2.1 常用SQL语句 续5,删除符合条件的一条或多条记录: delete from tableName where .; 例如删除user表中id是1的记录: delete from user where id=1; 如果去掉where子句,将删除user表中所有的记录。,2.1 常用SQL语句 续6,更新一条或多条记录: update tableName set columnName=newColumnValue; 例如,以下语句更新user表的id=1的password字段,字段原来的值是123,更新后为456。 update user set password=456 where id=1;,以上的SQL语句是常见的,需要掌握,以便在JDBC编程时能熟练使用。,补充:使用SQLServer2000企业管理器进行数据库操作,打开SQLServer2000企业管理器 创建数据库 创建表 插入记录,注意执行按钮“!” 删除记录 更新记录 刷新数据库,2.2 JDBC简介,2.2.1 JDBC概念: 全称是Java Database Connectivity,是一个应用程序编成接口(API)。在Java编写的程序中,程序员通过使用JDBC API,可以用标准SQL语句访问几乎任何一种数据库; 数据库厂商通过实现JDBC相关的API生产的JDBC驱动程序完成某个具体数据库的实际操作。,从JDBC概念中,我们知道JDBC接口分为面向程序开发人员的JDBC API和面向底层JDBC驱动的API。JDBC体系结构如下3-1图所示。,JDBC API 2层面的接口和类: JDBC规范与驱动程序,Sun公司的JDBC规范定义了如何操作数据库的一组标准,数据库厂商要实现这些标准生产出驱动程序来完成真正的数据库操作。 这意味着开发者在Java应用程序中使用JDBC的API来访问数据库时要在classpath中加载某个具体数据库的JDBC驱动,这样不管是访问什么数据库,只要有对应的数据库JDBC驱动,我们在Java程序中使用统一的类和接口就能完成对数据库的操作了。,3.1.2 JDBC API简介,JDBC API.0版本包含2个包: java.sql.*;该包中的接口和类主要提供基本的数据库访问服务,如创建连接、执行SQL语句、运行批处理查询。同时也有一些高级处理如批处理更新、可滚动结果集等。 javax.sql.*;该包主要为数据库的高级操作提供接口和类,如连接管理、容器管理的连接池、分布式事务和行集。,JDBC常用的类和接口,JDBC的常用接口和类,java.sql.DriverManager用来管理驱动程序,并且为创建新的数据库连接。 java.sql.Connection完成对某一指定数据库的连接。 java.sql.Statement在一个给定的连接中作为SQL语句执行声明的容器,它包含了两个重要的子类型。 java.sql.PreparedSatement用于执行预编译的sql声明 java.sql.CallableStatement用于执行数据库中存储过程的调用 java.sql.ResultSet:表示select语句查询得到的记录集合。,JDBC的常用接口和类-续1,java.sql.DriverManager类的常用方法,JDBC的常用接口和类-续2,JDBC的常用接口和类-续3,JDBC的常用接口和类-续4,JDBC的常用接口和类-续5,JDBC的常用接口和类-续6,JDBC的常用接口和类-续7,ResultSet对象的例子,select id,name from user where age=20;,testjdbc数据库中的student表,int类型,Varchar类型,int类型,ResultSet对象的例子-续1,ResultSet对象中的指针,JDBC数据类型与数据库字段对应表(mysql),2.2.2 JDBC驱动程序类型,JDBC-ODBC桥 部分 Java 驱动程序 中间数据访问服务器 纯Java驱动程序,第一种驱动类型:JDBC-ODBC桥,将JDBC操作转换为ODBC操作,因此在访问数据库的每个客户端都必须安装ODBC驱动程序 缺点: 增加了ODBC层后导致效率低。 JDBC-ODBC桥不支持分布式(除非ODBC驱动本身支持分布式),第二种驱动类型:部分 Java 驱动程序,部分Java 驱动程序直接将 JDBC API 翻译成具体数据库的API。 效率比第一种驱动高。,第三种驱动类型:中间数据访问服务器,纯 Java 驱动程序,它将 JDBC API 转换成独立于数据库的协议。 JDBC 驱动程序并没有直接和数据库进行通讯;它和一个中间件服务器通讯,然后这个中间件服务器和数据库进行通讯。,第四种驱动类型:纯Java驱动程序,它直接与数据库进行通讯。是最好的驱动程序,因为它通常提供了最佳的性能,并允许开发者利用特定数据库的功能。 本质是使用Socket(套接字)编程。,数据驱动程序图示,使用JDBC的第一步是安装驱动程序。大多数数据库都有JDBC驱动程序,常用的JDBC驱动程序如图所示。,2.3 JDBC使用准备工作,1、启动MySQL5;使用MySQL5 的客户端创建testDB数据库和user表。 2、创建Eclipse的Java项目jdbc 3、配置项目构建路径添加MySQL5 的JDBC驱动程序,2.4 JDBC使用步骤,加载驱动程序; 创建数据库连接对象 创建Statement对象或PreparedStatement对象来执行SQL语句 遍历结果集对象,输出记录 依次关闭资源对象。 注意关闭顺序与建立顺序相反。,加载驱动程序,加载MySql数据库驱动: Class.forName(“com.mysql.jdbc.Driver”); 加载sql server2005数据库驱动程序,该驱动适合SQL Server 2005和SQL Server 2000数据库,建议使用该驱动: Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);/使用SQL Server2005驱动 加载sql server2000数据库驱动程序: Class.forName(“com.microsft.jdbc.sqlserver.SQLServerDriver”); 加载oracle数据库驱动程序: Class.forName(“oracle.jdbc.driver.OracleDriver”);,Connection con=DriverManger.getConnection(url,user,password); 其中url是数据库的网络位置,user和password是访问数据库的用户名和密码。 如果使用的数据库在本机上,那么访问的数据库的url是: Connection conn = DriverManger.getConnection (“jdbc:mysql:/localhost:3306/testDB “,“root“,“root“); user和password分别是root和root 。,创建连接对象,JDBC连接由数据库 URL标识;其一般形式如下: jdbc:/ 协议是jdbc:表示我们用Java程序连接数据库的协议是jdbc;目前只能是jdbc协议。 子协议:主要用于识别数据库驱动程序,即不同数据库驱动程序的子协议不同。 数据源名(datasourcename) :包括数据库的IP地址、端口号、数据库名称。,创建Statement对象或PreparedStatement对象来执行SQL语句 遍历结果集对象,输出记录 依次关闭资源对象。注意关闭顺序与建立顺序相反,2.5 JDBC实现CRUD操作,下面我们进行数据库常见的四种操作,即实现插入记录、查询、更新和删除记录。 我们创建类CRUDTest,该类有add、get、update、delete方法,分别实现插入记录、查询、更新和删除记录的操作。 使用MyEclipse进行,介绍,前面,我们介绍了JDBC的基础知识,本章继续介绍JDBC的常用高级知识,包括实际程序开发中的专门获得数据库连接DBConnection类、使用PreparedStatement对象、插入表示时间日期的Date对象、JDBC事务等。,3.1 DBConnection类,在上一章的实现数据库的插入、更新、查询、删除记录的CRUD类程序代码中,有4个方法来实现CRUD操作; 但是我们发现在每个代码中都存在设置访问数据库的参数、加载驱动程序、获得连接对象的重复代码。 在实际的程序开发中,我们常常创建一个获得实现数据库连接的类DBConnection,专门获得数据库连接。这样避免了代码重复,实现了代码重用,实现了面向对象中的类的设计的高内聚。,3.2 PreparedStatement对象,创建表的语句格式如下:,上一章我们介绍了Statement对象来执行SQL语句。 在JDBC中PreparedStatement对象也可以执行SQL语句,使用PreparedStatement对象可以避免SQL注入问题,并且如果多次访问数据库的SQL语句只是参数不同时,该对象比Statement对象的效率高。 下面我们以上一章的插入记录为例,讲解PreparedStatement对象的使用。,3.3 JDBC事务,JDBC事务含义:是指对数据库操作中,由一条或多条对数据库更新的SQL语句所组成的一个不可分割的工作单元;具有原子性,要么全部成功执行完毕;要么执行失败-撤销事务。,2.1 常用SQL语句 续3,比如银行转帐,现在需要把张三帐号上的1000元转到李四账户上, 张三把自己账号上的1000元转到李四账号上。 update account set money=money-1000 where name=张三;update account set money=money+1000 where name=李四;,2.1 常用SQL语句 续4,这两条sql语句组成一项事务:即要么2条sql语句都成功执行,才能提交该事务;要么虽然执行了一条,整个事务必须全部撤销。否则,假设第一条执行成功,第二条执行失败:这时张三账号上少了1000元,但是李四账号上却没有增加1000元。导致银行转帐混乱。,JDB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年拆迁工程协调合同
- 金融市场不确定性指数构建研究
- 肝胆外科护理三基三严理论试题及答案
- 道路运输生产安全事故专项应急预案
- 2025年特种设备操作工职业技能等级鉴定考试试题及答案解析
- 2025年人工智能工程师编程能力考核试卷及答案
- 2025年应急预案培训考试题附答案
- 劳动争议仲裁效率提升的制度路径
- 2025年临床执业医师资格考试题库及答案
- 检验科生物安全培训试题(答案)
- 静脉留置针堵管预防策略与护理质量提升实践
- 早产儿生后黄金1小时管理
- 2025年大队委员笔试题库及答案
- 2025年网球理论基础知识考试题及答案
- 2025江西吉安市遂川县城控人力资源管理有限公司招聘34人笔试考试参考试题及答案解析
- 初中期中质量分析会校长讲话:正视短板精准发力共筑初中教学质量新高度
- 2025-2026学年度上学期一中高三11月月考物理试卷
- 苏炳添的精神
- DB11-T 1860-2021 电子信息产品碳足迹核算指南
- 苏教版五年级上学期科学知识点
- 配电网工程施工规划与实施方案
评论
0/150
提交评论