Presentation is loading. Please wait.

Presentation is loading. Please wait.

数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {

Similar presentations


Presentation on theme: "数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {"— Presentation transcript:

1 数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {
public static void main(String[] args) { String strCon = "jdbc:mysql:// :3306/test"; //连接字符串 String strUser = "root"; //数据库用户名 String strPwd = "root"; //口令 System.out.println("正在连接数据库..."); try { //监控异常 Class.forName("com.mysql.jdbc.Driver"); //加载驱动程序 Connection con; //获得连接对象 con = DriverManager.getConnection(strCon, strUser, strPwd); System.out.println("成功连接到数据库。"); Statement sta = con.createStatement(); //创建语句对象 //执行SQL语句 String strSql = "DELETE FROM Friends WHERE [Name] = '郑六'"; int count = sta.executeUpdate(strSql); System.out.println("成功删除" + count + "行数据。"); sta.close(); con.close(); //关闭所有已经打开的资源 } catch (ClassNotFoundException cnfe) { cnfe.printStackTrace(); } catch (SQLException sqle) { sqle.printStackTrace(); } } }

2 操作结果集 使用Statement对象的executeQuery方法成功执行SELECT语句后,将返回一个包含有结果数据的ResultSet对象,要从该对象中获取数据,将使用到如下方法: 方 法 原 型 说 明 boolean next() throws SQLException 将结果集游标往下移动一行,如果已经到达结果集最后,将会返回false,有可能抛异常,必须捕捉 X getX(String columnName) 获得某个字段的值,X是指具体的数据类型,视数据库表中字段的具体情况而定,该方法有一组,并且每个都有两种重载方法,一种是以字段名称为参数,另一种是以字段索引为参数(字段索引从1开始),有可能抛异常,必须捕捉 X getX(int columnIndex)

3 操作结果集示例 try { String strCon = "jdbc:odbc:MyODBC";
System.out.println("正在连接数据库..."); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con; con = DriverManager.getConnection(strCon, "sa", ""); System.out.println("成功连接到数据库。"); Statement sta = con.createStatement(); ResultSet rs = sta.executeQuery("SELECT * FROM Friends"); System.out.println("查询到数据如下:"); while (rs.next()) { //循环将结果集游标往下移动,到达末尾返回false //根据字段名称获得各个字段的值 System.out.print(rs.getString("Name") + "\t"); //获得字符串 System.out.print(rs.getString("Address") + "\t"); //获得字符串 System.out.print(rs.getInt("Telephone") + "\t"); //获得整数 System.out.print(rs.getDate("HireDate") + "\t"); //获得日期型数据 System.out.println(rs.getFloat("Salary")); //获得浮点型数据 } rs.close(); sta.close(); con.close(); } catch (ClassNotFoundException cnfe) { cnfe.printStackTrace(); } catch (SQLException sqle) { sqle.printStackTrace(); }

4 Sql语句 select * from [table] where id=3; insert into [table] (id, uname, psw) values (1, 'abc', '123'); update [table] set uname='abc'; delete from [table] where id=3;

5 总结 JDBC是使用Java程序操作数据库的技术; 使用 Class类的forName 方法可以将驱动程序加载到 Java 解释器中; 使用DriverManager类的getConnection方法获得Connection对象,从而建立与数据库的连接; 使用Connection对象的createStatement方法创建语句对象,以便执行SQL语句; 使用Statement对象的executeQuery或executeUpdate方法执行SQL语句,并使用ResultSet对象来操作结果数据; PreparedStatement接口允许创建预编译的SQL语句,并使得在后续阶段可以指定语句的参数。

6 2018/11/15 Java语言程序设计-Web应用开发程 教师:段鹏飞

7 学完本门课程,能够: 课程目标 理解JavaWeb应用概念 使用Servlet完成客户端请求与转发控制 使用JSP编写动态服务端端页面
掌握经典MVC(Model-View-Control)三层架构应用开发 教员要强调学员多上机练习

8 编写第一个Servlet程序:HelloServlet
本课案例 编写第一个Servlet程序:HelloServlet 教员演示本章的三个案例

9 Tomcat服务器与Eclipse的集成与测试
课程内容 理解JavaWeb的常规应用领域 掌握应用服务器Tomcat的安装 熟悉Web工程目录结构及其作用 Web工程项目的部署与服务器的启动 Tomcat服务器与Eclipse的集成与测试

10 静态网页 vs 动态网页 生活中的动态网页 服务端同一个页面可以根据不同的输入返回不同的网页,这就是动态网页

11 B/S架构 vs C/S架构 B/S带给我们的全新体验 C/S的局限性 Internet 全球用户群中资源共享 公司局域网
特定用户群中资源共享 客户机1 中国用户 数据库服务器 百度服务器 数据库服务器 客户机2 无需安装客户端软件 必须安装客户端软件 美国用户 客户机N

12 B/S中浏览器端与服务器端采用请求/响应模式进行交互
B/S架构 vs C/S架构 B/S是浏览器/服务器端,程序完全放在服务器上,不用在客户端安装任何软件,客户端只需一个浏览器即可访问应用程序,它是基于Internet的产物 B/S中浏览器端与服务器端采用请求/响应模式进行交互 在应用服务器中布署运行程序 IE 应用 服务器 数据库 服务器

13 B/S体系的发展 2000年以前:C/S结构程序占主导地位,热门的开发工具包括C++、Delphi、Java等。 2000年以后:B/S结构应用成为主流方向,热门的开发技术包括ASP、PHP、JSP、J2EE、ASP.NET等。 软件体系结构:从2层体系向3层体系以及n层体系发展

14 Web服务器能做些什么 2 1 3 4 运行JSP/Servlet/JavaBean技术编写的Web应用 解释执行 HTML文件
客户端的请求信息 发送请求 IE 访问数据库 1 3 用户输入 返回结果 Web应用服务器 数据库服务器 返回响应 从服务器端检索到的信息 4 Web服务器接收客户通过浏览器发送请求到服务端,然后服务端以网页的形式向客户端返回用户请求的资源。

15 HTTP协议 Http1.0中浏览器访问网页的过程: 网页文档 图片1 图片2 图片3 WEB服务器 浏览器

16 HTTP协议 两种请求方式: 两种方式的特点: Get方式:用户数据作为 URL 中的查询字符串传递给服务器,而body中的数据为空
Post方式:用户数据打包在body中传输给服务器,不在URL中显露 两种方式的特点: Get方法所传输的数据在url中可见,post则不可见 Get方法所传输的数据量有限制(一般在1KB以内),Post方法则要大得多(默认为2MB,还可以设置的更大)。

17 HTTP协议 请求消息示例:

18 网址: http://tomcat.apache.org
Tomcat服务器安装 网址:

19 Tomcat安装好之后在安装目录下的bin目录中双击一个称为 startup.bat 的文件启动Tomcat服务器
双击桌面上的IE图标打开IE浏览器并在地址栏中输入: 如果显示如下界面代表安装成功: 注意:localhost可以使用回环地址 代替,该地址永远代表本机IP地址

20 Tomcat目录层次结构 存放启动和关闭 Tomcat 的脚本文件 存放 Tomcat 服务器的各种配置文件
web应用所在目录,即供外界访问的web 资源的存放目录 Tomcat 的工作目录

21 使用JavaWeb开发动态网站的步骤 1、创建一个Web项目 2、设计Web项目的目录结构 3、编写Web项目的代码 4、部署Web项目 5、运行Web项目

22 创建一个Web项目 在菜单栏选择:文件  新建  项目 1 在弹出的窗口中选择:eclipse  Dynamic Web Project 2 输入Web项目名称(设置为news),以及其余相关信息之后点击确认创建好WEB工程 3

23 设计Web项目的目录结构 src文件夹:存放Java源文件 WebRoot:Web应用的根目录,这个目录是打包目录
META-INF:系统自动生成,存放系统描述信息 WEB-INF:该目录中内容不能对外发布 lib文件夹:存放以jar/zip形式表现的库文件 web.xml:Web应用的初始化配置文件 静态文件(包括图片、样式表、HTML等)存放在Web应用的根目录下,一般按功能以文件夹形式分类

24 编写 Web 项目的代码 1 右键点击WebRoot  新建  HTML : 创建一个新的HTML文件 2 在弹出的窗口中,选择文件路径、输入文件名称 3 填充HTML文件内容

25 PrintWriter out = response.getWriter(); // 使用 "out"把应答内容发送到浏览器
Servlet基本结构 public class SomeServlet extends HttpServlet { // 必须继承自HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { // 使用“request”读取和请求有关的信息(比如Cookies)和表单数据 // 使用“response”指定HTTP应答状态代码和应答头(比如指定内容类型,设置 Cookie) PrintWriter out = response.getWriter(); // 使用 "out"把应答内容发送到浏览器 } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { …… }

26 Servlet生命周期

27 Servlet工作原理 响应 响应 客户机 HTTP GET请求 doGet()方法 HTTP POST请求 doPost()方法
Web服务器

28 第一个Servlet程序 第二步:创建一个HelloServlet的类

29 第一个Servlet程序 第三步:重写HttpServlet类中的doGet和doPost以及GenericServlet类中的init和destory方法(注:HttpServlet抽象类继承于GenericServlet抽象类) package com.scxh.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException { doPost(req,resp); } protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException { PrintWriter pw=resp.getWriter(); pw.write("Hello Word!"); public void destroy() {super.destroy();} public void init() throws ServletException {super.init();}

30 第一个Servlet程序 第四步:在WEB-INF文件夹下的web.xml文件中配置Servlet类

31 第一个Servlet程序 第五步:部署Web工程,启动Tomcat服务器并使用浏览器访问服务器以测试编写的Servlet类

32 JSP简介 JSP本质上就是把Java代码嵌套到HTML中,然后经过JSP容器的编译执行,可以根据这些动态代码的运行结果生成对应的HTML代码,从而可以在客户端的浏览器中正常显示。在这个小节中将介绍JSP的运行原理、JSP的优点和其运行环境的搭建。

33 JSP执行过程 servlet servlet分析器 jsp parser JSDK *.jsp *.java *.class
request 执行 response

34 JSP执行过程 查找对应的JSP文件 Y N 是否存在 Y N 是否是修改或创建 后第一次调用 Y 调用Jsp Parser将其
编译成Servlet程序 Client 调用JSDK将对应的Servlet 程序编译成Servlet字节码 Server 执行(若未载入则先载入) 已有的对应的Java字节码

35 选择JSP的原因 (1)可以直接把JAVA 代码嵌入到HTML中,充分利用JAVA语言的语法和类库。 (2)具有跨平台的优势 (3)JSP中可以使用JavaBean进行逻辑封装,实现逻辑功能代码的重用,提高系统的可重用性。 (4)JSP程序容易上手。 (5)在JAVA领域,有许多开源项目,能够提供丰富的JAVA类、组件,提高开发效率以及系统健壮性。

36 JSP文件结构 page contentType="text/html;charset=gb2312" %> page import="java.util.*“ %> ... <HTML> <BODY> 其他 HTML 语言 <% 符合JAVA 语法的 JAVA 语句 %> </BODY> </HTML>

37 JSP语法概述 JSP原始代码中包含了JSP元素和Template data两类 Template data指的是JSP引擎不处理的部分,即标记<%……%>以外的部分,例如代码中的HTML的内容等 ,这些数据会直接传送到客户端的浏览器。 JSP元素则是指将由JSP引擎直接处理的部分,这一部分必须符合JSP语法,否则会导致编译错误。

38 JSP语法概述 脚本元素(Scripting Element)
脚本元素用来在JSP中嵌入Java代码,它允许声明变量和方法,包含任意脚本代码和对表达式求值。这些Java代码将成为转换得到的Servlet的一部分。 指令(Directive) %>标记。 动作(Action) 动作用来引入现有的组件或者控制JSP引擎的行为。

39 声明 JSP基础——声明 语法:<%! declaration; [ declaration; ] ... %> 样例:
page language=”java” import=”java.util.*” %> <html> <head> <title>berhely</title> </head> <body> <%! int i = 0; %> <%! int a, b, c; %> <%! Date date; %> <%! int doSomething() …… } %> </body> </html>

40 语法:<%= expression %>
JSP基础——表达式 表达式 语法:<%= expression %> 样例: page language=”java” import=”java.util.*” %> <html> <head> <title>berhely</title> </head> <body> <%! Date date=new Date(); %> <%! int a, b, c; %> <% a=12;b=a; c=a+b;%> <%=date.toString()%> <b>a=<%= a %></b><br> <b>b=<%= b %></b><br> <b>c=<%= c %></b><br> </body> </html>

41 脚本段 语法:<% code %> JSP基础——脚本段 样例:
page language=”java” import=”java.util.*” %> <html> <head> <title>berhely</title> </head> <body> <% for(int i = 0; i < 10; i++) {out.println(“berheley”);} %> </body> </html>

42 总 结 JavaWeb学科是Java在B/S结构领域内的应用,B/S架构相对于C/S架构而言的优点在于使用维护方便
总 结 JavaWeb学科是Java在B/S结构领域内的应用,B/S架构相对于C/S架构而言的优点在于使用维护方便 中小型企业常用的Web应用服务器是Tomcat,Tomcat服务器的默认端口是8080,安装后bin目录提供Tomcat的启动与停止等脚本文件,conf目录提供Tomcat的常用配置,webapps目录提供给用户部署工程项目 在IDE环境中,一个JavaWeb应用程序的目录分为两个部分,src源文件夹和WebRoot文件夹,前者用于保存程序员开发的源程序,后者用于发布到服务器进行工程部署,其中WebRoot文件夹下的文件提供给外界客户端直接访问,WEB-INF文件夹下的文件则提供给服务器自己调用 一个WEB工程的部署有多种形式,包括和IDE继承开发环境的调试部署方式,这需要将Tomcat集成到MyEclipse中去 编写Servlet程序时不再需要main方法,main方法放置于Tomcat服务器内部,Servlet程序提供了Servlet接口供程序员去编写实现,最后由服务器来完成调用

43 2018/11/15 谢谢


Download ppt "数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {"

Similar presentations


Ads by Google