第7章-JSP中使用数据库幻灯片

合集下载

JSP中使用数据库

JSP中使用数据库

示UpdateRecord.tag返回的有关更新记录是否成功的信息。

3、编写一个JSP页面inputDeletedISBN.jsp和一个Tag 文件DelRecord.tag。

实验结果:见附页小结:本次试验中学习了如何连接数据库,如何查询、更新、删除信息等重要知识。

评定成绩:批阅教师:年月日实验前准备使用Microsoft Access 2003创建数据库Book,然后在数据库中再创建名为bookForm的表,设置表的字段和属性,如下图所示:在表bookForm中按格式要求输入内容,如下图所示:使用JDBC-ODBC桥接器方式和数据库建立连接,将数据库Book设置为名字为information 的数据源,如下图所示:实验一:编写一个JSP页面inputMess.jsp和一个Tag文件FindBook.tag,使用JDBC查询数据库中表的记录,结果如下:inputMess.jsp的代码如下所示:<%@ page contentType="text/html;charset=GB2312" %><%@ taglib tagdir="/WEB-INF/tags" prefix="findBook"%><HTML><Body bgcolor=cyan><center><form action="">输入查询内容:<Input type=text name="findContent" value="JSP"> <Select name="condition" size=1><Option Selected value="bookISBN">ISBN<Option value="bookName">书名<Option value="bookAuthor">作者<Option value="bookPublish">出版社<Option value="bookTime">出版时间<Option value="bookAbstract">内容摘要</Select><Br><INPUT type="radio" name="findMethod" value="start">前方一致<INPUT type="radio" name="findMethod" value="end">后方一致<INPUT type="radio" name="findMethod" value="contains">包含<Input type=submit value="提交"></form><%String findContent = request.getParameter("findContent");String condition = request.getParameter("condition");String findMethod = request.getParameter("findMethod");if(findContent==null){findContent="";}if(condition==null){condition="";}if(findMethod==null){findMethod="";}%><BR>查询到的图书:<findBook:FindBook dataSource="information"tableName="bookForm"findContent="<%=findContent%>"condition="<%=condition%>"findMethod="<%=findMethod%>"/><BR><%=giveResult%></form></BODY></HTML>FindBook.tag的代码如下所示:<%@ tag import="java.sql.*" %><%@ tag pageEncoding="gb2312" %><%@ attribute name="dataSource" required="true" %><%@ attribute name="tableName" required="true" %><%@ attribute name="findContent" required="true" %><%@ attribute name="condition" required="true" %><%@ attribute name="findMethod" required="true" %><%@ variable name-given="giveResult" variable-class="ng.StringBuffer" scope="AT_END" %><%byte b[]=findContent.getBytes("iso-8859-1");findContent=new String(b);try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){out.print(e);}Connection con;Statement sql;ResultSet rs;StringBuffer queryResult=new StringBuffer(); //查询结果String uri="jdbc:odbc:"+dataSource;try{ con=DriverManager.getConnection(uri,"","");sql=con.createStatement();String s="";if(findMethod.equals("start"))s= "select * from "+tableName+" where "+condition+" Like'"+findContent+"%'";if(findMethod.equals("end"))s= "select * from "+tableName+" where "+condition+" Like'%"+findContent+"'";if(findMethod.equals("contains"))s= "select * from "+tableName+" where "+condition+" Like'%"+findContent+"%'";rs=sql.executeQuery(s);queryResult.append("<table border=1>");queryResult.append("<tr>");queryResult.append("<th>ISBN</td>");queryResult.append("<th>图书名称</td>");queryResult.append("<th>作者</td>");queryResult.append("<th>价格</td>");queryResult.append("<th>出版社</td>");queryResult.append("<th>出版时间</td>");queryResult.append("<th>摘要</td>");queryResult.append("</tr>");int 字段个数=7;while(rs.next()){queryResult.append("<tr>");String bookISBN="";for(int k=1;k<=字段个数;k++) {if(k==7){String bookAbstract=rs.getString(k);String abs="<textarea rows=6 colums=10/>"+bookAbstract+"</textarea>";queryResult.append("<td>"+abs+"</td>");}else {queryResult.append("<td>"+rs.getString(k)+"</td>");}}}queryResult.append("</table>");jspContext.setAttribute("giveResult",queryResult);con.close();}catch(SQLException exp){jspContext.setAttribute("giveResult",new StringBuffer("请给出查询条件"));}%>实验结果如下所示:实验二:编写一个JSP页面updateRecord.jsp和两个Tag文件UpdateRecord.tag、GetRecord.tag,使用JDBC更新数据库中表的记录,结果如下:updateRecord.jsp的代码如下所示:<<%@ page contentType="text/html;charset=GB2312" %><%@ taglib tagdir="/WEB-INF/tags" prefix="getRecord" %><%@ taglib tagdir="/WEB-INF/tags" prefix="updateRecord" %><HTML><BODY bgcolor=pink><CENTER><FORM action="" name=form>输入图书的ISBN号,然后更新该图书的有关信息:<Input type=text name="bookISBN" /><Input type=submit name="ok" value="提交"/></FORM><%String bookISBN=request.getParameter("bookISBN");if(bookISBN!=null){%><getRecord:GetRecord bookISBN="<%=bookISBN%>" />输入<%=bookISBN%>的新信息>:<Font size=2><FORM action="" name=form><table><tr><td>图书名称:</td><td><Input type=text name="bookName" value="<%=oldBookName%>"></td></tr><tr><td>图书作者:</td><td><Input type=text name="bookAuthor" value="<%=oldBookAuthor%>"></td></tr><tr><td>图书价格:</td><td><Input type=text name="bookPrice" value="<%=oldBookPrice%>"></td></tr><tr><td>出版社:</td><td><Input type=text name="bookPublish" value="<%=oldBookPublish%>"></td></tr><tr><td>出版社时间(yy-mm-dd):</td><td><Input type=text name="bookTime" value="<%=oldBookTime%>"></td></tr><tr><td>图书摘要:</td><td><TextArea name="bookAbstract" rows=6,cols=12><%=oldBookAbstract%></textarea></td></tr><input type=hidden name="bookISBN" value="<%=bookISBN %>" > <tr><td><Input type=submit name="enter" value="提交"></td> </tr></table><Font></CENTER></form><% }%><%bookISBN=request.getParameter("bookISBN");String enter=request.getParameter("enter");String bookName=request.getParameter("bookName");String bookAuthor=request.getParameter("bookAuthor");String bookPrice=request.getParameter("bookPrice");String bookPublish=request.getParameter("bookPublish");String bookTime=request.getParameter("bookTime");String bookAbstract=request.getParameter("bookAbstract");boolean ok=(enter!=null);if(ok){%> <updateRecord:UpdateRecord bookISBN="<%=bookISBN%>" bookName="<%=bookName%>" bookAuthor="<%=bookAuthor%>"bookPrice="<%=bookPrice%>" bookPublish="<%=bookPublish%>"bookTime="<%=bookTime%>" bookAbstract="<%=bookAbstract%>"/> <center><h2><%= giveResult %></h2></center><% }%></BODY></HTML>UpdateRecord.tag的代码如下:<%@ tag import="java.sql.*" %><%@ tag pageEncoding="gb2312" %><%@ attribute name="bookISBN" required="true" %><%@ attribute name="bookName" required="true" %><%@ attribute name="bookAuthor" required="true" %><%@ attribute name="bookPrice" required="true" %><%@ attribute name="bookPublish" required="true" %><%@ attribute name="bookTime" required="true" %><%@ attribute name="bookAbstract" required="true" %><%@ variable name-given="giveResult" variable-class="ng.StringBuffer" scope="AT_END" %><%byte [] c=bookName.getBytes("iso-8859-1");bookName=new String(c);c=bookAuthor.getBytes("iso-8859-1");bookAuthor=new String(c);c=bookPublish.getBytes("iso-8859-1");bookPublish=new String(c);c=bookAbstract.getBytes("iso-8859-1");bookAbstract=new String(c);try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){out.print(e);}StringBuffer str=new StringBuffer();Connection con;Statement sql;ResultSet rs;String uri="jdbc:odbc:information";try{con=DriverManager.getConnection(uri,"","");String updateCondition="UPDATE bookForm SET bookName='"+bookName+"',bookAuthor='"+bookAuthor+"',bookPrice= "+bookPrice+",bookPublish='"+bookPublish+"',bookTime='"+bookTime+"',bookAbstract='"+bookAbstract+"' WHERE bookISBN='"+bookISBN+"'";sql=con.createStatement();int m=sql.executeUpdate(updateCondition);if(m==1) {str.append("修改信息成功");}else {str.append("更新失败");}con.close();}catch(SQLException exp){str.append("更新失败"+exp);}jspContext.setAttribute("giveResult",str);%>GetRecord.tag的代码如下所示:<%@ tag import="java.sql.*" %><%@ tag pageEncoding="gb2312" %><%@ attribute name="bookISBN" required="true" %><%@ variable name-given="oldBookName" scope="AT_END" %><%@ variable name-given="oldBookAuthor" scope="AT_END" %><%@ variable name-given="oldBookPrice" scope="A T_END" %><%@ variable name-given="oldBookPublish" scope="AT_END" %><%@ variable name-given="oldBookTime" scope="AT_END" %><%@ variable name-given="oldBookAbstract" scope="AT_END" %><%try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){out.print(e);}StringBuffer str=new StringBuffer();Connection con;Statement sql;ResultSet rs;String uri="jdbc:odbc:information";try{con=DriverManager.getConnection(uri,"","");String query="select bookName,bookAuthor,bookPrice"+",bookPublish,bookTime,bookAbstract from bookForm WHERE bookISBN='"+bookISBN+"'";sql=con.createStatement();rs=sql.executeQuery(query);if(rs.next()){jspContext.setAttribute("oldBookName",rs.getString("bookName"));jspContext.setAttribute("oldBookAuthor",rs.getString("bookAuthor"));jspContext.setAttribute("oldBookPrice",rs.getString("bookPrice"));jspContext.setAttribute("oldBookPublish",rs.getString("bookPublish"));jspContext.setAttribute("oldBookTime",rs.getString("bookTime"));jspContext.setAttribute("oldBookAbstract",rs.getString("bookAbstract"));}else{jspContext.setAttribute("oldBookName","");jspContext.setAttribute("oldBookAuthor","");jspContext.setAttribute("oldBookPrice","");jspContext.setAttribute("oldBookPublish","");jspContext.setAttribute("oldBookTime","");jspContext.setAttribute("oldBookAbstract","");}con.close();}catch(SQLException exp){jspContext.setAttribute("oldBookName","");jspContext.setAttribute("oldBookAuthor","");jspContext.setAttribute("oldBookPrice","");jspContext.setAttribute("oldBookPublish","");jspContext.setAttribute("oldBookTime","");jspContext.setAttribute("oldBookAbstract","");}jspContext.setAttribute("bookISBN",bookISBN);%>实验结果如下所示:修改信息,如下所示:重新查询一下,可以发现信息已更新:实验三:编写一个JSP页面inputDeletedISBN.jsp和一个Tag文件DelRecord.tag,使用JDBC删除数据库中表的记录,结果如下:inputDeletedISBN.jsp的代码如下所示:<%@ page contentType="text/html;charset=GB2312" %><%@ taglib tagdir="/WEB-INF/tags" prefix="deleteRecord"%><HTML><BODY><FONT size=2><FORM action="" method=post>删除记录:<br>输入被删除的图书的ISBN:<Input type="text" name="bookISBN" ><Input type="submit" name="b" value="提交"><%String bookISBN=request.getParameter("bookISBN");if(bookISBN!=null){%><deleteRecord:DeleteRecord bookISBN="<%=bookISBN%>"/><br><%=backMess%><% }%></Font></BODY></HTML>DelRecord.tag的代码如下所示:<%@ tag import="java.sql.*" %><%@ tag pageEncoding="gb2312" %><%@ attribute name="bookISBN" required="true" %><%@ variable name-given="backMess" scope="AT_END" %><%try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){out.print(e);}Connection con;Statement sql;ResultSet rs;String uri="jdbc:odbc:information";try{con=DriverManager.getConnection(uri,"","");String condition="DELETE FROM bookForm WHERE bookISBN = '"+bookISBN+"'";sql=con.createStatement();int m=sql.executeUpdate(condition);if(m==1) {jspContext.setAttribute("backMess","ISBN是"+bookISBN+"的图书被删除");}else {jspContext.setAttribute("backMess","删除失败失败");}con.close();}catch(SQLException exp){jspContext.setAttribute("backMess","删除失败失败"+exp);}%>实验结果如下所示:重新查询一下,可以发现ISBN是20130405的图书已查询不到任何信息!实验结束!!。

第7章JSP数据库操作

第7章JSP数据库操作

17.
conn.close();
18.
%>
19.
</table>
20. </body>
21. </html>
2021年2月15日
25
JDBC—ODBC桥访问Access数据库分析
加载驱动程序。在JDBC连接到ODBC数据库之前, 必须加载JDBC-ODBC桥驱动程序,代码为:
• Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
21
2021年2月15日
22
3.JSP代码
1. <%@page contentType="text/html" pageEncoding="UTF-8" import="java.sql.*"%>
2.
<html>
3.
<head>
4.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
2021年2月15日
30
2.配置Excel数写JSP文件访问Excel(stuScore.jsp)
1. <%@page contentType="text/html" pageEncoding="UTF-8" import="java.sql.*"%>
2. <html>
3.
<tr>
4.
<th width="60" align="center">专业</th>

第7章 JSP中使用数据库

第7章 JSP中使用数据库

保护数据库连接 信息:避免在代 码中硬编码数据 库连接信息
防止数据泄露: 对敏感数据进行 加密或脱敏处理
确保数据一致性 :使用事务管理 确保数据的一致 性和完整性
性能问题
数据库连接池的使用
SQL查询优化
避免N+1查询问题
缓存的使用
连接池的使用
连接池的概念和作用
连接池的原理和实现方式
连接池的配置和使用方法
学院
JSP中使用数据库
单击添加副标题
汇报人:
目录
01
单击添加目录项标题
02
JSP与数据库的关系
03
JSP中使用数据库的步骤
04
JSP中使用数据库的示例
05
JSP中使用数据库的注意事项
06
JSP中使用数据库的应用场景
07
JSP中使用数据库的未来发展
01
添加章节标题
02
JSP与数据库的关系
JSP与数据库的连接
显示结果集:将处理后的结果 集显示在JSP页面上
关闭数据库连接
关闭ResultSet
关闭Statement
关闭 Connection
关闭数据库连接 池
04
JSP中使用数据库的示例
连接MySQL数据库
导入MySQL JDBC驱动 加载驱动 建立连接 执行查询和更新操作
查询数据
使用JDBC连接 数据库
连接池的常见问题和解决 方案
SQL注入的防范
输入验证:对用户输入进行严格的验证,防止恶意输入 参数化查询:使用参数化查询,避免直接拼接SQL语句 存储过程:使用存储过程进行数据库操作,减少SQL注入的风险 错误处理:对数据库操作错误进行适当的处理,避免泄露敏感信息

JSP动态网站设计开发项目教程第7章 数据库技术在项目中的应用

JSP动态网站设计开发项目教程第7章 数据库技术在项目中的应用
读取当前记录中指定索引号字段的值,返回值是字符串。字 段索引号从1开始编号,各字段的索引号以字段在select语句 中的先后位置为准。在顺序查询中,只能使用next()方法, 使游标移到下一行记录。
类似于getString(),如果当前记录中的某个字 段是整数,可以用getByte()、getShort()、 getInt()、getLong()直接读取到整数值。如果
(3)删除数据行 DELETE用来从表中删除记录。 语法格式: DELETE FROM表名 [WHERE 条件] 例如:
DELETE FROM student WHERE sno='20050301'
删除学号为20050301的学生记录。
3.数据查询 语法形式: SELECT [DISTINCT] [别名.]字段名或表达式 [AS 列标题]
数据类型2>] [,...]) 例如:
CREATE TABLE student (sno char(10), sname varchar(8), ssex char (2) ,sbirthday datetime, sdept char(16),address varchar (50))
2.数据表数据维护 (1)插入记录 语法形式: INSERT INTO 表名 [(字段名表)] VALUES (值表) 例如:INSERT INTO student VALUES('20020101','胡一兵
FROM 表或视图 别名 [ WHERE条件] [ GROUP BY 分组表达式] [ ORDER BY 排
序表达式[ ASC | DESC ]] 其中: ①SELECT子句指出查询结果中显示的字段名或字段名和函

JSP实用简明教程(第二版)chapter07简明教程PPT课件

JSP实用简明教程(第二版)chapter07简明教程PPT课件

一、JDBC概述
4、JDBC接口
DBC的接口分为两个层次:一个是面向程序开发人员的 JDBC API,另外一个是底层的JDBC Driver API。JDBC接口 如图所示。
Java Application JDBC API
JDBC Manager
JDBC-Net Driver
JDBC-ODBC Bridge Driver ODBC and DB Drivers
JSP实用简明教程(第二版)
一、JDBC概述
1、什么是JDBC
JDBC是一种可用于执行SQL语句的Java API (ApplicationProgrammingInterface应用程序设计接口), 它由一些Java语言编写的类和界面组成。JDBC具有以下这些 特点:
●它是一种在SQL水平上的API,可以直接调用SQL命令。 ●与SQL的一致性。JDBC API允许将任何查询字符串一直传到所涉及的DBMS驱动 程序上,这意味着应用程序可以使用任意多的SQL功能。 ●它可以在现有数据库接口上实现。JDBC API能够建立在普通的SQL API上,特 别是ODBC。 ●它提供了与其它Java系统一致的Java接口。JDBC建立在Java内核现有的风格 上,和Java语言标准规范是一致的。 ●简单易用。每个特定的任务只提供一种方案,避免提供多种方案。如果一些 重要的功能遗漏了,那么我们在晚些时候将扩充这个API。 ●使用健壮、静态的通用数据类型。JDBC可以静态地表达大部分类型信息,这 使得尽可能多的错误可以在编译的时候被发现。
JDBC Driver API Driver A Driver B
...
Published Protocol
Proprietary database

第7部分 .JSP与数据库

第7部分 .JSP与数据库

ex7-7.jsp
– 参数查询记录
ex7-4.jsp
– 顺序 排序查询记录 顺序+排序查询记录
ex7-8.jsp
– 使用通配符查询
实例讲解
ex7-9.jsp
– 添加记录
ex7-13.jsp
– 表单修改记录
ex7-10.jsp
– 修改记录
ex7-14.jsp
– 表单删除记录
ex7-11.jsp
第七部分 JSP与数据库 与数据库
开始讲授
7.1 数据库连接方式
ODBC
– ODBC(开放数据库互连)利用创建与数据库连接的 (开放数据库互连) 数据源的方式与数据进行连接,本部分内容以 数据源的方式与数据进行连接,本部分内容以Access 数据库. 数据库.
JDBC
– JDBC(java数据库互连)则是使用 ( 数据库互连) 数据库互连 则是使用java所写的数据库 所写的数据库 驱动程序,具有跨平台的特性, 驱动程序,具有跨平台的特性,各种数据库驱动程序 由所属公司提供专门的JDBC驱动程序. 驱动程序. 由所属公司提供专门的 驱动程序
5. 关闭数据库
– conn.close()
实例讲解
ex 7-1.jsp
– 连接 连接Access数据库 数据库
ex7-5.jsp
– MySQL数据库 数据库 连接
ex7-6.jsp
– 随机查询记录
ex7-3.jsp
– 连接SQL Server库 连接 库
创建数据源
利用 利用Access创建数据库 创建数据库 在"管理工具 中选择"ODBC数据源 管理工具"中选择 数据源" 管理工具 中选择 数据源 双击"ODBC数据源"图标,选择"系统 DSN" 数据源" 双击" 数据源 图标,选择" 选项卡,单击"添加" 选项卡,单击"添加"按钮 选择 选择Microsoft Access Driver(*.mdb) 输入数据源名称,选择连接的数据库 输入数据源名称,

第07章 JSP操作数据库

第07章 JSP操作数据库

驱动程序的类型
一般而言,厂商提供的JDBC驱动程序可以分为 四大类:
Type1:JDBC-ODBC(开放数据库连接)桥。 Type2:本地API,部分的Java驱动。 Type3:网络协议,完全的Java 驱动。 Type4:本地协议,完全的Java驱动。
目前,JDBC API的版本是3.0 ,网上的驱动大 部分为2.0的。
JDBC简介 JDBC驱动程序 JDBC API类与接口 MySQL的安装与使用 JDBC操作MySQL数据库 JDBC 事务操作 数据库连接池
7.1 JDBC简介
JDBC是一种可用于执行SQL语句的Java API(Application Programming Interface应用程序编程接口)。它由一 些Java类和接口组成。
第7章 JSP操作数据库
信息工程学院 2009.10
目的
JDBC是在Java中访问数据库的一 种技术。本章主要探讨JDBC的架构与 运作方式,建立有关JDBC的完整的基 础概念,并能够快速上手开发JSP数据 库应用程序。
至于JDBC API本身的详内容,建 议大家查阅相关的JDBC资料。
本章的主要内容:
7.3 JDBC API类与接口
JDBC API作为Java访问数据库的技术,应 能满足下面的功能:
建立与数据库的连接 发送SQL语句 处理数据库操作结果
为此,JDBC提供了一系列的接口与类来完 成此任务。
1. DriverManager类
它保存了系统中可用的驱动程序的列表,是唯一 的一个服务类。
数据库
Type 3 类型驱动
这种驱动实际上是应用根程据序 我们熟悉的三层结构 建立的。 jdbc先把对数据库的访问请求传递 给网络上的中间T件ype服3 务JDB器C驱。动中程序间件服务器再把 请调求用翻 传译 给为 数SQ符 据L 合库数服据务库器规。范的调用结果,集再把这种
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“odbc”,它是用于指定ODBC风格的数据库资源名称 的URL而保留的。 • <子名称>——一种标识数据库的方法。子名称可以依不 同的子协议而变化。它还可以有子名称的子名称(含有 驱动程序编程人员所选的任何内部语法)。使用子名称 的目的是为定位数据库提供足够的信息。
2020/3/24
8
• 7.2.2 Connection接口
10
• 7.2.2 Connection接口 • 常用的一些方法:
– boolean isClosed():用于判断Connection对象是 否已经被关闭;
– void commit():用于提交SQL语句,确认从上一次 提交以来所进行的修改;
– void close():断开连接,释放资源; – void rollback():取消SQL语句,取消当前事务中
进行的修改。 – DatabaseMetaData getMetaData():获取一个
DatabaseMetaData对象。
2020/3/24
11
• 7.2.3 Statement接口
• Statement接口对象创建完毕后,主要使用以 下方法:
– public ResultSet executeQuery(String sql):用于 执行产生单个结果集的语句,如select。
2020/3/24
3
• 7.1.1 什么是JDBC
– JDBC是Java数据库连接(Java Data Base Connectivity)技术的简称,指Java同许多数据库 之间连接的一种标准。
– JDBC为数据库应用开发人员、数据库前台工具开 发人员提供了一种标准的JavaAPI,使开发人员可 以用纯Java语言编写完整的数据库应用程序。
2020/3/24
清华大学出版社
1
• 理解JDBC应用程序编程接口; • 掌握使用纯Java驱动程序操作数据库的编
程方法;
• 掌握对数据的增加、删除、修改和查询编 程技术;
• 查询记录的分页面显示; • 数据库连接池编程技术。
2020/3/24
2
• 7.1 JDBC概述 • 7.2 JDBC应用程序接口简介 • 7.3 利用JDBC访问数据库 • 7.4 数据库操作案例 • 7.5 上机实训 • 7.6 本 章 习 题
如create table时,由于它不操作行,返回值将总
为0。
2020/3/24
12
• 7.2.3 Statement接口
– public boolean execute(String sql):用于执行返回 多个结果集、多个更新计数或二者结合的SQL语句。
– public int[] executeBatch():用于执行几个SQL语 句。Statement接口使用addBatch(String sql)方法 将几个SQL语句添加到一个语句块中,然后一同提 交给数据库服务器,同时执行。当执行多个SQL insert语句时效率将很高,因为一次提交比多次提 交要节省很多系统资源。
– public int executeUpdate(String sql):用于执行
insert、update或delete语句以及SQL DLL(数据
定义)语句。当执行insert、update或delete语句
时将返回一个整数,用于表示受影响的行数,返回
结果为0时表示操作失败;当执行SQL DLL语句,
– 2.JDBC数据库 驱动程序
2020/3/24
5
• 7.2.1 DrvierManager类
• 提供管理一组JDBC驱动程序所需要的基本 服务,可以跟踪可用的驱动程序,并在数 据库和相应的驱动程序之间建立连接。
• 该类的常用方法有:getConnection和 forName方法。
– puring url,String user,String password)
– 简单地说,JDBC能够完成下列三件事:
• 与一个数据库建立连接(connection)。
• 向数据库发送SQL语句(statement)。
• 处理数据库返回的结果(resultset)。
2020/3/24
4
• 7.1.2 JDBC的构 成
– 1.JDBC API: 定义了标准接口, 无论编写Mysql 还是Oracle等数 据库程序,这些 接口是一致的。
• Connection接口是java.sql包中最重要的接口。 Connection对象代表与数据库的连接。一个应用程 序可与单个数据库有一个或多个连接,或者可与许 多数据库有连接。
• 数据库连接一旦建立,就可用来向它所涉及的数据 库发送SQL语句。Connection的作用是创建向数据 库发送SQL语句的三个接口。这三个接口分别是:
2020/3/24
7
• 对getConnection函数中的参数解释:
• url参数的命名方法:url由3部分组成,各部分间用冒号 分隔,如下所示:
• jdbc:<子协议>:<子名称> • 其中:jdbc——协议名称。在JDBC URL中的协议总是
jdbc。 • <子协议>——驱动程序名或数据库连接机制的名称。如
– public Statement createStatement(int resultSetType,int resultSetConcurrency);
• 其中:参数resultSetType指返回记录集的类型 • resultSetConcurrency指发送的SQL语句的权限
2020/3/24
– public static Class forName(String className)
2020/3/24
6
• DrvierManager类的使用法: • (1)加载驱动
– 例如: – Class.forName("com.mysql.jdbc.Driver");
• (2)与数据库建立连接
– DriverManager.getConnection(String url,String user,String password);
– Statement接口
– PreparedStatement接口
– CallableStatement接口。
2020/3/24
9
• 7.2.2 Connection接口
– Connection接口提供了多个同名但是参数不同 的方法创建以上的三个接口。
– 例如:
– public Statement createStatement();
相关文档
最新文档