第6章 JSP中使用数据库 PowerPoint 演示文档
第6章:JSP中使用数据库
物联网web应用程序开发基础学院计算机科学与工程学院学号姓名指导教师唐继强使用教材编写时间第6章:JSP中使用数据库实验过程(实验1):inputCondition.jsp<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY><Font size=2><FORM action="byNumber.jsp" Method="post">根据学号查询<BR>输入学号:<Input type=text name="number"><Input type=submit name="g" value="提交"></Form><FORM action="byName.jsp" Method="post">根据姓名(模糊)查询<BR> 姓名含有<Input type=text name="name" size=5><Input type=submit value="提交"></Form></Font></BODY></HTML>byNumber.jsp<%@ page contentType="text/html;charset=GB2312" %><%@ taglib tagdir="/WEB-INF/tags" prefix="look" %><HTML><BODY bgcolor=cyan><Font size=2><% String number=request.getParameter("number"); %><look:NumberCondition number="<%=number%>" />根据学号<%=number%>查询到的记录:<BR><%=queryResultByNumber%></Font></BODY></HTML>byName.jsp<%@ page contentType="text/html;charset=GB2312" %><%@ taglib tagdir="/WEB-INF/tags" prefix="look"%><HTML><BODY bgcolor=pink><Font size=2><% String name=request.getParameter("name");byte bb[]=name.getBytes("iso-8859-1");name=new String(bb); %><look:NameCondition name="<%=name%>" />姓名含有"<%=name%>"的记录:<BR><%=queryResultByName%></Font></BODY></HTML></Font></BODY></HTML>Tag文件参考代码DelRecord.tag<%@ tag pageEncoding="GB2312" %><%@ tag import="java.sql.*" %><%@ attribute name="number" required="true" %><% String condition="DELETE FROM message WHERE number = '"+number+"'"; try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundException e){out.print(e);}Connection con;Statement sql;ResultSet rs;try{ con=DriverManager.getConnection("jdbc:odbc:redsun","sa","sa"); sql=con.createStatement();sql.executeUpdate(condition);con.close(); }catch(Exception e){ out.print(""+e); }%>。
chap06JSP访问数据库
chap06JSP访问数据库jp访问数据库pptjp访问数据库ppt本章内容如何链接数据库?JDBCODBC如何操作数据库?使用PreparedStatement和CallableStatement事务使用厂商驱动进行数据库连接jp访问数据库pptJDBC简介网站数据放在数据库内前台WEB服务器JDBC后台数据库如何能从页面访问到数据库中的内容呢?JAVA提供了一套访问数据库的机制——JDBC。
该机制包含一系列的API,让JAVA代码可以直接连接到数据库内,并对数据库中的数据进行添加、删除、查找、修改等操作jp访问数据库pptJDBC简介JDBC的API放在“java.ql”包内包括以下类或接口java.ql.Connection:负责连接数据库java.ql.Statement:负责执行数据库SQL语句java.ql.ReultSet:负责存放查询结果jp访问数据库pptJDBC简介JDBC怎么知道系统采用的是什么数据库?SQLSERVERORACLEMYSQLSYBASE.....针对不同类型的数据库,JDBC机制中提供了"驱动程序"的的概念。
对于不同的数据库,程序只需要使用不同的驱动jp访问数据库pptJDBC简介驱动由数据库厂商提供,找起来很麻烦~有没有通用的呢?微软公司的Window中,预先设计了一个ODBC(OpenDatabaeConnectivity,开放数据库互连)功能,由于ODBC是微软公司的产品,因此它几乎可以连接到所有在Window平台下运行的数据库,由它连接到特定的数据库,不需要具体的驱动。
而JDBC就只需要连接到ODBC就可以了6JDBC-ODBC桥连接jp访问数据库ppt建立ODBC数据源ODBC怎么知道自己连接的是什么数据库呢?通过建立ODBC数据源,告诉ODBC其连接数据库是什么,ODBC支持连接到各种数据库。
如Oracle、MySQL、MSSQLServer等jp访问数据库ppt建立ODBC数据库操作如下:首先在控制面板中选择“管理工具”,双击“数据源(ODBC)图标”在"ODBC数据源管理器"的"系统DSN"选项卡中单击"添加"按钮jp访问数据库ppt建立ODBC数据源操作如下:从弹出的"创建新数据源"窗口的数据源名称列表中选择"MicrooftAcceDriver(某.mdb)"并单击"完成"按钮jp访问数据库ppt建立ODBC数据源操作如下:在弹出的"ODBCMicrooftAcce安装"窗口的"数据源名"文本框输入自定义的数据源名称,然后点击"选择"按钮,选择Acce 数据库所在的目录,得到的结果如图jp访问数据库pptJDBC操作JDBC的操作分为4个步骤:通过JDBC连接到ODBC,并获取连接对象importjava.ql.Connection;importjava.ql.DriverManager;…………Cla .forName("un.jdbc.odbc.JdbcOdbcDriver");Connectionconn=DriverMan ager.getConnection(“jdbc:odbc:DSSchool”);//DriverManager.getCo nnection(“URL”,”用户名”,”密码”)注意,ACCESS2022以后的conn写法有变化Connectionconn=DriverManager.getConnection("jdbc:odbc:DRIVER={MicrooftAcceDriver(某.mdb,某.accdb)};DBQ=C:\\School.mdb");jp访问数据库pptJDBC操作使用Statement接口运行SQL语句importjava.ql.Statement;……Statementtat=conn.createStatement(); tat.e某ecuteQuery(SQL语句);//查询或者tat.e某ecuteUpdate(SQL 语句);//添加、删除或修改jp访问数据库pptJDBC操作处理SQL语句运行结果,这和具体的操作有关,后面详述关闭数据库连接:tat.cloe();conn.cloe();jp访问数据库ppt添加数据对数据库SCHOOL中的表T_STUDENT进行数据添加0032、冯江、男inti=tat.e某ecuteUpdate(ql);它返回一个整型,意思为这条ql语句执行受影响的行数,即成功添加的条数jp访问数据库ppt删除、修改数据删除表T_STUDENT中学号为0032的记录修改表T_STUDENT中,学号为0007的学生的性别,更改为“女”jp访问数据库ppt查询数据查询所有女生的学号和姓名查询格式:ReultSetr=tat.e某ecuteQuery(ql);查询到的结果放入ReultSet(r)中,实际上是一个小表格怎么才能访问这个小表格呢?游标jp访问数据库ppt查询数据游标在ReultSet中一个可以移动的指针,它指向一行数据。
jsp ppt
6.1 通过JDBC访问数据库 JDBC (Java DataBase Connectivity) – 是用于执行SQL语句的Java应用程序接口,由一组用 Java语言编写的类与接口组成,它是一种规范。 JDBC驱动 各个数据库厂商对JDBC规范的具体实现。 (SQL SERVER ,ORACAL,SYBASE,ACCESS)
随机查询 可以向上或向下移动记录的指针。 Statement stmt=con.createStatement(int type,int concurrency) ResultSet re=stmt.executeQuery(SQL语句); type取值:ResultSet.Type_SCROLL_SENSITVE (上下移动游标) concurrency取值:ResultSet.CONCUR_UPDATABLE (看可以用结果集更新表) re.first():游标到第一行 st():游标到末一行 re.getRow():获取当前游标的记录号 re.absolute(n);游标移到第n个记录。 例子4
6.2 通过JDBC访问数据库(续) ——JDBC API中重要的接口和类
名称 解释 驱动管理类,产生新的数据库连接 在JDBC 2.0 API中被推荐使用代替 DriverManager实现和数据库的连接 数据库连接类,创建SQL语句容器 SQL语句容器,容纳并执行一条SQL语 句 SQL执行结果的集合。
6.2.3 对数据库进行操作
建立好到数据库的连接后,就可以进行对数据库的操作了,一 般包括如下三个步骤 (1)使用Connection对象conn,创建Statement对象sql,该对象可 以执行SQL语句。 Statement sql = conn.createStatement(); (2)使用Statement对象sql,执行sql语句,结果保存在 ResultSet 对象rs中 ResultSet rs = sql.executeQuery("Select * From employee");
JSP中使用数据库ppt课件
– void close():断开连接,释放资源; – void rollback():取消SQL语句,取消当前事务中
进行的修改。 – DatabaseMetaData getMetaData():获取一个
DatabaseMetaData对象。
1
• 理解JDBC应用程序编程接口; • 掌握使用纯Java驱动程序操作数据库的编
程方法; • 掌握对数据的增加、删除、修改和查询编
程技术; • 查询记录的分页面显示; • 数据库连接池编程技术。
2
• 7.1 JDBC概述 • 7.2 JDBC应用程序接口简介 • 7.3 利用JDBC访问数据库 • 7.4 数据库操作案例 • 7.5 上机实训 • 7.6 本 章 习 题
8
• 7.2.2 Connection接口 • Connection接口是java.sql包中最重要的接口。
Connection对象代表与数据库的连接。一个应用程 序可与单个数据库有一个或多个连接,或者可与许 多数据库有连接。
• 数据库连接一旦建立,就可用来向它所涉及的数据 库发送SQL语句。Connection的作用是创建向数据 库发送SQL语句的三个接口。这三个接口分别是:
Байду номын сангаас12
• 7.2.3 Statement接口
– public boolean execute(String sql):用于执行返回 多个结果集、多个更新计数或二者结合的SQL语句。
– public int[] executeBatch():用于执行几个SQL语 句。Statement接口使用addBatch(String sql)方法 将几个SQL语句添加到一个语句块中,然后一同提 交给数据库服务器,同时执行。当执行多个SQL insert语句时效率将很高,因为一次提交比多次提 交要节省很多系统资源。
JSP第六章(新)
6.6.1 顺序查询
tableMessage中的行数与表的字段数相 同,每行四列,分别是数据库名、数 据库扩展名、表名和字段名。 该对象初始游标位置是第一行之前,可 使用next()方法使游标下移一行,调 用getXxx方法可查看行中列的信息。 示例:例子3
2/27/2019 27
3 处理由SQL操作返回的结果
经DBMS处理,SQL操作返回的结果 以特定形式显示给用户,管理输出格 式的类是ResultSet。
2/27/2019
28
4 重要类的详细说明 (1) DriverManage类
作用: 1、是最高层次的类,保持驱动程序的 信息、状态信息等。 2、当驱动程序被装入时,用此类进行 登记。 3、需要打开一个连接时,可根据JDBC URL选择驱动程序。
2/27/2019 19
2、和指定的数据库建立连接 假设SQLServer数据库服务器驻留的计算机IP 地址是192.168.100.1,占用端口是1433, 与factory数据库建立连接,则代码是: try{con=DriverManager.getConnection(jdb c:sqlserver://192.168.100.1:1433;Data baseName=factory”,user,password); } Catch(SQLException e){} 示例:例子2
2/27/2019
33
6.6查询操作
关闭Statement 每个Statement对象在使用完毕后都应关闭。 使用Con.close();关闭。 显示查询结果 对ResultSet对象处理,来显示查询结果。 ResultSet对象包括一由查询语句返回的表, 该表中包含所有的查询结果。
第6章 jsp中使用数据库 ppt课件
例6-3 P149
example6_3.jsp 提交 数据源和表名
QueryTag.tag 查询数据库并返回结果
inquire.jsp调用tag查询数据库
在JSP页面中输入排序方式, Tag文件可以根据JSP提交的数 据进行排序查询。
例6-6 P158
6.4.5 模糊查询
在JSP页面中输入模糊查询条件,Tag文件可以根据
JSP提交的条件进行模糊查询。
在SQL语句中用like进行模式匹配,% 代替零个或多
个字符,下划线代替一个字符等。
比如,下述语句查询产品名称中含有“机”的记录:
创建SQL语句对象
try{ Statement sql=con.createStatement(); } catch(SQLException e ){
System.out.println(e); }
处理查询结果 sql对象可以调用相应的方法实现对数据库中表的查询和修改,并将
查询结果存放在一个ResultSet类声明的对象中。
DatabaseMetaData metadata=con. getMetaData(); 2. Metadata对象再调用getColumns()方法可以将表的字段信息以行列的形式存储 在一个ResultSet对象中。
ResultSet tableMessage= metadata. getColumns(null,null, “employee“,null);
和指定的数据库建立连接
try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch(Exception e){
chap06 JSP访问数据库
JDBC操作
12
使用 Statement 接口运行 SQL 语句
import java.sql.Statement; …… Statement stat = conn.createStatement(); stat.executeQuery(SQL 语句);//查询
或者 stat.executeUpdate(SQL 语句);//添加、删除或修改
2020/6/17
建立ODBC数据库
8
操作如下:
首先在控制面板中选择"管理工具",双击"数据源 (ODBC)图标“
在"ODBC 数据源管理器"的"系统 DSN"选项卡中单击 "添加"按钮
2020/6/17
建立 ODBC 数据源
9
操作如下:
从弹出的"创建新数据源"窗口的数据源名称列表中选择 "Microsoft Acces Driver(*.mdb)" 并单击"完成"按钮
第六章 JSP访问数据库
1
2020/6/17
本章内容
2
如何链接数据库?
JDBC ODBC
如何操作数据库?
使用PreparedStatement和CallableStatement 事务 使用厂商驱动进行数据库连接
2020/6/17
JDBC简介
3
网站数据放在数据库内
前台
WEB 服务器
java.sql.Connection:负责连接数据库 java.sql.Statement:负责执
2020/6/17
JDBC简介
5
JDBC怎么知道系统采用的是什么数据库?SQL SERVER? ORACLE? MY SQL? SYBASE?.....
第6章 在JSP中使用数据库
MySQL数据库
开源 免费 可运行在多个平台上 很多互联网公司采用 安装mysql-essential-5.1.39-win32.msi C:\Documents and Settings\hu>mysql -u root -p Enter password: **** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.1.39-community MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
查询示例
linkMySql.jsp
MySqlBean.java 和 mysql.jsp
5. 更新、添加与删除操作
• Statement对象调用方法:
public int executeUpdate(String sqlStatement);
通过参数 sqlStatement 指定的方式实现对数据库表中 记录的更新、添加和删除操作.
显示查询操作的结果(游标查询)
参数int Concurrency取值决定是否可以用 结果集更新数据库,concurrency取值: ResultSet.CONCUR_READ_ONLY不能 用结果集更新数据库中的表。 ResultSet.CONCUR_UPDATETABLE能 用结果集更新数据库中的表。
显示ResultSet中的数据
JSP实用教程第6章连接数据库
JDBC的主要接口
java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet
表示驱动程序与数 据库之间的连接。 (使用此连接可以 创建一个Statement 对象)
系统运行界面:修改学生信息页面
6.4.3 在JavaBean中使用JDBC连接数据库
系统运行界面:查询学生信息结果页面
6.4.4 连接池技术
连接池技术的原理是在WEB服务器启动的 时候就与数据库建立很多的Connection连 接对象,并将它们存储起来,就象一个连 接池,需要的时候就从连接池中取出一个 连接,使用完毕后再释放回连接池,让 JSP与数据库之间能够获得最大的执行效 率。
6.4.1 在JSP中使用JDBC连接数据库
下面例程实现向student表中插入一条记录 的功能,本例程使用jsp_db数据库和 student表。其源代码在本书配套光盘的 源 代码\ch6-1目录下。 该例程的运行结果见下图。
6.4.1 在JSP中使用JDBC连接数据库
学生信息表(student)
字段名 sid name sex 类型 varchar varchar int 长度 30 30 1 是否是主键 是 否 否 描述 学号 姓名 性别,0代表 女,1代 表男 ate
16 8
否 否
6.4.1 在JSP中使用JDBC连接数据库
6.3 JDBC技术
6.3.1 JDBC介绍 6.3.2 JDBC的结构 6.3.3 JDBC驱动程序 6.3.4 JDBC常用接口
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Resultset
Resultset
Resultset
一、JDBC概述
JDBC接口
面向程序开发人员的JDBC API,JDBC API主要包括下面这 些接口:java.sql 包 类 DriverManager管理一组 JDBC 驱动程序的基本服务
Connection getConnection(String url, String user, String password) : 接口 Connection Statement createStatement(int resultSetType, 试图建立到给定数据库 URL 的连接 int resultSetConcurrency) 接口 创建一个 Statement : ResultSet : Statement 对象,该对象将生成具有给定类 Resultset executeQuery int getInt(int columnIndex) 型和并发性的 ResultSet (String 对象。sql) 执行给定的 SQL ResultSet 以 Java 编程语言中 int 语句,该语句返回单个 的形式检索此 ResultSet 对象的当对象。 ResultSet 提供了检索不同类型字段的方法 ,最常用的方法介绍如下 int executeUpdate (String sql) 前行中指定列的值。 getString()获得在数据库里是 varchar,char等数据类型的对象 执行给定 SQL 语句,该语句可能为 INSERT、. String getString (int columnIndex) getFloat() 获得在数据库里是 Float数据类型的对象 UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语 以 Java 编程语言中 String 的形式检索此 ResultSet 对象的 getDouble() 获得在数据库里是 Double行数据类型的对象 . 句(如 SQL 获得在数据库里是 DDL 语句)。 当前行中指定列的值。 getDate() Date数据类型的对象. getObject()在SQL中无对应类型,可以获得序列化对
难点
关键实践
• • •
查询记录 更新记录 删除记录
第6章 在JSP中使用数据库
本章将学习在 JSP 技术中怎样使用数据库,为 了更好的体现一个 Web 应用将数据的处理和显示 相分离,除个别例子为了说明基本知识外,
§6.1. SQL Server 2000数据库管理系统
1、安装:注意选择登陆模式不要windows验证模式 如果是win7 注意安装升级补丁sp3, 课程中下载
4 创建表
打开“企业管理器”,用鼠标单击“数据库”下的 Warehouse 数据库, 在 Warehouse管理的“表”的选项上单击右键,选择“新建表”,将出 现相应的建表界面,我们建立的表是product,该表的字段(属性)为: number(char),name(char),madeTime(datetime),price(float). 其中 “number”字段为主键.
6.3.2
使用Java数据库驱动程序_1
Java连接数据库准备工作:(以连接SQL Server 2000为例)
•纯Java驱动程序下载。不同数据库驱动程序不同。 •安装后此文件后,在lib子目录中找到驱动文件,将其复制到 Tomcat所用的JDK的\jre\lib\ext文件夹中或Tomcat的安装目录 \lib中。 •JSP初始化工作: <%@ page import="java.sql.*" %> …… Connection con=nቤተ መጻሕፍቲ ባይዱll; Statement stmt=null; ResultSet rs=null; 、 ……
其它步骤同Access
例6-1
6.3.2
使用Java数据库驱动程序_1
用 Java 语言编写的数据库驱动程序称作 Java 数据库驱动程 序。 JDBC 可以调用本地的 Java 数据库驱动程序和相应的数据 库建立连接 。
●java.sql.DriverManager:
JDBC概述
JDBC接口 1.面向程序开发人员的JDBC API JDBC API主要包括下面这些接口: 主要接口使用依赖关系如下: (不是继承关系)
§6.1. 其它数据库
1、Mysql数据库 2、Excel数据库 3、access数据库
§6. 2. JDBC
JDBC(Java DataBase Connectivity )是Java运行平台的核心类库 中的一部分,提供了访问数据库的API,它由一些Java类和接口组成。 JDBC操作不同的数据库仅仅是连接方式上的差异而已,使用JDBC的 应用程序一旦和数据库建立连接,就可以使用JDBC提供的API操作数据 库 .我们经常使用JDBC进行如下操作: 与一个数据库建立连接。 向已连接的数据库发送SQL语句。 处理SQL语句返回的结果。
§6.3. 连接数据库的常用方式
1.一种常见方式是使用JDBC-ODBC桥接器: 2.另一种是加载Java数据库驱动程序 安装JDBC驱动: 可以从网络课程下载. 解压缩后将三个文件拷贝到 WebContent 的 webinf的lib目录中。或者拷贝到tomcat的lib目录。
6.3.1 JDBC-ODBC桥接器_1
创建ODBC数据源
Windows控制面板_管理工具_ ODBC数据源
和ODBC数据源建立连接
Connection con=
DriverManager.getConnection(“jdbc:odbc: 数 据 源 名 字 ” ,“ 登 录 名 ” ,“ 密 码”);
SQLServer桥接例题例6-1 P144
6.11.2
连接Access数据库
Access: JDBC-ODBC桥接器方式连接Access数据库。 1.建立JDBC-ODBC桥接器 try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e){ out.print(e); } 2. 创建 ODBC 数据源时选择的数据库驱动程序为: Microsoft Access Driver(*.mdb),设置的数据源的名字为redsun 3.和ODBC数据源建立连接 Connection con= DriverManager.getConnection(“jdbc:odbc: “ 数据源名 字”,“登录名”,“密码”); 例6-1 代码见备注
DriverManager
Connection
Connection
Connection
Stament
Stament
Stament
Stament
处理驱动的调入并且对产 生新的数据库连接提供支 持。 ●java.sql.Connection:代 表对特定数据库的连接。 ●java.sql.Statement:代表 一个特定的容器,来对一 个特定的数据库执行SQL 语句。 ●java.sql.ResultSet:控制 对一个特定语句的行数据 的存取。 其中java.sql.Statement又有 两个子类型: ●java.sql.PreparedStatemen t:用于执行预编译的SQL 语句。 ●java.sql.CallableStatemen t:用于执行对一个数据库 内嵌过程的调用。
2 启动SQL Server 2000
单击“开始”→“程序”→“Microsoft SQL Server” →“服务器管理器”
3 建立数据库
单击“开始”→“所有程序”→“Microsoft SQL Server” →“企业管 理器”,新建立的数据库名称是“Warehouse”
4 创建表
打开“企业管理器”,用鼠标单击“数据库”下的 Warehouse 数据库, 在 Warehouse管理的“表”的选项上单击右键,选择“新建表”,将出 现相应的建表界面,我们建立的表是 product ,该表的字段(属性)为: number(char),name(char),madeTime(datetime),price(float). 其中 “number”字段为主键.
使用JDBC-ODBC桥接器方式的机制是,应用程序 只需建立JDBC和ODBC之间的连接,而和数据库的连 接由ODBC去完成。
6.3.1 JDBC-ODBC桥接器_2 使用JDBC-ODBC桥接器访问数据库的步骤: 建立JDBC-ODBC桥接器
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e){ out.print(e); }
§6.12 查询Excel电子表格 通过JDBC-ODBC桥接器访问Excel电子表格.
步骤: 1.设置数据源
为数据源选择的驱动程序是Microsoft Excel Driver。
2.选择表
必须在电子表格中选出一工作区作为连接时使用的表。 在Excel电子表格中拖动鼠标选出范围,如上图6.34所示。 然后在Excel菜单中选择“插入”→“名称”→“定义”, 给选中的工作区命名(这一工作区的名称将作为连接时使用 的表名)。
} catch(Exception e){
建立连接:
例6-2 P146
try{
String uri="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=dbhouse";
String user="sa"; String password="sa"; con=DriverManager.getConnection(uri,user,password); catch(SQLException e){ out.print(e); }