《Java的数据库编程》PPT课件.ppt_第1页
《Java的数据库编程》PPT课件.ppt_第2页
《Java的数据库编程》PPT课件.ppt_第3页
《Java的数据库编程》PPT课件.ppt_第4页
《Java的数据库编程》PPT课件.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第11章Java的数据库编程,2,主要内容,关系型数据库概述JDBC简介JDBC的使用,3,11.1数据库概念,数据库数据的集合,它由一个或多个表组成。每一个表中都存储了对一类对象的数据描述关系数据库将数据表示为表的集合,通过建立简单表之间的关系来定义结构的一种数据库,4,11.1.1关系型数据库,一个关系数据库基本上包括一系列相互关连的表,在每一个表中存有一类与应用系统相关的数据。例如一个学生管理的数据库中,可能有关于学生学号、姓名、住址、电话号码以及系别等方面的表,5,11.1.2SQL语言,SQL(SequenceQueryLanguage,结构化查询语言)是操纵数据库的标准语言。非过程化语言:SQL是一种非过程化语言,它一次处理的是一个记录集合,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作。SQL不要求用户指定对数据的存取方法,SQL语句使用查询优化器,由系统决定对指定数据存取的最快速手段。当关系的设计者在关系表上定义了索引,系统会自动地利用索引进行快速检索,用户不需知道表上是否有索引、表有什么类型的索引等细节。,6,统一语言:统一语言SQL可用于所有用户的数据库活动类型,包括数据库系统管理员、程序员等,它操作简单,使用方便。关系数据库的公共语言:用户可将使用SQL的技能从一个RDBMS很容易地转到另一个系统,所有用SQL语言写的程序都具有可移植性。,7,常用SQL语句(1),创建表CREATETABLESTUDENT(studentnoCHAR(8)NOTNULL,firstnameCHAR(10)NOTNULL,lastnameCHAR(10)NOTNULL,birthdayDATE,genderCHAR(1)DEFAULTM);,8,常用SQL语句(2),插入数据当一个表新建成时,它里面没有数据,通过向表中插入数据,建成表的实例。语句句法:INSERTINTO表名(列名1,)VALUES(值1,值2,,值n)子查询;将新学生刘备增加到Student表中,并按照表的结构将信息添加完整,需要如下语句:INSERTINTOSTUDENTVALUES(020005,聪,何,1982-2-23,M);,9,常用SQL语句(3),修改数据对表中已有数据进行修改,语句句法:UPDATE表名SET列名1表达式1,列名2表达式2,WHERE条件;例如,将学号为021010的名字改为宇飞,应该执行以下语句:UPDATESTUDENTSETfirstname=宇文WHEREStudentNO=021010;,10,常用SQL语句(4),删除数据删除表中已经存在的数据,注意:不能删除不存在的数据。语句句法:DELETEFROM表名WHERE条件;例如:对Student表进行删除,要删除其中学号为021111的学生;DELETEFROMSTUDENTWHEREStudentno021111;,11,常用SQL语句(5),查询语句1.查询学号为021900的学生:SELECT*FROMSTUDENTWHEREStudentNo=021900;2.查询所有姓名以A开头的学生的姓名;SELECTSTUDENT.FirstName,STUDENT.LastNameFROMSTUDENTWHERELastNameLIKEA%;3.将所有学生按学号顺序升序排列;SELECT*FROMSTUDENTORDERBYStudentNoDESC;4.将所有学生按学号顺序升序排列;SELECT*FROMSTUDENTORDERBYStudentNoASC;,12,11.2JDBC,JDBC(JavaDataBaseConnectivity)是用于执行SQL语句的Java应用程序接口,由一组用Java语言编写的类与接口组成。JDBC是一种规范,它让各数据库厂商为Java程序员提供标准的数据库访问类和接口,这样就使得独立于DBMS的Java应用程序的开发工具和产品成为可能。,13,11.3JDBC的主要接口,11.3.1数据库驱动相关的接口定义1、java.sql.Driver,14,2、java.sql.DriverManager,15,11.3.2数据库连接接口定义java.sql.Connection,16,11.3.3查询和结果表示接口定义1、java.sql.Statement,17,2、java.sql.ResultSet,18,11.4JDBC的应用,JDBC和JDBC/ODBC解决方案,19,ODBC,ODBC,是开放式数据库互连(OpenDatabaseConnectivity)的缩写这是一组API。它主要与数据库打交道。就是说,利用ODBCAPI,你可通过统一界面和各种数据库打交道。通过ODBC访问数据库由四个组成部分:应用程序(Application,你的程序)ODBC管理器(ODBCmanager)ODBC驱动程序(ODBCDrivers)数据源(DataSources,数据库)访问数据库的模式你的程序ODBC管理器ODBC驱动程序数据库,20,11.4.1ODBC的设置,在Windows资源管理器控制面板管理工具ODBC数据源(可能操作系统的不同会有差别)。然后单击用户DSN页。在这里,可以选择一个已经存在的数据源对它进行修改,或者添加一个新的。这里选择添加。,21,ODBC的设置(2),接下来,系统会提示选择驱动程序,采用MicrosoftAccessDriver,也可以根据具体的条件选择。,22,ODBC的设置(3),安装一个ODBC数据源,23,ODBC的设置(4),如果新建数据源,就要选择具体数据库的位置。如果在前一步选择已经存在的数据源,则可以在这里对它进行重新选取数据库,修复,压缩等操作。同时还可以通过高级选项来定义用户名,密码等。,24,ODBC的设置(5),定义新建数据源的名字,对新建数据源进行描述。至此,我们已经完成了用户DSN的设置,在用户DSN里面多了一个名为javadb的数据源。,25,11.4.2JDBC的使用,1、装载驱动程序装载驱动程序只需要非常简单的一行代码。如果想要使用JDBC/ODBC桥驱动程序,可以用下列代码装载它:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);2、建立连接第二步就是用适当的Driver类与DBMS建立一个连接。下列代码是一般的做法:Connectioncon=DriverManager.getConnection(url,Login,Password);,26,3、查询数据库,为了下面的演示,我们使用MicrosoftAccess编辑刚刚建立的数据源javadb.使用设计向导创建一个名为student的表接着输入一些测试数据。,27,JDBC示例代码,publicclassJDBCDemopublicstaticvoidmain(Stringargs)StringdriverClass=sun.jdbc.odbc.JdbcOdbcDriver;Stringurl=jdbc:odbc:javadb;StringcolumnNames=newStringstudentno,lastname,firstname,gender,birthday;StringdisplayNames=newString学号,姓,名,性别,生日;try/加载驱动程序Class.forName(driverClass);catch(ClassNotFoundExceptione)/驱动程序加载不成功,打印错误信息并退出System.out.println(Cannotfinddriver+driverClass);System.exit(-1);Connectioncon;,28,JDBC示例代码(2),try/获得jdbc连接con=DriverManager.getConnection(url);/创建Statement对象Statementstmt=con.createStatement();/得到查询结果集ResultSetrs=stmt.executeQuery(select*fromstudent);/打印表头for(inti=0;idisplayNames.length;i+)System.out.print(displayNamesi+t);System.out.println();/列印结果集while(rs.next()for(inti=0;icolumnNames.length;i+)System.out.print(rs.getString(columnNamesi)+t);System.out.println();stmt.close();,29,JDBC示例代码(3),catch(SQLExceptionsqe)sqe.printStackTrace();finally/关闭数据库连接trycon.close();catch(Exceptione),30,编写JDBC程序一般步骤,加载驱动程序Class.forName(driverClass);获得jdbc连接Connectioncon=DriverManager.getConnection(url);创建Statement对象Statementstmt=con.createStatement();得到查询结果集或者执行update等操作ResultSetrs=stmt.executeQuery(select*fromstudent);关闭数据库连接trycon.close();catch(Exceptione),31,查询数据库,importjava.sql.*;classQuerypublicstaticvoidmain(Stringargs)tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundExceptione)System.out.println(SQLException:+e.getMessage();tryConnectioncon=DriverManager.getConnection(jdbc:odbc:myDB1,yao,123456);Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery(select*fromemployee);while(rs.next()System.out.println(编号:+rs.getString(1)+t+姓名:+rs.getString(2)+t+性别:+rs.getString(3)+t+工资:+rs.getString(4);rs.close();stmt.close();catch(SQLExceptione)System.out.println(SQLException:+e.getMessage();,32,运行结果,33,插入记录,Connectioncon=DriverManager.getConnection(jdbc:odbc:myDB1,yao,123456);Statementstmt=con.createStatement();Stringsqlstr=insertintoemployeevalues(6001,张兵,男,2400);stmt.executeUpdate(sqlstr);stmt.executeUpdate(insertintoemployeevalues(7001,李红,女,2500);,34,importjava.sql.*;classInsert1publicstaticvoidmain(Stringargs)tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundExceptione)System.out.println(SQLException:+e.getMessage();tryConnectioncon=DriverManager.getConnection(jdbc:odbc:myDB1,yao,123456);Statementstmt=con.createStatement();Stringsqlstr=insertintoemployeevalues(6001,张兵,男,2400);stmt.executeUpdate(sqlstr);stmt.executeUpdate(insertintoemployeevalues(7001,李红,女,2500);stmt.close();con.close();catch(SQLExceptione)System.out.println(SQLException:+e.getMessage();,35,修改记录,Connectioncon=DriverManager.getConnection(jdbc:odbc:myDB1,yao,123456);Statementstmt=con.createStatement();Stringsql=updateemployeesetno=3101+wherename=张兵;stmt.executeUpdate(sql);sql=updateemployeesetsalary=2500whereno=2001;stmt.executeUpdate(sql);,36,删除记录,Connectioncon=DriverManager.getConnection(jdbc:odbc:myDB1,yao,123456);Statementstmt=con.createStatement();Stringsql=deletefromemployeewhereno=3101;stmt.executeUpdate(sql);stmt.close();,37,建立表,Connectioncon=DriverManager.getConnection(jdbc:odbc:myDB1,yao,123456);Statementstmt=con.createStatement();Stringsql=Createtablestudent(s_numchar(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论