《java数据库.ppt》由会员分享,可在线阅读,更多相关《java数据库.ppt(19页珍藏版)》请在第壹文秘上搜索。
1、18:57第第1页页JDBCJDBC数据库编数据库编程技术程技术18:57第第2页页了解常见的关系型数据库了解常见的关系型数据库熟悉熟悉JDBCJDBC的工作原理,掌握的工作原理,掌握JDBCJDBC操作数操作数据库所用到的类的使用方法据库所用到的类的使用方法掌握掌握JDBCJDBC开发数据库的工作步骤开发数据库的工作步骤18:57第第3页页1.1.关系数据库简介关系数据库简介2.2.JDBCJDBC基础基础3.3.主要主要JDBCJDBC类类4.4.JDBCJDBC编程工作步骤编程工作步骤5.5.实例实例18:57第第4页页 (1)关系数据库的特点有哪些关系数据库的特点有哪些? 一个数据库由
2、一个或多个表组成,每个一个数据库由一个或多个表组成,每个表由行,列组成,列代表字段表由行,列组成,列代表字段(即属性即属性),行代,行代表记录,表中的记录应该是唯一的表记录,表中的记录应该是唯一的 ,主关键,主关键字唯一。字唯一。(2)对关系数据库的操作有哪些对关系数据库的操作有哪些?搜索搜索(查找查找),连接操作,连接操作添加,更新,添加,更新, 删除记录删除记录18:57第第5页页(3) SQL语句语句(1)SELECTALL|DISTINCT|DISTINCTROW|TOP*|talbe.*|table.field1AS alias1,table.field2AS alias2,FROM
3、 tableexpression,IN externaldatabaseWHERE(2)更新更新数据数据语法语法:UPDATE 表名表名SET 新值新值WHERE 条件条件(3)DELETE子句的语法子句的语法:DELETE 表名表名.*FROM 来源表来源表WHERE条件条件(4)INSERT 子句的语法子句的语法:INSETR INTO 目的表或查询目的表或查询(字段字段1,字段字段2,)values(数值数值1,数值数值2,)18:57第第6页页 JDBC是为是为Java提供的一个平台无关的数提供的一个平台无关的数据库标准据库标准API,它提供了一个通用的它提供了一个通用的SQL数据数据
4、库存取机制,该机制为多数关系型库存取机制,该机制为多数关系型DBMS提提供统一接口。供统一接口。 JDBC分为分为JDBC API与与JDBC驱动程序。驱动程序。前者即一组前者即一组JDBC类库,使用这个类库可以以类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源一种标准的方法、方便地访问数据库资源(在(在java.sql类包中)。类包中)。 JDBC为访问不同的为访问不同的数据库提供了一种统一的途径,象数据库提供了一种统一的途径,象ODBC一一样,样,JDBC对开发者屏蔽了一些细节问题。对开发者屏蔽了一些细节问题。18:57第第7页页 JDBC包含一系列丰富的类包含一系列丰富的类,
5、在在java.sql包包中中(JDK.1.1以上以上).JDBC提供了一种提供了一种API实现实现对数据库透明存取的方法对数据库透明存取的方法,这种存取依据驱动这种存取依据驱动程序来实现程序来实现,不同的数据库制造尚提供它们不不同的数据库制造尚提供它们不同的驱动程序同的驱动程序. JDBC的目标是使应用程序开发人员使用的目标是使应用程序开发人员使用JDBC可以连接任何提供了可以连接任何提供了JDBC驱动程序的驱动程序的数据库系统,这样就使得程序员无需对特定数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。大
6、简化和加快了开发过程。18:57第第8页页与与ODBC相类似,相类似,JDBC接口(接口(API)也包括两个层次:也包括两个层次: 面向应用的面向应用的API:Java API,抽象接口,供应用程序开发抽象接口,供应用程序开发人员使用(连接数据库,执行人员使用(连接数据库,执行SQL语句,获得结果)。语句,获得结果)。 面向数据库的面向数据库的API:Java Driver API,供开发商开发数据供开发商开发数据库驱动程序用。库驱动程序用。JDBC直接在直接在应用程序中加应用程序中加载驱动程序并载驱动程序并连接特定的数连接特定的数据库。据库。 Java Application JDBC Ma
7、nager JDBC-Net Driver Driver A Driver B JDBC-ODBC Bridge Driver JDBC-ODBC Bridge Driver DataBase 1 DataBase 4 4 DataBase 3 3 DataBase 2 2 JDBC API JDBC Driver API 18:57第第9页页(1)Driver类类:用来与数据库通信的软件用来与数据库通信的软件.(2)DriverManager类类:是是JDBC基础基础,用来管理和卸载用来管理和卸载JDBC驱动程序驱动程序.该类有一个该类有一个getConnection()方法方法,用用于验证
8、于验证JDBC数据源数据源,并返回并返回Connection对象对象.(3)Connection类类:该类的该类的CreateStatement()方法连方法连接接JDBC数据源数据源,返回返回Statement对象对象.(4)Statement类类:将将SQL行为封装起来交给数据库引行为封装起来交给数据库引擎擎,调用该类的调用该类的execute(), executeQuery(), executeUpdate()等方法等方法,执行执行SQL语句语句,返回返回resultSet对象对象.(5)ResultSet类类:封装了一个由封装了一个由SQL查询返回的结果查询返回的结果.该类的该类的ge
9、tString(),getInt()等方法获得一栏数据的存等方法获得一栏数据的存取取,next()方法到下一行方法到下一行.18:57第第10页页任何一个任何一个JDBC应用程序,都需要以下四个应用程序,都需要以下四个步骤:步骤:q 加载加载JDBC驱动程序驱动程序q 建立与数据库的连接建立与数据库的连接q 进行数据库操作进行数据库操作q数据集结果分析数据集结果分析q 关闭相关连接关闭相关连接18:57第第11页页在应用程序中,有三种方法可以加载驱动程序:在应用程序中,有三种方法可以加载驱动程序:q 利用利用System类类的静态方法的静态方法setProperty()System.setPr
10、operty(“jdbc.drivers”, “sun.jdbc.odbc.JdbcOdbcDriver”);q 利用利用Class类类的静态方法的静态方法forName()Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);Class.forName(“oracle.jdbc.driver.OracleDriver”);q 直接创建一个驱动程序对象直接创建一个驱动程序对象new sun.jdbc.odbc.JdbcOdbcDriver();18:57第第12页页 利用利用DriverManager类类的静态方法的静态方法getConnection()来
11、来获得与特定数据库的连接实例(获得与特定数据库的连接实例(Connection实例)。实例)。Connection conn = DriverManager.getConnection(source, user, pass); 这三个参数都是这三个参数都是String类型的,使用不同的驱动程类型的,使用不同的驱动程序与不同的数据库建立连接时,序与不同的数据库建立连接时,source的内容是不同的的内容是不同的,但其格式是一致的,都包括三个部分:,但其格式是一致的,都包括三个部分:jdbc:subprotocol:subname:subprotocol:subname 对于对于JDBC-ODBC
12、 Bridge, subprotocolsubprotocol(子协议子协议)为为odbc, subnamesubname (子名字子名字)则为数据源:则为数据源:“jdbc:odbc:myDSN”。 对于其他类型的驱动程序,根据数据库系统的不同对于其他类型的驱动程序,根据数据库系统的不同subprotocolsubprotocol和和subnamesubname有不同的格式和内容。有不同的格式和内容。18:57第第13页页每执行一条每执行一条SQL语句,都需要利用语句,都需要利用Connetcion实例实例conn的的createStatement()方法来创建一个方法来创建一个Statem
13、ent实例。实例。Statement mystmt=conn.CreateStatement();Statement的常用方法包括:的常用方法包括:n执行执行SQL:INSERT, UPDATE 或或 DELETE 等语句等语句nint executeUpdate(String sql)n执行执行SQL:SELECT语句语句nResultSet executeQuery(String sql)nStatement 中还有其他的方法来执行中还有其他的方法来执行SQL语句。语句。18:57第第14页页n一旦执行了一旦执行了SELECT 语句,语句,ResultSet对象对象rs就包含了就包含了满足
14、满足SQL语句条件的所有行。语句条件的所有行。n使用使用rs.next()方法可以下移方法可以下移rs中的行。中的行。n在行中取得数据可以通过在行中取得数据可以通过rs.get中的多种方法实现。中的多种方法实现。n例如,例如,假定有一个表假定有一个表emps,其中存储了具有其中存储了具有name,age 等多个字段的等多个字段的多个记录。如果执行了查询多个记录。如果执行了查询Select * from emps,则下面的代就可以说明则下面的代就可以说明如何获得结果:如何获得结果:ResultSet rs = stmt.execteQuery (Select * from emps);While
15、 (rs. next () ) String fl = rs.getString (1);/第一列的值第一列的值 rs.getString (“name”) int f2 = rs.getInt (2); /第二列的值第二列的值 rs.getString (“age ”) float f3 = rs.getFloat (3); int f4 = getInt (4);18:57第第15页页mystmt.close(); /关闭对象(关闭对象(SQL语句对象)语句对象)rs.close(); /关闭对象(结果集对象)关闭对象(结果集对象)con.close(); /关闭连接关闭连接18:57第第
16、16页页import java.sql.*;public class JDBCExampleConnection myconn;Statement mystmt;ResultSet myrs; public static void main(String args)tryClass.forname(“xxxxxx”);/驱动程序名驱动程序名 /sun.jdbc.odbc.JdbcOdbcDriverCatch(ClassNotFoundException e) 18:57第第17页页trymyconn=DriverManager.getConnection(“数据数据源源”,UN,PW);mystmt=myconn.CreateStatement();mystmt.executeUpdate(“insert into xxx(,) values(,)”);myrs=mystmt.executeQuery(“select * from xxx”);while(myrs.next() int xxx1=myrs.getInt(字段字段1) ;String xxx2=myrs.getStri