第11章 Java数据库编程.ppt
第第11章章Java数据库编程数据库编程学习导读学习导读n现在很多程序中都要涉及到有关数据库的操作,其中相当一部分程序还是以数据库为核心来组织整个系统的n本章将首先介绍关系数据库的简单内容n然后重点放在讲解Java中数据库编程的方法课程结构课程结构n关系数据库简介n结构化查询语言SQLn数据库连接nJDBC编程11.1关系数据库简介关系数据库简介n1.关系数据库模型关系数据库模型n关系模型由关系模型由Codd提出,它是考虑数据和数据间提出,它是考虑数据和数据间关系而得到的数据逻辑模型关系而得到的数据逻辑模型n一个关系型数据库通常由一个或多个表格的对一个关系型数据库通常由一个或多个表格的对象组成,数据库中的所有数据都被保存在这些表象组成,数据库中的所有数据都被保存在这些表中。中。n数据库中的每一个表都有表名,都由行和列组数据库中的每一个表都有表名,都由行和列组成,其中每一列包括了该列名称、数据类型以及成,其中每一列包括了该列名称、数据类型以及列的其他属性等信息;而行则具体包含某一列的列的其他属性等信息;而行则具体包含某一列的记录或数据记录或数据n见下表见下表11.1关系数据库简介关系数据库简介数据表数据表FirstnameLastnameAgeAddressCityLiMing45No.77ChanganRoadBeijingWangMing28No.88zhonghuaRoadBeijingZhangXiaogang40No.23GardonRoadShanghaiLiuLi35No.23GardonRoadShanghaiHongXiaoxiao25No.777ZhongshanRoadNanjing行行列列11.1关系数据库简介关系数据库简介n2数据库语言数据库语言n一种是定义数据库对象的数据定义语言(一种是定义数据库对象的数据定义语言(DataDefinitionLanguage,DDL););n另一种是定义数据对象处理的数据操纵语言另一种是定义数据对象处理的数据操纵语言(DataManipulationLanguage,DML)。)。n流行的查询语言流行的查询语言SQLSQL语言就提供了这两种子语言语言就提供了这两种子语言DDLDDL和和DML DML n3建立数据库例子建立数据库例子n工程略,见书工程略,见书P22711.2结构化查询语言结构化查询语言SQLn1.创建表格创建表格createtabletablename(column1datatypeconstraint,column2datatypeconstraint,column3datatypeconstraint);n例例createtableemployee(firstnamevarchar(15),lastnamevarchar(20),ageint,addressvarchar(30),cityvarchar(20);11.2结构化查询语言结构化查询语言SQLn2删除数据库表格删除数据库表格droptabletablenamen例例droptableemployee;11.2结构化查询语言结构化查询语言SQLn3数据查询数据查询selectcolumn1,column2,etcfromtablenamewherecondition;orderbycounmn1ASC|DESC,orderbycolumn2ASC|DESCn例如:例如:1)select*fromemployee;2)selectfirstname,lastnamefromemployee;3)select firstname,lastname from employee whereage30;11.2结构化查询语言结构化查询语言SQLn4向表中插入数据向表中插入数据insertintotablename(first_column,.last_column)values(first_value,.last_value);n例如:例如:insertintoemployee(firstname,lastname,age,address,city)values(Wu,Jun,20,No.11 Beijing Road,Wuhan);11.2结构化查询语言结构化查询语言SQLn5更新数据更新数据updatetablenameset columnname=newvalue,nextcolumn=newvalue2.wherecolumnnameOPERATORvalueand|orcolumnOPERATORvalue;n例如:例如:updateemployeesetage=age+10wherefirstname=Liandlastname=Ming;11.2结构化查询语言结构化查询语言SQLn6删除数据删除数据deletefromtablenamewherecolumnnameOPERATORvalueand|orcolumnOPERATORvalue;n例如:例如:deletefromemployeewherefirstname=Wuandlastname=Jun;11.3数据库连接数据库连接n1JDBC简介简介nJDBC是是JavaDataBaseConnection的简称,是的简称,是一种用一种用Java实现的数据库接口技术实现的数据库接口技术nJDBCJDBC由两层组成。由两层组成。n上面一层是上面一层是JDBC APIJDBC API,负责与负责与JavaJava应用程序通应用程序通信,向信,向JavaJava应用程序提供数据(应用程序提供数据(JavaJava应用程序通应用程序通过过JDBCJDBC中提供的相关类来管理中提供的相关类来管理JDBCJDBC的驱动程序)。的驱动程序)。n下面一层是下面一层是JDBC Driver APIJDBC Driver API,主要负责和具体主要负责和具体数据环境的连接数据环境的连接 n见下图见下图11.3数据库连接数据库连接11.3数据库连接数据库连接n利用利用JDBCDriverAPI访问数据库的不同方式访问数据库的不同方式n1 1)使用)使用JDBCJDBCODBCODBC桥实现桥实现JDBCJDBC到到ODBCODBC的转化,的转化,转化后就可以使用转化后就可以使用ODBCODBC的数据库专用驱动程序与的数据库专用驱动程序与某个特定的数据库相连某个特定的数据库相连 n2)法使法使JDBC与某数据库系统专用的驱动程序与某数据库系统专用的驱动程序相连,然后直接连入远端的数据库相连,然后直接连入远端的数据库n3)使用使用JDBC与一种通用的数据库协议驱动程与一种通用的数据库协议驱动程序相连,然后再利用中间件和协议解释器将这个序相连,然后再利用中间件和协议解释器将这个协议驱动程序与某种具体的数据库系统相连协议驱动程序与某种具体的数据库系统相连11.3数据库连接数据库连接n2用用JDBC连接数据库连接数据库n1)建立数据源建立数据源加载加载Java应用程序所用的数据库的驱动程序。在这里你可以选择应用程序所用的数据库的驱动程序。在这里你可以选择前面讲的三种方法中的一种。前面讲的三种方法中的一种。n2)建立连接建立连接 与与数据库建立连接的标准方法是调用方法:数据库建立连接的标准方法是调用方法:Drivermanger.getConnection(Stringurl,Stringuser,Stringpassword)。Drivermanger类用于处理驱动程序的调入,并且对新的数据库类用于处理驱动程序的调入,并且对新的数据库连接提供支持连接提供支持n3)执行)执行SQL语句语句 n见见例例11。1(要求首先建立数据库)要求首先建立数据库)11.4JDBC编程编程nJDBCAPI11.4JDBC编程编程n1DriverManagernDriverManager类是类是JDBC的管理层,作用于的管理层,作用于用户和驱动程序之间。它在数据库和相应驱动程用户和驱动程序之间。它在数据库和相应驱动程序之间建立连接序之间建立连接nDriverManager类类包包含含一一列列Driver类类,它它们们已已通通过过调调用用方方法法DriverManager.registerDriver对对自自己进行了注册己进行了注册例:例:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Stringurl=jdbc:odbc:company;Connectioncon=DriverManager.getConnection(url,userID,passwd);11.4JDBC编程编程n2StatementnStatement对象用于将对象用于将SQL语句发送到数据库语句发送到数据库中中n例:例:Connectioncon=DriverManager.getConnection(url,userID,passwd);Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery(SELECTa,b,cFROMTable2);11.4JDBC编程编程n3ResultSetnResultSet包含符合SQL语句中条件的所有行,n它通过一套get方法提供了对这些行中数据的访问nResultSet.next方法用于移动到ResultSet中的下一行,使下一行成为当前行。java.sql.Statementstmt=conn.createStatement();ResultSetrs=stmt.executeQuery(SELECT*FROMemployee);while(rs.next()/打印数据库中的数据System.out.print(rs.getString(1)+|);System.out.print(rs.getString(2)+|);System.out.print(rs.getInt(3)+|);System.out.print(rs.getString(4)+|);System.out.println(rs.getString(5);11.4JDBC编程编程n综合性实例综合性实例n例例11。3n例例11。4本章小节本章小节n这一章主要介绍了这一章主要介绍了n在在Java中如何对数据库编程;中如何对数据库编程;n关系数据库模型的基本理论;关系数据库模型的基本理论;nSQL语言的结构以及语言的结构以及n如何用如何用JDBC对数据库进行连接对数据库进行连接n如何用如何用JDBC对数据库进行编程对数据库进行编程