《Java程序设计项目案例化教程》课件第9章-数据库编程.ppt

上传人(卖家):momomo 文档编号:4325076 上传时间:2022-11-29 格式:PPT 页数:35 大小:937.50KB
下载 相关 举报
《Java程序设计项目案例化教程》课件第9章-数据库编程.ppt_第1页
第1页 / 共35页
《Java程序设计项目案例化教程》课件第9章-数据库编程.ppt_第2页
第2页 / 共35页
《Java程序设计项目案例化教程》课件第9章-数据库编程.ppt_第3页
第3页 / 共35页
《Java程序设计项目案例化教程》课件第9章-数据库编程.ppt_第4页
第4页 / 共35页
《Java程序设计项目案例化教程》课件第9章-数据库编程.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、Java面向对象程序设计第9章 数据库编程 本章内容了解什么是JDBC掌握JDBC的常用类的使用掌握JDBC的编程过程掌握通过JDBC进行数据库操作9.1引例 n异常是用来处理程序错误的有效机制。通过系统抛出的异常,程序可以很容易地捕获并处理发生的异常情况。对于一个应用软件,异常处理是不可缺少的。为了说明什么是异常,我们先来看下面的例子。JDBC概述(JDBC驱动程序)JDBC(Java DataBase Connectivity)java数据库连接,Java语言访问数据库的一种规范,是一套API用于执行SQL语句的JAVA API,由java.sql、javax.sql包组成。它由一组用 J

2、ava 编程语言编写的类和接口组成,能够用纯Java API 来编写数据库应用程序。Java中JDBC驱动程序有四种。第一种:JDBC-ODBC桥。JDBC-ODBC是一种JDBC驱动程序,是用于将JDBC中的方法调用转换成ODBC中相应的方法调用,再通过ODBC访问数据库。由于微软推出的ODBC比Sun公司推出JDBC要早,所以绝大多数的数据库都可以通过ODBC来访问,当Sun公司推出JDBC的时候,为了支持更多的数据库,提供了JDBC-ODBC桥。这样我们就可以使用JDBC的API通过ODBC去访问数据库;第二种:本地API Java驱动程序。本地API 驱动程序(native-API p

3、artly-Java driver),直接将JDBC API 翻译成具体数据库的API,将JDBC调用转换为对数据库的客户端API的调用;第三种:JDBC网络纯Java驱动程序。Java应用程序通过JDBC网络纯Java驱动程序将JDBC调用发送给应用程序服务器,应用程序服务器与数据库完成通信,从而完成请求;第四种:纯Java驱动。Java应用程序通过纯Java驱动程序与支持JDBC的数据库直接通信。这方式是效率最高的访问方式。访问不同厂商的数据库,需要不同的JDBC驱 动 程序。目前,几个主要的数据厂商(Oracle、Microsoft、Sybase等)都提供了对JDBC的支持。Java 具

4、有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java 应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正是作为此种用途的机制。应用程序、JDBC API、数据库驱动及数据库之间的关系如下图所示:图9.1 应用程序使用JDBC访问数据库方式JDBC常用接口和类9.3.2JDBC常用接口和类在JDBC之中的核心组成部分:DriverManager类、Connection接口、Statement接口、PreparedStatement接口、ResultSet接口,即:五个接口一个类,就构成了整个JDBC的组成。1、DriverM

5、anager类DriverManager 类用来管理数据库中的所有驱动程序;是JDBC的管理层,作用于用户和驱动程序之间,跟踪可用的驱动程序,并在数据库的驱动程序之间建立连接。DriverManager通过以下静态方法中的一种尝试从一组已注册的JDBC驱动程序中选择适当的驱动程序:表9.1 DriverManager类的方法public static final String URL=jdbc:mysql:/localhost:3306/mydatabase;public static final String USER=root;public static final String PASS

6、WORD=123456;Connection conn=DriverManager.getConnection(URL,USER,PASSWORD);方法主要功能getConnection(String url)尝试建立与给定数据库URL的连接getConnection(String url,Properties info)尝试建立与给定数据库URL的连接,info作为连接参数的任意字符串标签/值对的列表;getConnection(String url,String user,String password)尝试建立与给定数据库URL的连接,user正在连接的数据库用户,password用户

7、密码Connection接口Connection接口代表与特定的数据库连接,在连接上下文中执行SQL语句并返回结果。下面表中是Connection的常用的方法:表9.2 Connection常用方法Connection conn=DriverManager.getConnection(URL,USER,PASSWORD);Statement stmt=conn.createStatement();方法主要功能void()Connection发布此Connection对象的数据库和JDBC资源,而不是等待它们自动释放。()创建一个Statement对象,用于将SQL语句发送到数据库。Prepar

8、edStatement prepareStatement(String sql)创建一个 PreparedStatement对象,用于将参数化的SQL语句发送到数据库。Statement接口Statement接口用于在已经建立连接的基础上向数据库发送SQL语句。在JDBC中有3中Statement对象,分别是Statement、PreparedStatement和CallableStatement。Statement对象用于执行不带参数的简单的SQL语句;PreparedStatement继承了Statement,用来执行动态的SQL语句;CallableStatement继承了Prepare

9、dStatement,用来执行数据库的存储过程的调用。下面表中是Statement的常用的方法:表9.3 Statement常用的方法Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(select*from userOne);PreparedStatment接口PreparedStatement可以对SQL语句进行预编译,并且可以存储在PreparedStatement对象中,当多次执行SQL语句时可以提高效率,并可以提高安全性 防止恶意SQL表9.4 PreparedStatement的常用方法方法主要功

10、能ResultSet executeQuery(String sql)执行给定的SQL语句,该语句返回单个 ResultSet对象int executeUpdate(String sql)执行给定的SQL语句,这可能是 INSERT,UPDATE,或 DELETE语句,或者不返回任何内容,如SQL DDL语句的SQL语句close()Statement对象的数据库和JDBC资源,而不是等待它自动关闭时发生。stmt.executeUpdate(insert into tb_name(c1,c2,c3)values(+v1+,+v2+,+v3+);perstmt=con.prepareState

11、ment(insert into tb_name(col1,col2,col3)values(?,?,?);perstmt.setString(1,var1);perstmt.setString(2,var2);perstmt.setString(3,var3);perstmt.executeUpdate();方法主要功能ResultSet executeQuery()执行此 PreparedStatement对象中的SQL查询,并返回查询 PreparedStatement的 ResultSet对象int executeUpdate()执行在该SQL语句PreparedStatement对象

12、,它必须是一个SQL数据操纵语言(DML)语句,如INSERT,UPDATE或DELETE;或不返回任何内容的SQL语句,例如DDL语句close()PreparedStatement对象的数据库和JDBC资源,而不是等待它自动关闭时发生。ResultSet接口类似于一个临时表,用来暂时存放数据库查询操作所获得的结果集。ResultSet实例具有指向当前数据行的指针,指针开始的位置在第一条记录的前面,通过next()方法可将指针向下移。下面表中是ResultSet的常用的方法:表9.5 ResultSet的常用方法ResultSet rs=stmt.executeQuery(select*fr

13、om userOne);while(rs.next()System.out.println(rs.getString(1);rs.close();ResultSet接口方法主要功能boolean next()将光标从当前位置向前移动一行getString(int columnIndex)这个检索的当前行中指定列的值 ResultSet对象为 String的Java编程语言getString(String columnLabel)这个检索的当前行中指定列的值 ResultSet对象为 String的Java编程语言close()ResultSet释放此 ResultSet对象的数据库和JDBC资

14、源,而不是等待其自动关闭时发生。JDBC编程步骤通过JDBC为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。阐述JDBC编程步骤以java程序如何连接MySQL数据库的为例。下面主要介绍JDBC连接MySQL数据库操作的步骤。在使用JDBC编程之前,要做的就是安装MySQL数据库,设置用户名为:root,设置密码为:123456,再建立数据库mydatabase,之后再在mydatabase数据库下建立表student,作为本章所有案例使用。表9.6student中的字段表9

15、.7student中的内容字段名类型长度能否为空主键IDint8否是Namevarchar10否 sexchar1否 majorvarchar20否 phoneint13能 Emailvarchar30能IDNamesexmajorphoneEmail20180101赵锦毫男电子学与信息系统20180102赵业超男计算机软件20180103陈泊芝女计算机及应用20180104赵广然男矿物岩石材料学20180105李馨漫女微电子学20180106赵 强男电子学与信息系统20180107赵诚晨男矿物岩石材料学20180108李长白男计算机软件20180109陈泊依女计算机软件20180110王洋平

16、男微电子学20180111王显茹女微电子学20180112李风念男电子学与信息系统20180113赵丽凡女矿物岩石材料学20180114王白诗女计算机软件20180115李雄继男计算机软件20180116王 哲男计算机软件20180117李茹倩女计算机及应用20180118王雅腾女矿物岩石材料学20180119赵婉娴女计算机软件20180120王中齐男电子学与信息系统JDBC驱动程序JDBC驱动是JDBC API接口的具体实现,不同数据库的实现细节不同。驱动类型(四种类型),一般优先使用纯Java的驱动,已获得更好的效率。这些是各个数据库厂家根据JDBC的规范制作的JDBC实现类各种数据库的驱

17、动类名如下:表9.6 部分数据库的驱动类名数据库驱动程序包名驱动类的名字JDBC URLJDBC URLSQL Servermsbase.jar mssqlserver.jar msutil.jarcom.microsoft.jdbc.sqlserver.SQLServerDriverjdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=dbnameOracleojdbc14.jaroracle.jdbc.driver.OracleDriverjdbc:oracle:thin:127.0.0.1:1521:dbnameMySQLmysql-

18、connector-java-3.1.11-bin.jarcom.mysql.jdbc.Driverjdbc:mysql:/localhost:3306/mydb在注册JDBC之前首先一定要导入驱动类的架包,例如注册JDBC驱动程序连接MySQL数据库之前要导入驱动类的架包:mysql-connector-java-3.1.11-bin.jar在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的。Class.forName(name);name是一个字符串,而这个字符串也就是要注册JDBC驱动程序连接的数据库的驱动类的名字。例如注册JDBC驱动程序连接MySQL数据库C

19、lass.forName(com.mysql.jdbc.Driver);注册JDBC驱动程序连接数据库和数据库建立连接 通过DriverManager取得Connection对象之后,实际上就表示数据库连接上了,连接上数据库就可以进行数据库的更新及查询操作,但是操作完成之后,数据库连接也必须要关闭。例如下面使用Java中JDBC与MySQL数据库连接:public static final String DBURL=jdbc:mysql:/localhost:3306/mydatabase;Connection conn=DriverManager.getConnection(DBURL,us

20、er name,password);创建执行SQL对象与执行语句(发送SQL语句)通过连接对象Connection获取可以执行sql语句的对象Statement,然后创建执行SQL的对象Statement。Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(sql);/参数为sql语句通过连接对象Connection获取已创建SQL语句的对象PreparedStatement,然后执行SQL语句。PreparedStatment ps=conn.prepareStatement(sql);/参数为sql语句R

21、esultSet rs=ps.executeQuery();处理数据库返回的结果 ResultSet接口通常用于保存数据库的结果集ResultSet rs=stm.executeQuery(查询语句);表9.7 ResultSet的常用方法 方法主要功能next()将指针从当前位置向下移一行getInt(int columnIndex)columnIndex是字段的序号,第一个字段(列)是 1,第二个字段(列)是 2getInt(columnName)columnName是字段名称注:查询后ResultSet的默认当前位置是0行,如果要将当前位置移到第一行则要调用一下next()方法;publ

22、ic void select()tryResultSet rs=stmt.executeQuery(select*from student);while(rs.next()System.out.print(rs.getInt(ID)+t);System.out.print(rs.getString(Name);System.out.println();catch(SQLExceptione)System.out.println(数据库访问错误+e);释放资源(关闭连接)。public static void closeConnection(ResultSet rs,Statement stmt

23、,Connection con)try if(rs!=null)rs.close();if(stmt!=null)stmt.close();if(con!=null)con.close();catch(SQLException e)e.printStackTrace();【例9-1】:通过案例来掌握使用JDBC完成数据库编程步骤。import java.sql.*;public class Demo9_01 public static final String DBDRIVER=com.mysql.jdbc.Driver;public static final String DBURL=jdb

24、c:mysql:/localhost:3306/mydatabase+?characterEncoding=utf8&useSSL=true;public static final String DBUSER=root;public static final String PASSWORD=123456;public static void main(String args)throws Exception Connection conn=null;/每一个Connection对象表示一个数据库连接 Statement stmt=null;/数据库操作对象 Class.forName(DBDR

25、IVER);/加载驱动程序conn=DriverManager.getConnection(DBURL,DBUSER,PASSWORD);stmt=conn.createStatement();/找到Statement接口对象 String sql=SELECT*FROM student where sex=女;ResultSet rs=stmt.executeQuery(sql);/查询 System.out.println(学号 姓名性别专业+电话 Email);while(rs.next()int id=rs.getInt(ID);String name=rs.getString(Nam

26、e);String sex=rs.getString(sex);String major=rs.getString(major);int phone=rs.getInt(phone);String email=rs.getString(Email);System.out.println(+id+name+sex+major+phone+email);rs.close();stmt.close();/关闭操作,如果不关闭操作,关闭连接也是一样的conn.close();/关闭连接程序运行结果:JDBC-ODBC编程步骤讲完使用JDBC完成MySQL数据库编程步骤,我们来讲一下使用JDBC-ODB

27、C完成MySQL数据库编程步骤。通过JDBC-ODBC连接Mysql数据库,与JDBC直接连接数据库差异不大。下面主要介绍JDBC-ODBC连接MySQL数据库操作的步骤。打开控制面板下的管理工具中的odbc数据源(根据数据库安装的不同,选择32 位ODBC 数据源或64位ODBC 数据源),如图9.1所示:再用户DSN下点击添加,如图9.2所示:之后选择:MySQL ODBC 8.0ANSI Driver,点击完成,如图9.3所示:看见用户DSN中有MySQL,点击确定按钮,如图9.4所示注册JDBC-ODBC驱动程序为:sun.jdbc.odbc.JdbcOdbcDriver,也只能使用这

28、一种驱动程序。注册JDBC-ODBC驱动程序连接数据库与JDBC连接数据库一样使用的是Class.forName(name);而不同的是name这个字符串。JDBC连接数据库的这个字符串也就是要注册JDBC驱动程序连接的数据库的驱动类的名字,而JDBC-ODBC连接数据库的这个字符串只能使用一种:sun.jdbc.odbc.JdbcOdbcDriver。Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);注册驱动(注册JDBC-ODBC驱动程序连接数据库)JDBC-ODBC连接数据库也是通过DriverManager取得Connection对象之后,不同的是

29、连接使用的URL,JDBC连接数据库使用的URL是根据连接的数据库不同使用的URL也不同,而JDBC-ODBC连接数据库使用的URL:jdbc:odbc:MySQL,URL中的MySQL就是上面的Data Source Name。例如下面使用Java中JDBC-ODBC与MySQL数据库连接:public static final String DBURL=jdbc:odbc:MySQL;Connection conn=DriverManager.getConnection(DBURL,user name,password);JDBC-ODBC连接数据库后面的步骤与JDBC连接数据库后面的步骤

30、基本相同。和数据库建立连接【例9-2】:通过案例来掌握使用JDBC-ODBC完成数据库编程步骤。import java.sql.*;public class Demo9_02 public static final String DBDRIVER=sun.jdbc.odbc.JdbcOdbcDriver;public static final String DBURL=jdbc:odbc:MySQL;public static final String DBUSER=root;public static final String PASSWORD=123456;public static vo

31、id main(String args)throws ExceptionConnection conn=null;/每一个Connection对象表示一个数据库连接Statement stmt=null;/数据库操作对象Class.forName(DBDRIVER);/加载驱动程序conn=DriverManager.getConnection(DBURL,DBUSER,PASSWORD);stmt=conn.createStatement();/找到Statement接口对象String sql=SELECT*FROM student where sex=男;ResultSet rs=stm

32、t.executeQuery(sql);/查询System.out.println(学号 +姓名 +性别 +专业 +电话 +Email);while(rs.next()int id=rs.getInt(ID);String name=rs.getString(Name);String sex=rs.getString(sex);String major=rs.getString(major);int phone=rs.getInt(phone);String email=rs.getString(Email);System.out.println(+id+name+sex+major+phon

33、e+email);rs.close();stmt.close();/关闭操作,如果不关闭操作,关闭连接也是一样的conn.close();/关闭连接程序运行结果:JDBC数据库操作(查询操作)查询应该返回数据给用户浏览,所以在整个进行查询的操作之中,就必须有一种结构,可以装下整个的查询结果,而这个结构就使用ResultSet表示。当所有的记录返回到ResultSet的时候,所有的内容都是按照数据类型存放的,所以用户只需要按照数据类型一行行的取出数据即可。【例9-3】:通过案例来掌握使用ResultSet取出数据import java.sql.*;public class Demo9_03 pu

34、blic static final String DBDRIVER=com.mysql.jdbc.Driver;public static final String DBURL=jdbc:mysql:/localhost:3306/mydatabase+?characterEncoding=utf8&useSSL=true;public static final String DBUSER=root;public static final String PASSWORD=123456;public static void main(String args)throws Exception Co

35、nnection conn=null;Statement stmt=null;Class.forName(DBDRIVER);conn=DriverManager.getConnection(DBURL,DBUSER,PASSWORD);stmt=conn.createStatement();String sql=SELECT*FROM student where sex=男;ResultSet rs=stmt.executeQuery(sql);System.out.println(学号 姓名性别专业+电话 Email);while(rs.next()int id=rs.getInt(ID)

36、;String name=rs.getString(Name);String sex=rs.getString(sex);String major=rs.getString(major);int phone=rs.getInt(phone);String email=rs.getString(Email);System.out.println(+id+name+sex+major+phone+email);rs.close();stmt.close();conn.close();该程序的运行结果:在数据的更新操作之中,如果已经成功的执行了数据的更新,一定会返回更新的行数的。如果要想执行数据表操

37、作在Java之中可以使用Statement接口完成,但是如果要想取得Statement接口对象的话,必须依靠Connection接口完成,通过Connection接口中定义的了executeUpdate(String sql)方法完成更新、添加和删除操作。更新、添加和删除操作【例【例9-4】:通过案例掌握数据库表的数据插入操作。】:通过案例掌握数据库表的数据插入操作。SQL语法:语法:INSERT INTO 表名表名称称(字段字段,字段字段,.)VALUES(值值,值值,):import java.sql.*;public class Demo9_04 public static final

38、String DBDRIVER=com.mysql.jdbc.Driver;public static final String DBURL=jdbc:mysql:/localhost:3306/mydatabase+?characterEncoding=utf8&useSSL=true;public static final String DBUSER=root;public static final String PASSWORD=123456;public static void main(String args)throws Exception Connection conn=null

39、;Statement stmt=null;Class.forName(DBDRIVER);conn=DriverManager.getConnection(DBURL,DBUSER,PASSWORD);stmt=conn.createStatement();String sql=INSERT INTO student(Name,sex,major,phone,Email)+VALUES(萧风,男,计算机及应用,1327853456,);int num=stmt.executeUpdate(sql);System.out.println(更新行数:+num);stmt.close();conn.

40、close();该程序的运行结果:【例9-6】:通过案例掌握数据库表的删除操作。SQL语法:DELETE FROM 表名称 WHERE 删除条件;import java.sql.*;public class Demo9_06 public static final String DBDRIVER=com.mysql.jdbc.Driver;public static final String DBURL=jdbc:mysql:/localhost:3306/mydatabase+?characterEncoding=utf8&useSSL=true;public static final St

41、ring DBUSER=root;public static final String PASSWORD=123456;public static void main(String args)throws Exception Connection conn=null;Statement stmt=null;Class.forName(DBDRIVER);conn=DriverManager.getConnection(DBURL,DBUSER,PASSWORD);stmt=conn.createStatement();String sql=DELETE FROM student WHERE i

42、d=20180115;int num=stmt.executeUpdate(sql);System.out.println(更新行数:+num);stmt.close();conn.close();该程序的运行结果:任务总结通过这一章的学习,了解了什么是JDBC,JDBC的一些常用类的使用,怎样进行JDBC的编程过程以及通过JDBC进行数据库操作等。JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API来编写数据库应用程序。常用类我们讲了DriverManager类,Connection接口,Statment接口以及PreparedStatment接口、Res

43、ultSet接口的常用方法和作用。JDBC编程步骤分为六步走:注册驱动、数据库建立连接、创建执行SQL对象、发送SQL语句、处理数据库返回的结果、关闭连接。任务练习1.要使用java程序访问数据库,则必须首先与数据库建立连接,在建立连接前,应加载数据库驱动程序,该语句为()。A Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”)B.DriverManage.getConnection(“”,”,”)C.Result rs=DriverManage.getConnection(“”,”,”).createStatement()D.Statement st=

44、DriverManage.getConnection(“”,”,”).createStaement()2.要使用java程序访问数据库,与数据库建立连接时的语句为()。A Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”)B.DriverManage.getConnection(“”,”,”)C.Result rs=DriverManage.getConnection(“”,”,”).createStatement()D.Statement st=DriverManage.getConnection(“”,”,”).createStaement()3.4

45、9.java程序与数据库连接后,需要查看某个表中的数据,使用下列哪个语句()。A.executeQuery()B.executeUpdate()C executeEdit()D.executeSelect()4.java程序与数据库连接后,需要查看某个表中的数据,使用下列哪个语句()。A.executeQuery()B.executeUpdate()C executeEdit()D.executeSelect()5.为了获取远程主机的文件内容,当创建URL对象后,需要使用哪个方法获取信息()A.getPort()B.getHost C.openStream()D.openConnection(

46、)6.建立一个MySQL数据库student,该数据库中有一个表user表,该表中至少有两个属性,一个是:用户名,一个是密码;建立一个登录界面,该界面上有两个按钮,一个登录按钮,一个是注册按钮,有两个文本框,在文本框中输入密码和用户名,与数据库user表相比较,如果有相关记录,则显示登录成功对话框,否则显示登录错误对话框;点击注册按钮,会把相关输入的用户名和密码写入到数据库中,并提示写入成功对话框。7.编写一个数据库程序,数据库student表(字段:ID,Name,JavaScore,PHPScore),实现录入学生成绩,修改学生成绩和查询学生成绩的功能。8.编写一个数据库程序,完成登录页面的实现,登录界面自行设计,用户输入的用户名和密码和数据库表中登记的用户名和密码一致,则进入主界面,否则会显示用户名或密码错误信息。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《Java程序设计项目案例化教程》课件第9章-数据库编程.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|