第12讲 数据库编程

上传人:xzh****18 文档编号:54161832 上传时间:2018-09-08 格式:PPT 页数:58 大小:1.37MB
返回 下载 相关 举报
第12讲 数据库编程_第1页
第1页 / 共58页
第12讲 数据库编程_第2页
第2页 / 共58页
第12讲 数据库编程_第3页
第3页 / 共58页
第12讲 数据库编程_第4页
第4页 / 共58页
第12讲 数据库编程_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《第12讲 数据库编程》由会员分享,可在线阅读,更多相关《第12讲 数据库编程(58页珍藏版)》请在金锄头文库上搜索。

1、第12讲 数据库编程,数据库知识的复习 JDBC基础 数据库连接的主要步骤 数据库编程应用,1. 数据库知识的复习,大家已修读过数据库系统课程,这里只复习有关知识: 关系型数据库、DBMS、数据库、表、字段、记录,一个数据库可以包含多个表,在程序设计中,使用SQL语句来操作数据库,最常用的操作是:查询、更新、插入、删除,对应的语句举例如下: select查询语句 如: select * from students, select * from students where smallclass=EN01 insert插入语句 如: insert into students values (07

2、12345678,张三,SV07,EN,EN02) update更新语句 如: update students set majorgrade=sA07 where name=张三 delete删除语句 如: delete from students where name=张三,2. JDBC基础,面临的问题:由于数据库系统的多样性、复杂性,如何在Java中使用标准的操作去使用数据库? JDBC是Java DataBase Connectivity(Java 数据连接)技术的简称,是一种可用于执行SQL语句的Java API。它由一些Java语言编写的类和接口组成; JDBC为数据库应用开发人员

3、、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。,2.1 JDBC概念,JDBC主要功能: (1)与数据库建立连接; (2)向数据库发送SQL语句; (3)处理数据返回的结果。,JDBC有两个程序包: java.sql:核心包,这个包中的类主要完成数据库的基本操作,如生成连接、执行SQL语句、预处理SQL语句等; javax.sql:扩展包,主要为数据库方面的高级操作提供了接口和类。JDBC常用类和接口: Driver 接口:在内部创建连接 DriverManager类:装入所需的驱动程序,编程时调用它的方法来创建连接; Con

4、nection接口:编程时使用该类对象创建Statement对象或PreparedStatement对象等;,2.2 JDBC的类与接口,Statement接口:编程时使用该类对象得到ResultSet对象; PreparedStatement接口:预处理SQL语句接口 ResultSet接口:结果集接口 ResultSetMetaData接口:结果集的元数据接口 DatabaseMetaData接口:数据库的元数据接口,JDBC的实现包括三部分: JDBC驱动管理器:java.sql.DriverManger类,由SUN公司实现,负责注册特定JDBC驱动器,以及根据特定驱动器建立与数据库的连

5、接。 JDBC驱动器API:由SUN公司制定,其中最主要的接口是java.sql.Driver接口。 JDBC驱动器:由数据库供应商或者其他第三方工具提供商创建,也称为JDBC驱动程序。JDBC驱动器实现了JDBC驱动器API,负责与特定的数据库连接,以及处理通信细节。JDBC驱动器可以注册到JDBC驱动管理器中。,2.3 JDBC实现原理,SUN公司制定了两套API: JDBC API:Java应用程序通过它来访问各种数据库。 JDBC驱动器API:当数据库供应商或者其他第三方工具提供商为特定数据库创建JDBC驱动器时,该驱动器必须实现JDBC驱动器API。,类型1:驱动程序基于 JDBC-

6、ODBC 桥,它是把JDBC操作翻译成对应的ODBC调用。故称为JDBC-ODBC桥式。适用于快速的原型系统,没有提供jdbc驱动的数据库,如access 。 优点:可以访问所有ODBC能够访问的数据库 缺点:执行效率低,2.4 JDBC驱动程序分类 (了解) (有4种),类型2:要求客户端(指使用数据端)必须安装开发商的数据库软件,然后使用Java语言通过本地类访问数据库。故称为本地API半Java驱动程序。优点:运行速度快,得到较广泛使用缺点:使用了本地API,通常不能跨平台,类型3:使用中间件服务器实现数据的连接,故称为中间数据访问服务器。例如:WebLogic的数据池就是属于这种类型。

7、通常由那些非数据库厂商提供,是四种类型中最小的 。优点:与平台无关,客户端不需要安装其它软件,也不用管理 缺点:使用了第三方服务器,类型4:使用厂商专有的网络协议把JDBC API调用转换成直接的网络调用,纯Java的驱动程序运行在客户端,不需要中间服务器,整个访问数据库的过程均由Java语言实现。故称为纯java驱动程序。通过自己的本地协议直接与数据库引擎通信,具备在internet装配的。优点:高性能,适用于Internet缺点:每一个数据库的连接随数据库开发商的不同而不同,类型3、类型4的驱动程序,具有移植性好、跨平台等特点,因此,实际应用时应尽量使用它们,而类型1、类型2则为次要的选择

8、。,操作步骤: 创建数据源(使用JDBC-ODBC桥式驱动程序时必需); 注册、加载特定的驱动程序; 创建连接- Connection对象; 利用Connection对象生成Statement对象; 利用Statement对象执行SQL语句,如查询、更新、插入、删除等; 若是执行查询语句,还要从ResultSet读取数据; 关闭ResultSet、Statement、Connection等。,. 数据库连接的主要步骤,(1)创建数据源:Windows操作系统:控制面板/管理工具/数据源(ODBC),如果已经有sql server 2008 的用户数据源,则直接配置该数据源的默认数据库即可。若没

9、有则添加:,(2)加载驱动程序及创建数据库连接:格式:Class.forName(“驱动程序名称“); 请注意:不同类型的数据库加载的驱动程序不同: JDBC-ODBC桥式(即有数据源名字叫sqlserver的情况,本课件使用SQLserver2008为例) 有两种验证方式: 1、用windows验证方式连接数据库: 加载数据库驱动程序 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); 连接数据库: String url=“jdbc:odbc:sqlserver;“; conn = DriverManager.getConnection(url);,

10、(2)加载驱动程序及创建数据库连接: JDBC-ODBC桥式 2、用sql server身份验证方式连接数据库: 加载数据库驱动程序Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); 连接数据库: String url=“jdbc:odbc:sqlserver;“; conn =DriverManager.getConnection(url,“sa“, “sa“);,(2)加载驱动程序及创建数据库连接: jdbc驱动方式(无需先配置数据源)下载对应的JDBC驱动程序jar包文件,放入classpath中,在Eclipse环境中可以通过Build Pat

11、h/Add External Archieves,SQL Server 2008驱动程序的Jar包导入Java项目:,用windows验证方式连接数据库: 加载数据库驱动程序Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver“); 连接数据库 String url = “jdbc:sqlserver:/localhost:1433;DatabaseName=test1;integratedSecurity=TRUE;“; conn = DriverManager.getConnection(url);,(2)加载驱动程序及创建

12、数据库连接: jdbc驱动方式(无需先配置数据源) 2、用sql server身份验证方式连接数据库: 加载数据库驱动程序 Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver“); 连接数据库 String url = “jdbc:sqlserver:/localhost:1433;DatabaseName=test1;“; conn = DriverManager.getConnection(url ,“sa“,“sa“);,(3)创建数据库连接详解: 格式:Connection conn = DriverManager.g

13、etConnection(url,“用户名“, “密码“); 其中:url类似于互联网的地址,它由三部分组成,即:协议:子协议:数据源标识,协议通常是jdbc,子协议是接受DBMS的名称和版本,数据源标识通常是数据源。,(4)利用Connection对象生成Statement对象(即语句): 格式:Statement stmt = conn.createStatement( ); 或是: stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); /ResultSet.TYP

14、E_SCROLL_SENSITIVE 数据集支持指针滚动,ResultSet.CONCUR_UPDATABLE 数据库更新是客户端同步更新;,(5)利用Statement对象执行SQL语句: 执行select语句:将返回一个 ResultSet 对象 格式:ResultSet rs = stmt.executeQuery(“Select 语句”); 例如:ResultSet rs = stmt.executeQuery(“Select * from students); 结果集(即ResultSet 对象 ):也就是符合查询条件的记录构成的集合,可以将它理解为一张二维表格。稍后将介绍从结果集中

15、获取数据的方法。,执行update(更新)、insert(插入)、delete(删除)语句: 格式: int n= stmt.executeUpdate(“update、insert、delete语句等”); 例如:stmt.executeUpdate(“update students set majorgrade=SA07 where name=张三);返回结果:行计数或者 0(表示不返回任何内容),可以不保存。请注意: srmt.executeQuery()与stmt.executeUpdate()方法的不同,(6)若是执行查询语句,需要从ResultSet读取数据: 通过返回的Resul

16、tSet对象来获得查询结果: ResultSet对象的指针一开始定位在第一条记录上,即当前行为第一行; ResultSet提供了指针下移的方法:next(),指针可以不断下移,直到最后。除此之外,还有其它移动指针的方法; 通常,也是用rs.next()是否为false来判断结果集是否为空? ResultSet提供了一些方法来获得当前行中的不同字段的值:getXXX(int 列序号) 或 getXXX(string 列名),(7)调用close()方法,依次关闭ResultSet、Statement、Connection对象。注意:关闭顺序与打开顺序相反。,1、读配置文件连接模式,java.util.Properties类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 driver=com.microsoft.sqlserver.jdbc.SQLServerDriver url=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=java_db user=java pass=java 把键及对应的值保存到文件中,再编写Java程序读取文件中对应的值。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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