《10Java数据库编程.ppt》由会员分享,可在线阅读,更多相关《10Java数据库编程.ppt(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、java 基础培训第10章 Java数据库编程10.1 数据库简介10.1.1 关系型数据库 数据库(Data Base,DB)用于存放数据、访问数据、操作数据的存储仓库数据库管理系统(Database Management System,DBMS)管理数据库的一个软件 DBMS具有四个发展阶段:层次型、网状型、关系型和关系对象型。应用程序应用程序数据库管理系统数据库管理系统数据库数据库数数据据库库系系统统应用程序应用程序Oracle DB2SQL ServerAccess 数据数据210.1 数据库简介管理信息系统(MIS)架构C/S架构软件,即客户端/服务器端软件,通常适用于局域网。B/S
2、架构软件,即浏览器/服务器软件,通常适用于广域网。关系型数据库若干相互关联的表格构成一个关系型数据库表是由行和列组成的二维表格列被称为字段,行被称为记录列和行的交集通常被叫做项nonamesexscore0550101赵小惠女920550102王磊男820550104李子峰男880550105张小燕女85表表10.1 student表表310.1 数据库简介10.1.2 SQL简介结构化查询语言(Structured Query Language,SQL语言)是所有关系型数据库都支持的一种统一的数据库语言,Java语言对数据库的操作是通过嵌入SQL语句实现的。常用SQL指令命令关键字含义命令关
3、键字含义CREATE-create创建表INSERT-insert插入语句DROP-drop删除表DELETE-delete删除语句SELECT-select查询语句UPDATE-update更新语句410.2 JDBC技术应用10.2.1 JDBC简介JDBC(Java DataBase Connectivity,Java数据库连接)支持基本SQL语句,在java程序中实现数据库操作功能,并简化操作过程提供多样化的数据库连接方法为各种不同的数据库提供统一的操作界面Java应应用用程程序序JDBCAPIJDBC驱驱动动程程序序管管理理器器JDBC驱动程序驱动程序 forOracleJDBC驱动
4、程序驱动程序 forDB2JDBC-ODBC驱动程序驱动程序JDBC-网络驱动程序网络驱动程序OracleDB2其它其它DBODBC方式方式510.2 JDBC技术应用JDBC驱动程序分类JDBC-ODBC桥驱动程序(JDBC-ODBC Bridge)通过Java2提供的JDBC-ODBC桥驱动程序,开发者可以使用JDBC来访问一个ODBC数据源。使用JDBC-ODBC桥的驱动器,通常只运行在Microsoft Windows系统,因此JDBC平台无关性好处就不能体现出来。通常不推荐这种桥驱动程序,但它可以减少开发人员进行企业开发的麻烦。本地API(Java to Native API)本地A
5、PI是用Java编写的驱动程序,这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、DB2或其他DBMS的调用。610.2 JDBC技术应用JDBC驱动程序分类 JDBC网络纯Java驱动程序(JDBC-Network Bridge)JDBC网络纯Java驱动程序是四种类型中最灵活的,也是最常用的。它是一种纯Java的驱动程序。这种驱动程序不需要客户端的数据库驱动,而是使用网络服务器中间层来访问一个数据库。该类型的驱动程序是网络协议中能体现完全Java技术性能的驱动程序,它为Java应用程序提供了一种进行JDBC调用的机制。本地协议纯Java驱动程序(Pure Java JDB
6、C Drive)本地协议纯Java驱动程序也是一种纯Java的驱动程序,这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。这将允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方案。710.2 JDBC技术应用JDBC提供的主要接口和类java.sql.DriverManagerDriverManager类作用于用户和驱动程序之间。这个类的主要用途是通过调用静态方法getConnection()获取对Connection对象的引用。java.sql.ConnectionConnection对象是通过DriverManager.getConnec
7、tion()方法取得的 Connection对象的主要作用是通过调用方法createStatement(),产生一个Statement对象,由Statement对象来执行SQL语句。810.2 JDBC技术应用JDBC提供的主要接口和类 java.sql.StatementStatement对象用于在已建立连接的基础上向数据库发送SQL语句的对象,包括了执行SQL语句和获取返回结果的方法。Statement接口提供了常用的执行SQL语句的方法,如executeQuery()、executeUpdate()。java.sql.ResultSetResultSet是结果集对象,当使用Stateme
8、nt对象的executeQuery()方法执行SQL查询时,会把符合查询条件的数据库记录全部返回到结果集ResultSet对象中。要从这个结果集中取出记录,可以使用形如getString()、getFloat()等方法,从当前的记录中取出各个列的值。而要使指向结果集记录的指针指向下一条记录,则要使用ResultSet的next()方法。910.2 JDBC技术应用10.2.2 JDBC工作机制加载驱动程序 在与特定数据库建立连接前,JDBC都会加载相应的驱动程序。当使用JDBC-ODBC桥驱动程序时,可以用以下的代码加载:Class.forName(sun.jdbc.odbc.JdbcOdbc
9、Driver);1010.2 JDBC技术应用建立与数据库的连接 创建与数据源的连接可以使用DriverManager的getConnection()方法。public static synchronized Connection getConnection(String url)throws SQLExceptionpublic static synchronized Connection getConnection(String url,String user,String password)throws SQLExceptionpublic static synchronized Con
10、nection getConnection(String url,Properties info)throws SQLException例如,可用如下方法创建连接对象Connection con=DriverManager.getConnection(url,user,password);1110.2 JDBC技术应用创建Statement对象,执行SQL语句要执行SQL查询,首先创建一个Statement对象。创建Statement对象可以使用Connection接口的createStatement()方法。语句如下:Statement stmt=con.createStatement();
11、说明:可以使用stmt对象调用Statement接口中的executeQuery()方法、executeUpdate()方法执行相应的SQL语句。使用executeQuery()方法执行SQL查询语句时,符合条件的记录返回到结果集ResultSet的对象中。例如:String sql=select*from student where sex=男;ResultSet rs=stmt.executeQuery(sql);1210.2 JDBC技术应用当执行更新、插入、删除等SQL语句时,调用exeCuteUpdate()方法,没有记录返回。例如:String sql=insert into st
12、udent values(0550103,李涛,男,96);stmt.executeUpdate(sql);访问结果集记录当执行了SQL查询语句时,符合条件的记录存放在结果集对象中。结果集中有一个访问记录的指针,最初指向第一个未被访问的记录之前,每调用一次ResultSet接口中的next()方法,指针下移一个位置,只要指针不为空,就可以取出指针所指记录中各字段的值,直到指针为空,也就是所有结果集中的记录都被访问到了。1310.2 JDBC技术应用提取记录中字段的内容,可以使用ResultSet接口中的getXxx()方法。例如:while(rs.next()String sno=rs.get
13、String(no);String sname=rs.getString(name);String ssex=rs.getString(sex);String sscore=rs.getInt(score);System.out.println(学号=+sno+姓名=+sname+性别=+ssex+成绩=+sscore);/显示当前记录内容1410.2 JDBC技术应用依次关闭ResultSet、Statement和Connection的对象例如:rs.close();stmt.close();con.close();15DB2 JDBC Driver的版本判断JCCjava-cp.db2jcc.jar com.ibm.db2.jcc.DB2Jcc-version如果报类或者方法找不到,说明是很老的版本APP反编译,或者用如下的代码import COM.ibm.db2.jdbc.app.*;DB2Driver driver=new DB2Driver();System.out.println(driver.toString();System.out.println(MajorVersion +driver.getMajorVersion();System.out.println(MinorVersion +driver.getMinorVersion();16本章结束17
限制150内