Java Web程序设计教程 教学课件 PPT 作者 范立锋 林果园 第4章 SQL与JDBC

上传人:E**** 文档编号:89401690 上传时间:2019-05-24 格式:PPT 页数:22 大小:194.50KB
返回 下载 相关 举报
Java Web程序设计教程 教学课件 PPT 作者 范立锋 林果园 第4章 SQL与JDBC_第1页
第1页 / 共22页
Java Web程序设计教程 教学课件 PPT 作者 范立锋 林果园 第4章 SQL与JDBC_第2页
第2页 / 共22页
Java Web程序设计教程 教学课件 PPT 作者 范立锋 林果园 第4章 SQL与JDBC_第3页
第3页 / 共22页
Java Web程序设计教程 教学课件 PPT 作者 范立锋 林果园 第4章 SQL与JDBC_第4页
第4页 / 共22页
Java Web程序设计教程 教学课件 PPT 作者 范立锋 林果园 第4章 SQL与JDBC_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《Java Web程序设计教程 教学课件 PPT 作者 范立锋 林果园 第4章 SQL与JDBC》由会员分享,可在线阅读,更多相关《Java Web程序设计教程 教学课件 PPT 作者 范立锋 林果园 第4章 SQL与JDBC(22页珍藏版)》请在金锄头文库上搜索。

1、第4章 SQL与JDBC,4.1 SQL简介 4.2 SQL数据类型 4.3 JDBC简介 4.4 JDBC驱动类型 4.5 JDBC相关操作,4.1 SQL简介(1),SQL(Structured Query Language),意思是结构化查询语言,用于操作数据库中的数据。 特点: 非过程化编程语言,可以对关系型数据库进行数据维护及查询。 支持使用集合作为输入、查询等操作的参数,从而实现复杂的嵌套查询 。 无论通过何种查询方式,都可以得到成功查询的结果集合 。 语法简单,功能丰富,容易学习。,4.1 SQL简介(2),组成: 数据库模式定义语言(DDL):CREATE、DROP、ALTER

2、等。 数据操纵语言(DML):INSERT、UPDATE、DELETE、SELECT等。 数据控制语言:GRANT、REVOKE、COMMIT、ROLLBACK等。,返回,4.2 SQL数据类型,SQL中主要的数据类型有5种,分别为: 字符型 文本型 数值型 逻辑型 日期型,返回,4.2.1 SQL数据类型字符型,当需要向数据库中存储字符数据时,例如用户名称和密码,就需要使用字符型的数据类型。在定义表中字段时需要指明该字段是字符型的而且必须指定其长度。 SQL中常用的字符型 有两种: char,最大字符长度为255,字符长度不可变 。 varchar,最大字符长度为255,字符长度可变 。,返

3、回,4.2.2 SQL数据类型文本型,当设计数据字段用来存储较大数据时,可以使用文本型数据类型。 当使用文本型字段类型时,可以指定固定的长度,也可不指定长度。 注意:无论是否指定长度,一旦有数据存储到该字段,即使是一个空值,也会给它分配2KB的存储空间。,返回,4.2.3 SQL数据类型数值型,数值型的字段可以有多种 ,SQL提供的数值型包括以下几种: INT,-2 147 483 6472 147 483 647的整数 。 SMALLINT,-3276832768的整数。 TINYINT,0255的整数,不能用来存储负数。 NUMERIC,-10381038范围内的数,可以存储小数。 SMA

4、LLMONEY,-214 748.3648214 748.3647的数字。 MONEY,-922 337 203 685 477.5808922 337 203 685 477.5807的数字 。,返回,4.2.4 SQL数据类型逻辑型,逻辑型数据类型只支持0和1两个数值,对于只有真和假两种状态的字段可选择使用此种类型。该数据类型的字段只在创建表时创建,后期不可以更改。,返回,4.2.5 SQL数据类型日期型,当设计数据库字段信息涉及到了日期时,可以使用日期类型的字段 。SQL提供了两种日期类型字段: SMALLDATETIME ,1900年1月1日2079年6月6日,它只能精确到秒 。 DA

5、TETIME ,1753年1月1日第1毫秒9999年12月31日最后1毫秒 。,返回,4.3 JDBC简介,JDBC(Java Data Base Connectivity)是一种用于使用Java语言连接数据库的API。程序员可以使用JDBC提供的类和接口来连接多种关系型数据库、进行数据操作、编写应用程序。JDBC为程序员访问数据库提供了接口,同时也为数据库开发商提供了操纵数据库的方法。它使用SQL标准、支持ODBC连接、实现了面向数据库的操作。,返回,4.4 JDBC驱动类型,JDBC-ODBC桥 ,通过JDBC访问ODBC的接口 。 本地API ,是将客户机上的JDBC API转换为DBM

6、S(数据库管理系统)来调用,从而进行数据库的连接 。 网络Java驱动程序 ,首先将JDBC转换成一种网络协议,该网络协议与DBMS没有任何关系。然后再将该网络协议转换为DBMS协议。 本地协议纯Java驱动程序 ,将JDBC调用直接转换为DBMS使用的协议,客户机可以直接调用DBMS服务器。,返回,4.5 JDBC相关操作,加载JDBC驱动程序,取得数据库连接,执行各种SQL语句,获取查询结果,关闭数据库连接,返回,4.5.1 加载JDBC驱动程序,在连接数据库前,首先要加载要连接数据库的驱动到Java虚拟机,通过java.lang.Class类的静态方法forName(String cla

7、ssName)实现。例如,通过构造方法加载SQL Server2000:,public class DBConnection private final String dbDriver = “com.microsoft.jdbc.sqlserver.SQLServerDriver“; public DBConnection() try Class.forName(dbDriver).newInstance(); catch (ClassNotFoundExceptione) /省略其他代码 ,返回,4.5.2 取得数据库连接,通过java.sql.DriverManager驱动程序管理器的静态

8、方法: getConnection(String url,String user,String password) 可以建立数据库连接,其中,该静态方法的的第1个参数是连接数据库url地址,第2个参数是连接数据库的名称,第3个参数是连接数据库的登录密码,使用方法如下:,返回,4.5.3 执行各种SQL语句(1),1执行静态的SQL语句对象,Statement接口的executeUpdate(String sql)方法将执行添加(insert)、修改(update)和删除(delete)的SQL语句,执行成功后,将返回一个int型数值,该数值为影响数据库记录的行数。Statement接口的exe

9、cuteQuery(String sql)方法将执行查询(select)语句,执行成功后,将返回一个ResultSet类型的结果集对象,该对象将存储所有满足查询条件的数据库记录。例如:,int num=statement.executeUpdate(“insert into wy_table values (33,添加)”); int num=statement.executeUpdate(“update wy_table set name= 修改 where id=33“); int num=statement.executeUpdate(“delete from wy_table wher

10、e id=6“); ResultSet rs= statement. executeQuery(“select * from wy_table“);,注意:执行executeUpdate()方法或executeQuery(String sql)时,会 抛出SQLException类型的异常,所以需要通过try-catch进行捕 捉。,3.5.3 执行各种SQL语句(2),2执行预编译SQL语句对象,PreparedStatement接口的executeUpdate(String sql)方法将执行添加(insert)、修改(update)和删除(delete)的SQL语句,执行成功后,将返回一

11、个int型数值,该值为影响数据库记录的行数。PreparedStatement接口的executeQuery(String sql)方法将执行查询(select)语句,执行成功后,将返回一个ResultSet类型的结果集对象,该对象将存储所有满足查询条件的数据库记录。例如:,PreparedStatement ps=con.prepareStatement(“insert into wy_table values (?,?)“); ps.setInt(1,6); ps.setString(2,“添加“); int num=ps.executeUpdate();,PreparedStatemen

12、t ps=con.prepareStatement(“select * from wy_table where id=?“); ps.setInt(1,6); ResultSet rs=ps.executeQuery();,4.5.3 执行各种SQL语句(3),2执行预编译SQL语句对象,使用PreparedStatement的好处:,依赖于服务器对预编译查询的支持,以及驱动程序处理原始 查询的效率,预备语句在性能上的优势可能有很大的不同。 安全是预备语句的另外一个特点,通过HTML表单接受用户 输入,然后对数据库进行更新时,一定要使用预备语句或存 储过程。 预备语句还能够正确地处理嵌入在字符

13、串中的引号以及处理 非字符数据,例如,向数据库发送序列化后的对象。,注意:执行executeUpdate()方法或executeQuery(String sql)时, 会抛出SQLException类型的异常,所以需要通过try-catch进 行捕捉。,4.5.3 执行各种SQL语句(4),3执行数据库存储过程,CallableStatement接口的executeUpdate(String sql)方法将执行添加(insert)、修改(update)和删除(delete)的数据库的存储过程,执行成功后,将返回一个int型数值,该数值为影响数据库记录的行数。 CallableStatement

14、接口的executeQuery(String sql)方法将执行查询数据库的存储过程,执行成功后,将返回一个ResultSet类型的结果集对象,该对象将存储所有满足查询条件的数据库记录。,例如,数据库中有如下一个存储过程:,CREATE PROCEDURE p_insert (name varchar(20),sex char(4), tel varchar(30),address varchar(50),birthday varchar(50)AS insert into users(name,sex,tel,address,birthday) values(name, sex,tel,ad

15、dress,birthday) GO,4.5.3 执行各种SQL语句(5),3执行数据库存储过程,通过CallableStatement对象执行数据库中的该存储过程:,CallableStatement cs=connection.prepareCall(); CallableStatement cs=connection.prepareCall(“call p_insert(?,?,?,?,?)“); cs.setString(1,“xwei“); cs.setString(2,“男“); cs.setString(3,“111111“); cs.setString(4,“长春市xx大街“)

16、; cs.setString(4,“1983-01-01“); int num=cs.executeUpdate();,注意:CallableStatement对象执行executeUpdate()方法或 executeQuery(String sql)时,会抛出SQLException类型 异常,所以需要通过try-catch进行捕捉。,4.5.3 执行各种SQL语句(6),3执行数据库存储过程,使用CallableStatement处理存储过程的优缺点:,优点 语法错误可以在编译时找出来,而非在运行期间;数据库存储过程的运行可能比常规的SQL查询快得多;程序员只需知道输入和输出参数,不需了解表的结构。另外,由于数据库语言能够访问数据库本地的功能(序列,触发器,多重游标等操作),因此,用它来编写存储过程可能要比使用Java编程语言要简易一些。 缺点 存储过程的商业逻辑在数据库服务器上运行,而非客户机或Web服务器。而行业的发展趋势是尽可能多地将商业逻辑移出数据库,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号