Java网络编程原理与JSP-Web开发核心技术--09第九章-JSP数据库编程技术新课件.ppt
《Java网络编程原理与JSP-Web开发核心技术--09第九章-JSP数据库编程技术新课件.ppt》由会员分享,可在线阅读,更多相关《Java网络编程原理与JSP-Web开发核心技术--09第九章-JSP数据库编程技术新课件.ppt(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java网络编程原理与网络编程原理与JSPWeb核心核心开发技术开发技术 第九章JSP数据库编程技术n n9.1 JDBC9.1 JDBC9.1 JDBC9.1 JDBC概述概述概述概述n n9.29.29.29.2 MySQLMySQLMySQLMySQL数据库的安装与配置数据库的安装与配置数据库的安装与配置数据库的安装与配置 n n9.3 9.3 9.3 9.3 连接数据库连接数据库连接数据库连接数据库 n n9.49.49.49.4 数据库高级操作数据库高级操作数据库高级操作数据库高级操作 n n9.5 9.5 9.5 9.5 数据库连接池技术数据库连接池技术数据库连接池技术数据库连接池
2、技术 n n9.6 9.6 9.6 9.6 应用实例应用实例应用实例应用实例 29.1 JDBC概述n9.1.1JDBC工作原理工作原理n9.1.2JDBCAPI简介简介39.1 JDBC概述n9.1.1JDBC工作原理工作原理nJava程序通过JDBCAPI来访问数据库。JDBCAPI主要位于JDK的java.sql包中,它为Java程序访问数据库提供了统一的编程接口,但对接口的具体实现需要数据库的设计者完成,JDBC的驱动器封装了与各种数据库服务器通信的细节。实现调用Java 程序JDBC API各种数据库管理系统连接JDBC 驱动器49.1 JDBC概述n9.1.1JDBC工作原理工作原
3、理njava.sql.DriverManager类,已经由Sun公司实现,该类负责管理注册到系统中的JDBC驱动器,并能通过驱动器实现与数据库服务器建立连接。njava.sql.Driver接口,由Sun公司制定,为数据库服务提供商提供了开发JDBC驱动器的统一接口。nJDBC驱动器实现了java.sql.Driver接口,由数据库供应商创建,负责与特定的数据库建立连接,处理通信细节,Java程序要访问数据库,必须先获得相应的JDBC驱动器,并将其注册到JDBC驱动器管理器中。nJDBC驱动器可分为以下四类:nJDBC-ODBC驱动器nJDBC本地代码驱动器nJDBC网络驱动器n纯纯JDBC驱
4、动器驱动器59.1 JDBC概述n9.1.2JDBCAPI简介简介nJDBCAPI位于java.sql包中,使用JDBC的程序要导入该包。n1Driver接口接口n由由Sun公司制定,为数据库服务提供商提供了开发公司制定,为数据库服务提供商提供了开发JDBC驱动器的统一接口,所有驱动器的统一接口,所有JDBC驱动器都必须实现该接口。使用驱动器都必须实现该接口。使用JDBC驱动器前,要将其对应的类库设置到驱动器前,要将其对应的类库设置到classpath中,然后在程序中通过中,然后在程序中通过Class.forName()方法对其加载。方法对其加载。n如果使用的是如果使用的是JDBC-ODBC的
5、方法,则使用如下的语句:的方法,则使用如下的语句:nClass.forName(“sun.jdbc.odbc.Jdbc.OdbcDriver”);n如果使用的是如果使用的是JDBC,则使用以下的语句:,则使用以下的语句:nClass.forName(“driver_class_name”);n例如:例如:nClass.forName(“com.Microsoft.jdbc.sqlserver.SQLServerDriver”);/SQLServernClass.forName(“org.gjt.mm.mysql.Driver”);/MySQLnClass.forName(“Oracle.jdb
6、c.driver.OracleDriver”);/Oracle69.1 JDBC概述n9.1.2JDBCAPI简介简介n2DriverManager类类n该类负责管理注册到系统中的该类负责管理注册到系统中的JDBC驱动器,已经由驱动器,已经由Sun公司实现,并能通过特定驱动器实现与数据公司实现,并能通过特定驱动器实现与数据库服务器建立连接。该类主要定义以下几个方法:库服务器建立连接。该类主要定义以下几个方法:nregisterDriver(Driverdriver):用来在:用来在DriverManager类中注册类中注册JDBC驱动器。驱动器。ngetConnection():可以创建一个数
7、据库连接对象。:可以创建一个数据库连接对象。n例如:例如:DriverManager.getConnection(“驱动类型:数据源驱动类型:数据源”,”用户名用户名”,”密码密码”)n当驱动类型是当驱动类型是JDBC-ODBC时用时用JDBC:ODBC,如果是,如果是JDBC时就用时就用JDBC。不同数据库。不同数据库系统对应的数据源格式有所不同:系统对应的数据源格式有所不同:nDriverManager.getConnection(“jdbc:odbc:DSname”,”用户名用户名”,”密码密码”);/JDBC-ODBCnDriverManager.getConnection(“jdbc
8、:microsoft:sqlserver:/主机主机:端口号端口号;DatabaseName=数据库名数据库名”,“用户名用户名”,“密码密码”);/SQLServernDriverManager.getConnection(“jdbc:mysql:/主机:端口号主机:端口号/数据库名数据库名”,“用户用户名名”,“密码密码”);/MySQLnDriverManager.getConnection(“jdbc:Oracle:thin:主机:端口号:数据库名主机:端口号:数据库名”,“用户名用户名”,“密码密码”);/Oracle79.1 JDBC概述n9.1.2JDBCAPI简介简介n3Con
9、nection接口接口n该接口代表与一个特定数据库的会话,即数据库的连接。通过该接口可以向数据库发送该接口代表与一个特定数据库的会话,即数据库的连接。通过该接口可以向数据库发送SQL语句并取得返回结果,该接口主要定义以下几个方法:语句并取得返回结果,该接口主要定义以下几个方法:nclose()/用来关闭数据库连接,立即释放用来关闭数据库连接,立即释放JDBC资源。资源。ngetAutoCommit()/用于获得当前自动提交状态。默认情况下,每执行一个用于获得当前自动提交状态。默认情况下,每执行一个SQL语句后,语句后,Connection会自动地提交更改。如果禁止自动提交,必须进行显式的提会自
10、动地提交更改。如果禁止自动提交,必须进行显式的提交。交。nsetAutoCommit()/用于设置连接是否处于自动提交状态。用于设置连接是否处于自动提交状态。ncommit()/提交上一次操作后的更改,使之成为永久的更改,只有当禁止自动提提交上一次操作后的更改,使之成为永久的更改,只有当禁止自动提交时可以使用该方法。交时可以使用该方法。nrollback()/回滚从上一次操作后的所有更改。回滚从上一次操作后的所有更改。ncreateStatement()/用于创建用于创建SQL语句对象。返回的对象可用于执行基本的语句对象。返回的对象可用于执行基本的SQL语句,可以带一些参数,例如:语句,可以带
11、一些参数,例如:nStatementstatement=connection.createStatement(intType,intconcurrency);89.1 JDBC概述n9.1.2JDBCAPI简介简介n4Statement接口接口n该接口提供了用于执行一条静态的该接口提供了用于执行一条静态的SQL语句并获取它产生的结果的方法,任何时候每条语句并获取它产生的结果的方法,任何时候每条语句仅能打开一个语句仅能打开一个ResultSet,ResultSet是语句执行后返回的记录结果集。该接口定是语句执行后返回的记录结果集。该接口定义的常用方法如下:义的常用方法如下:nexecute(St
12、ringsql)/执行各种执行各种SQL语句。返回值布尔型,如果返回语句。返回值布尔型,如果返回true,则表,则表明有结果集,可通过明有结果集,可通过getResultSet()获得结果集。获得结果集。nexecuteQuery()/执行一条返回单个结果集的执行一条返回单个结果集的select语句,返回值是语句,返回值是ResultSet类型。类型。nexecuteUpdate()/执行执行SQL的的INSERT、UPDATE和和DELETE语句。返回受语语句。返回受语句影响的记录行数。句影响的记录行数。ngetResultSet()/获得当前的获得当前的ResultSet结果。结果。nge
13、tUpdateCount()/获得受语句影响的记录行数,返回值是获得受语句影响的记录行数,返回值是int型数据,如果结型数据,如果结果是一个果是一个ResultSet或没有其他结果,返回或没有其他结果,返回-1。nclose()/关闭关闭Statement对象,立即释放相应对象,立即释放相应JDBC资源,同时关闭与之相关联资源,同时关闭与之相关联的的ResultSet对象。对象。99.1 JDBC概述n9.1.2JDBCAPI简介简介n5PreparedStatementn它从它从Statement继承而来,该接口提供封装一条预编译的继承而来,该接口提供封装一条预编译的SQL语句的功能,可用于
14、高语句的功能,可用于高效地多次执行该语句,该接口定义的常用方法如下:效地多次执行该语句,该接口定义的常用方法如下:nsetBoolean()/设置布尔型参数值。设置布尔型参数值。nsetByte()/设置字节型参数值。设置字节型参数值。nsetBytes()/设置字节数组型参数值。设置字节数组型参数值。nsetDate()/设置日期型参数值。设置日期型参数值。nsetDouble()/设置双精度型参数值。设置双精度型参数值。nsetFloat()/设置单精度型参数值。设置单精度型参数值。nsetInt()/设置整型参数值。设置整型参数值。nsetShort()/设置短整型参数值。设置短整型参数
15、值。nsetString()/设置字符串型参数值。设置字符串型参数值。nclearParameters()/立即清除当前参数值内容。立即清除当前参数值内容。109.1 JDBC概述n9.1.2JDBCAPI简介简介n6CallableStatementn继承自继承自PreparedStatement,用来执行数据库中的存储过程。,用来执行数据库中的存储过程。JDBC允许以所有允许以所有RDBMS的标准方式调用的标准方式调用存储过程,具体语法格式如下:存储过程,具体语法格式如下:n?=call?,?/包含结果参数的格式包含结果参数的格式ncall?,?/不包含结果参数的格式不包含结果参数的格式n
16、可用可用PreparedStatement接口的接口的set方法设置方法设置IN参数值,所有参数值,所有OUT参数的类型必须在执行该存储过程之参数的类型必须在执行该存储过程之前注册,执行后的参数值用该接口提供的前注册,执行后的参数值用该接口提供的get方法可以获得,该接口定义的常用方法如下:方法可以获得,该接口定义的常用方法如下:ngetBoolean()/获得一个获得一个BIT参数的值,作为一个参数的值,作为一个boolean值返回。值返回。ngetByte()/获得一个获得一个TINYINT参数的值,作为一个参数的值,作为一个byte值返回。值返回。ngetBytes()/获得一个获得一个
17、BINARY或或VARBINARY参数的值,作为一个参数的值,作为一个byte值返回。值返回。ngetDate()/获得一个获得一个Date参数的值,作为一个参数的值,作为一个Date值返回。值返回。ngetDouble()/获得一个获得一个double参数的值,作为一个参数的值,作为一个double值返回。值返回。ngetFloat()/获得一个获得一个float参数的值,作为一个参数的值,作为一个float值返回。值返回。ngetInt()/获得一个获得一个integer参数的值,作为一个参数的值,作为一个int值返回。值返回。ngetLong()/获得一个获得一个float参数的值,作为
18、一个参数的值,作为一个long值返回。值返回。ngetShort()/获得一个获得一个smallint参数的值,作为一个参数的值,作为一个short值返回。值返回。ngetString()/获得一个获得一个CHAR、VARCHAR或或LONGVARCHAR参数的值,作为一个参数的值,作为一个String值返回。值返回。119.1 JDBC概述n9.1.2JDBCAPI简介简介n7ResultSet接口接口nResultSet接口用来接收执行接口用来接收执行SQL查询语句后得到的记录集,查询语句后得到的记录集,next()把当前记录指针往下移动一行时,可用把当前记录指针往下移动一行时,可用get
19、()方方法可得到记录中不同列的数据,法可得到记录中不同列的数据,getXXXX()方法获取当前行的列值,可通过使用列的索引或名字来获取值。通常使方法获取当前行的列值,可通过使用列的索引或名字来获取值。通常使用列索引会更有效,列索引从用列索引会更有效,列索引从1开始。开始。getXXXX()方法中的列名是大小写敏感的。当使用列名执行一个方法中的列名是大小写敏感的。当使用列名执行一个getXXXX()方法时,如果几个列有同样的名字,则返回第一个匹配的列。,该接口定义的常用方法如下:方法时,如果几个列有同样的名字,则返回第一个匹配的列。,该接口定义的常用方法如下:nfirst()/当记录指针可以上下
20、移动查询时移动当前记录指针到第一行。当记录指针可以上下移动查询时移动当前记录指针到第一行。nlast()/当记录指针可以上下移动查询时移动当前记录指针到最后一行。当记录指针可以上下移动查询时移动当前记录指针到最后一行。nnext()/把当前记录指针往下移一行。把当前记录指针往下移一行。ResultSet初始定位于它的第一行之前。如果当前行有效,返回初始定位于它的第一行之前。如果当前行有效,返回true;如果没有更多的行则返回;如果没有更多的行则返回false。nprevious()/当记录指针可以上下移动查询时把当前记录指针向上移动一行。当移动到第一行之前时返回当记录指针可以上下移动查询时把当
21、前记录指针向上移动一行。当移动到第一行之前时返回false,否则返回,否则返回true。nisFirst()/当记录指针可以上下移动查询时判断当前记录指针是否在第一行。当记录指针可以上下移动查询时判断当前记录指针是否在第一行。nisLast()/当记录指针可以上下移动查询时判断当前记录指针是否在最后一行。当记录指针可以上下移动查询时判断当前记录指针是否在最后一行。ngetBoolean()/把当前行的列值作为一个把当前行的列值作为一个boolean值获取,如果列值为空则返回值获取,如果列值为空则返回false。ngetInt()/把当前行的列值作为一个把当前行的列值作为一个int值获取,如果列
22、值为空则返回值获取,如果列值为空则返回0。ngetLong()/把当前行的列值作为一个把当前行的列值作为一个long值获取,如果列值为空则返回值获取,如果列值为空则返回0。ngetShort()/把当前行的列值作为一个把当前行的列值作为一个short值获取,如果列值为空则返回值获取,如果列值为空则返回0。ngetString()/把当前行的列值作为一个把当前行的列值作为一个String值获取,如果列值为空则返回值获取,如果列值为空则返回null。ngetRow()/当记录指针可以上下移动查询时返回当前记录指针所指向的行号,行号从当记录指针可以上下移动查询时返回当前记录指针所指向的行号,行号从1
23、开始,如果记录集中开始,如果记录集中没有记录则返回没有记录则返回0。nclose()/立即释放该语句的数据库和立即释放该语句的数据库和JDBC资源。资源。129.2 MySQL数据库的安装与配置 n9.2.1安装安装MySQL5.0n9.2.2使用使用MySQL5.0139.2 MySQL数据库的安装与配置 n9.2.1安装安装MySQL5.0nMySQL是一个多用户、多线程的强壮的关系数据库服务器,MySQL的官方网站提供了免费安装软件nMySQL5.0的安装比较简单,首先从MySQL的官方网站下载软件,双击安装程序,出现安装界面,接下来:选择安装类型,确定安装目录,注册账号,选择配置方式。
24、149.2 MySQL数据库的安装与配置 n9.2.2使用使用MySQL5.0nMySQL在安装根目录的bin子目录中提供了mysql.exe文件,它是客户程序,支持在命令行中输入SQL语句,启动时需要输入root用户的密码。n目前,有很多可视化的工具软件提供了对MySQL系统的支持,例如:MySQL-Front,它可以连接到MySQL数据库,在图形界面中进行对数据库和数据表进行操作。n安装MySQL-Front软件。n为方便以后程序的运行,我们可以通过MySQL-Front软件在MySQL数据库中创建名为shopdb的数据库,在数据库中创建books表和accounts表,并且向表中插入数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 网络 编程 原理 JSP Web 开发 核心技术 09 第九 数据库 技术 新课
链接地址:https://www.taowenge.com/p-73430826.html
限制150内