java数据库编程第4章

上传人:shaoy****1971 文档编号:115510028 上传时间:2019-11-13 格式:PPT 页数:31 大小:4.91MB
返回 下载 相关 举报
java数据库编程第4章_第1页
第1页 / 共31页
java数据库编程第4章_第2页
第2页 / 共31页
java数据库编程第4章_第3页
第3页 / 共31页
java数据库编程第4章_第4页
第4页 / 共31页
java数据库编程第4章_第5页
第5页 / 共31页
点击查看更多>>
资源描述

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

1、,第四章 JDBC,回顾,增加数据:insert 更新数据:update 删除数据:delete/truncate/drop 查询数据: 表别名、列别名 排除重复数据:distinct 限定行数:top n percent 单条件选择操作 多条件选择操作 范围查询(betweenand、in、like) 处理空值:where 字段 is not null 数据排序: order by 字段 desc,目标,数据库应用程序与持久层概念,JDBC概述及使用,使用Connection、Statement和PreparedStatement,使用结果集(ResultSet),为什么需要JDBC,JDB

2、C是Java数据库连接技术的简称,提供连接各种常用数据库的能力,Java应用程序,JDBC,JDBC,JSP/Servlet,客户端,数据库服务器,应用服务器,数据库服务器,客户端,JDBC概述,为什么要使用JDBC SQL语句能够直接访问数据库,但是在JAVA中谁来操作SQL语句? 什么是JDBC Java DataBase Connectivity 是一种用于执行SQL语句的Java API,它由一组用Java语言编写的类和接口组成。通过这些类和接口,JDBC把SQL语句发送给不同类型的数据库进行处理并接收处理结果 JDBC两大类 对Java开发人员而言是API,对数据库提供商而言是接口

3、面向开发人员:作为API,JDBC为程序开发提供标准的接口 面向数据库厂商:作为接口,让数据库厂商按标准方法来实现数据库连接与操作(数据库驱动程序),JDBC应用程序工作原理,JAVA企业应用与持久层,JDBC的四种驱动程序,JDBC-ODBC Bridge JDBC-ODBC桥 由SUN公司提供通用的驱动,能访问各种数据库,但效率极低 native-API partly-Java driver 本地库Java驱动程序,外层是java,底层可能是c,c+ 执行效率高,客户端必须安装本地驱动,维护不方便 net-protocal all-Java driver(JDBC Proxy) 网络协议纯

4、Java驱动程序(通用) 客户端不必安装本地库,使用方便,但性能相对较低 native-protocol all-Java driver 本地协议完全Java驱动程序 将JDBC调用转化为特定数据库的网络协议,效率很高,JDBC驱动 5-1,JDBC驱动由数据库厂商提供 在个人开发与测试中,可以使用JDBC-ODBC桥连方式 在生产型开发中,推荐使用纯Java驱动方式,DB Server,DB Server,JDBC API,JDBC Driver Manager,纯Java 驱动,JDBCODBC桥,Java 应用程序,ODBC,JDBC驱动 5-2,桥连 将对JDBC API的调用,转换为

5、对另一组数据库连接API的调用 优点:可以访问所有ODBC可以访问的数据库 缺点:执行效率低、功能不够强大,JDBC-ODBC桥,Java 应用程序,JDBC API,ODBC API,ODBC层,DB Server,JDBC驱动 5-3,使用JDBC-ODBC进行桥连 1、在控制面板ODBC数据源系统DSN中配置数据源 2、编程,通过桥连方式与数据库建立连接,-语法- Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); Connection con =DriverManager.getConnection(“jdbc:odbc:news“,“sa“,

6、“sa“);,JDBC-ODBC桥驱动类的完全限定类名,数据源名称,演示:配置ODBC数据源,JDBC驱动 5-4,纯Java驱动 由JDBC驱动直接访问数据库 优点:100% Java,快又可跨平台 缺点:访问不同的数据库需要下载专用的JDBC驱动,JDBC 驱动,Java 应用程序,JDBC API,DB Server,JDBC的常见API,JDBC驱动程序管理器,它是JDBC体系结构的支柱,主要作用是把Java应用程序连接到JDBC驱动程序上,然后退出,定义到数据库的连接,主要用于创建Statement对象,执行SQL语句的接口,通过相关方法执行静态的SQL语句,类用于检查并报告用JDB

7、C操作数据库时的各种异常,接收某查询SQL查询语句所返回的结果集对象,预编译的SQL语句,结合参数可以大大提高JDBC的执行效率,执行存储过程,JDBC开发步骤,加载驱动程序 创建一个连接对象 创建声明语句对象 执行SQL语句 使用声明语句对象的executeUpdate(sql)方法完成增删改操作 使用声明语句对象的executeQuery(sql)方法获得结果集对象 关闭各种对象,JDBC程序的工作模板,try Class.forName(JDBC驱动类); catch (ClassNotFoundException e) System.out.println(“无法找到驱动类“); tr

8、y Connection con=DriverManager.getConnection(JDBC URL,数据库用户名,密码); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(“SELECT a, b, c FROM Table1“); while (rs.next() int x = rs.getInt(“a“); String s = rs.getString(“b“); float f = rs.getFloat(“c“); con.close(); catch (SQLExceptio

9、n e) e.printStackTrace(); ,获得数据库连接,发送Sql语句,处理结果,注册JDBC驱动,JDBC URL用来标识数据库,必须处理的异常,释放资源,必须处理的异常,演示一,使用JDBC查询数据 使用Class.forName加载驱动程序 使用DriverManager创建一个连接对象 使用连接对象创建声明语句对象 使用语句对象的executeQuery(sql)方法获得结果集对象,使用后立即关闭操作结果集对象 关闭声明语句对象 关闭数据库的连接,演示:使用JDBC查询数据,使用Class.forName加载驱动程序. try String driver = “com.m

10、icrosoft.sqlserver.jdbc.SQLServerDriver”; Class.forName(driver); catch (ClassNotFoundException e) e.printStackTrace(); ,演示:使用JDBC查询数据,使用DriverManager创建一个连接对象 String url = “jdbc:sqlserver:/localhost:1433;databaseName=name“; String user = “sa“; String password = “; try Connection conn = DriverManager.

11、getConnection(url, user, password); System.out.println(“连接成功“); conn.close(); catch (SQLException e) System.out.println(“连接失败“); e.printStackTrace(); ,演示:使用JDBC查询数据,使用语句对象的executeQuery(sql)方法获取并关闭结果集对象 Connection conn = DriverManager.getConnection(url, user, password); /创建语句对象 Statement st = conn.cr

12、eateStatement(); /查询数据 sql = “select title_id, title, price from titles“; ResultSet rs = st.executeQuery(sql); while(rs.next() String f1 = rs.getString(1); String f2 = rs.getString(“title“); String f3 = rs.getString(3); System.out.println(“f1=”+f1+“,f2=”+f2+“+“,f3=”+f3); /逆向关闭 rs.close(); st.close()

13、; conn.close();,resultSet中的游标自由移动,Jdbc2.1提供的新功能 resultSet中的游标可以自由移动,移到第一条,最后一条,上一条,下一条,移到指定的行都可以。 stat=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); set=stat.executeQuery(“select * from products“);,使用resultSet对象更新数据,Jdbc2.1提供的新功能 可以在resultSet对象更新数据 set.updateStri

14、ng(2, “c“); set.updateRow(); set.moveToInsertRow(); set.updateString(2, “,“); set.updateString(3, “,“); set.updateInt(4, 3); set.updateInt(5, 3); set.insertRow(); set.absolute(2); set.deleteRow();,演示二,演示:使用JDBC增加数据 使用Class.forName加载驱动程序 使用DriverManager创建一个连接对象 使用连接对象创建声明语句对象 使用声明语句对象的executeUpdate(s

15、ql)方法完成增删改操作 关闭声明语句对象 关闭数据库的连接,演示:使用JDBC增加数据,使用Class.forName加载驱动程序. try String driver = “com.microsoft.sqlserver.jdbc.SQLServerDriver”; Class.forName(driver); catch (ClassNotFoundException e) e.printStackTrace(); ,演示:使用JDBC增加数据,使用DriverManager创建一个连接对象 String url = “jdbc:microsoft:sqlserver:/localhos

16、t:1433;DatabaseName=MyDB“; String user = “sa“; String password = “; try Connection conn = DriverManager.getConnection(url, user, password); System.out.println(“连接成功“); conn.close(); catch (SQLException e) System.out.println(“连接失败“); e.printStackTrace(); ,演示:使用JDBC增加数据,使用连接对象创建声明语句对象 Connection conn = DriverManager.getConnection(url, user, password); /创建语句对象 = 连接对象.create. Statement st = conn.createStatement(

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

当前位置:首页 > 中学教育 > 职业教育

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