文章目录
介绍
1.JSP:JSP是一种运行在服务器端的脚本语言,在静态的HTML代码中加入Java代码段和JSP标签形成JSP文件,JSP的成功在于动态代码的封装,如使用各种元素标记,使页面显示和数据处理分离。一次编译多次多处运行,JSP第一次被请求时,先被转化成百分百的java代码的servlet程序,之后被编译成字节码文件,以后除非页面改动、web服务器重启,那么JSP才会编译JSP文件。下图一个简单JSP程序:
```
<% @page contentType="text/html;charset=gb2312" %>
<% @page info="JSP Example" %>
<html>
<head>
<title>JSP Example</title>
</head>
<body>
<%
out.println("你好,JSP <br>");
out.println("<br> Hello,world!<br>");
%>
</body>
</html>
```
JSP文件部署到tomcat下webapps\ROOT下
2.Tomcat:
在web开发中有许多服务器可供开发者选择,著名的有Tomcat、resin、Jrun、ServletExec和WebSphere等,其中Tomcat免费开源。Tomcat 是当今使用非常广泛 Web 服务器软件,且开源免费。客户端向服务端的 Tomcat 发送请求,之后 Tomcat 会将 JSP 翻译成 Servlet 源代码,并进行编译成为 .class 文件,之后加载到内存中,最后把执行结果(标准 HTML 文件)作为响应发送到浏览器解释执行。
3.JavaBeans
本质上就是一个Java类,遵循特定的编写规范,实现的是封装后端操作数据的业务逻辑,与 V 与 C 相对独立。
4.Servlet
Servlet 是作为 控制器存在的,是目前流行开发企业 Web 应用轻量级框架的技术基础,Servlet 的本质也是 Java 类,JDK 中相应的 Servlet 的包提供,平常编写会继承自 HttpServlet 或者 FIlter 过滤器比较多。所有的 Servlet 必须遵守 HTTP 协议,其有四个生命周期,JDK 中的 javax.servlet 包下很好的定义了它的编程接口。
5.JDBC
一般使用的 MySQL 和 Oracle 数据库比较多,使用时先下载导入相应驱动包,之后利用 JDK 提供的操作数据库的接口和驱动包中接口的实现来完成对数据库的操作,JDBC 是一种访问数据库的技术标准,或者理解成是 Java 语言它的 JDK 所提供的一种标准访问数据库应用程序接口(标准 JDBC API),这就是JDBC。它提供两层和三层数据访问模型。以前使用JDBC-ODBC桥,效率不高,现在用的多的是JDBC+DATABASE连接方式。
6.框架
Spring 是核心,Mybatis 是数据库操作相关的,Struts 或 SpringMVC 是与页面数据交互的。
JSP
1.JSP运行机制
- 第一步:(客户端) 浏览器向服务器(Tomcat)发送请求(Request)
- 第二步:(服务端) JSP服务器(Tomcat)将JSP翻译成Servlet源代码(.java文件)
- 第三步:(服务端) 将.java进行编译,变成.class文件,并将.class文件加载到内存中执行
- 第四步:(服务端) 把执行结果(标准HTML文本)作为相应(Response)发送至客户端由浏览器解释显示。
2.JSP基本语法
2.1脚本元素:
是嵌入到JSP页面的Java代码。
声明 <%! int x1=0; %>
表达式 <% =new java.util.Date() %>
脚本程序
注释 <%-- --%>
2.2指令元素:
是针对JSP引擎设计的,他控制JSP引擎如何处理代码,包括include指令page指令和taglib指令。所有JSP指令只在JSP整个文件范围内有效,并且不会向客户端产生任何输出。
2.2.1page指令:
页面指令,来定义JSP页面的全局属性并设计属性值,而这些实行将被用于和JSP容器通信,通常放在JSP页面代码首部。
```
<%@ page 属性1="value" 属性2="value" ... %>
<%@ page
language="java" extends="package.class"
import="package.class" session="true|false"
buffer="none|8kb" autoflush="true|false"
isThreadSafe="true|false" info="text"
errorPage="relativeURL"
contentType="text/html;charset=gb2312"
isErrorPage="true|false"
%>
```
| 属性 | 说明 |
| ------------- |-------------|
| language | 指定用到的脚本语言,默认java |
| import | 用于导入java包或java类 |
| pageEncoding | 指定页面所用编码,默认与contentType同 |
| extends | JSP装换成Servlet后继承的类 |
| session | 指定该页面是否参加到HTTP会话中 |
| buffer | 设置out对象缓冲区的大小 |
| autoflush | 设置是否自动刷新缓冲区 |
| isThreadSafe | 设置该页是否是线程安全 |
| info | 设置页面相关信息 |
| errorPage | 设置当前页面出错后要跳转到的页面 |
| contentType | 设计相应jsp页面的MIME类型和字符编码 |
| isErrorPage | 设置是否是一个错误处理页面 |
| isELIgnord | 设置是否忽略正则表达式 |
2.2.2include指令:
文件加载指令,在该指令位置静态嵌入一个文件,。被嵌入的可以是JSP文件HTML文件文本或是Java程序。在Web开发中,多个页面含有相同的功能,比如说登录验证导航等,于是可以相同的功能放在一个文件中,然后由需要这些功能的页面用include指令包含进来。
```
<%@ include file="文件URL" %>
```
2.2.3taglib指令:
用来指定用户页面能够调用的用户自定义标签。
```
<%@ taglib uri="taglibURI" perfix="tagprefix" %>
```
其中uri表示表示标签描述符,perfix表示在JSP页面中引用这个标签时使用的前缀名。
2.3动作元素:
用于连续使用组件,另外还可以控制JSP引擎的动作,主要有include动作和forward动作。常用来执行一些标准常用的JSP动作,重用JavaBeans控件,设置JavaBeans属性,导向另一个页面,为Java插件生成HTML代码等。
2.3.1<jsp:include />
页面运行时动态插入一个文件。
在即将生成的页面上动态插入文件,include指令是静态的,include动作是动态的。下面代码中page后面是一个路径,param表示传参,该代码可以向被包含的文件中传递参数,取数据时可以request.getParameter(“参数名”)
```
<jsp:include page="文件名" />
<jsp:param name="参数名1" value="参数值1">
<jsp:param name="参数名2" value="参数值2">
......
</jsp:include>
```
2.3.2<jsp:forward />
引导请求者进入新的页面。
该动作用于重定向页面,转向另一个页面时同时清空缓冲区,会出现在页面上看到的是另一个页面,可是地址却是原地址。
```
<jsp:forward page="要转向的页面URL" />
<jsp:param name="参数名1" value="参数值1">
<jsp:param name="参数名2" value="参数值2">
......
</jsp:forward>
```
2.3.3<jsp:plugin />
插入一个Applet或Bean插件。
plugin动作是将服务器的Java小应用(Applet)或JavaBeans组件下载到浏览器端去执行,相当于在客户端浏览器插入Java插件。下面代码中,type表示插入对象的类型,code知名被插入对象的Java class名,codebase表示code所指文件的目录名,name来制定被插入的applet或者bean对象名。
```
<jsp:plugin
type="bean|applet"
code="保存类的文件名"
codebase=“类文件目录路径”[name="对象名"]
......
>
</jsp:plugin>
```
2.3.4<jsp:useBean />
使用JavaBean插件。
声明并创建 JavaBean 对象实例。JSP 通过id识别 JavaBean,通过 id.method 类似语句来操作 JavaBean,如<% user.check(); %>
<jsp:useBean id="user" class="bean.BusinessBean" scope="request" />
2.3.5<jsp:setProperty />
设置JavaBean属性。
下面代码中,beanname 代表 JavaBean 对象名,对应 < jsp:useBean > 标记的 id 属性,propertyname 代表 JavaBean 属性名,beanvalue是要设置的值,可以实现自动类型转换。
<jsp:setProperty name="beanname" property="propertyname" value="beanvalue" />
2.3.6<jsp:getProperty />
返回JavaBean属性值。
<jsp:getProperty name="beanname" property="propertyname" />
3.JSP内置对象
JSP内置对象大大简化Web开发工作,有9大内置对象:request,response,out,session,application,config,pageContext,page,exception,最常用前五个。
- 3.1 request -javax.servlet.http.HttpServletRequest
主要用于接受客户端通过HTTP协议连接到Web服务器的数据,如表单传信息。用来封装一次请求,当客户端通过HTTP协议请求一个JSP页面时,JSP容器会自动创建request对象并将请求信息包装到request对象中,JSP容器处理完毕后,request对象销毁。使用较多的有getParameter(),getParameterNames(),getParameterValues()等方法。下述代码是已经从一个表单中传递两个分别是name=?和age=?的数据给另一个JSP文件,在这个JSP文件中来接收。
<%
String name=request.getParameter("name");
String age=request.getParameter("age");
%>
- 3.2 response -javax.servlet.http.HttpServletResponse
主要用于相应客户请求,当服务端向客户端传数据时,JSP容器会自动创建response对象并将信息封装,当JSP容器处理完成请求后,response对象会被销毁。常用方法页面重定向sendRedirect()和页面刷新或定时跳转setHeader()和设置状态行setStatus()和设置文本类型setContentType()等。
<%
response.sendRedirect("http://www.baidu.com");页面重定向
response.setHeader("Refresh","5")页面每隔5s自动刷新
......
%>
- 3.3 session -javax.servlet.http.HttpSession
保存有多个页面之间跳转浏览的信息,从客户打开浏览器连接到服务端始至客户关闭浏览器离开服务器止称为一个session会话。每当一个用户与服务器连接时,服务器为每个用户创建一个session对象,并设定其中内容,各session对象之间相互独立,服务器因此可以借此来辨别用户信息,进而提供个别服务。session常用于跟踪用户的会话信息,其属性可以在多个页面之间共享。一个页面可以session.setAttribute()写数据,另一个页面session.getAttribute()读数据。
test1.jsp
<%
session.setAttribute("name",name);
session.setAttribute("type",type);
response.sendRedirect("test2.jsp");
%>
test2.jsp
<% =session.getAttribute("name"); %>
<% =session.getAttribute("age"); %>
- 3.4 application -javax.servlet.ServletContext
application对象是服务器运行期间所有客户共享的对象,用于客户之间数据共享,类似与服务器运行期间的全局变量。服务器启动后创建application对象,多个客户访问时共享一个application对象,服务器关闭后会释放application对象。无论哪个用户再访问统一网站时都可以对该网站的application进行操作,可以用来统计用户访问量等。下面代码统计访问量。
<%
if(application.getAttribute("counter")==null)
application.setAttribute("counter","1");
else
application.setAttribute("counter",Integer.toString(Integer.valueOf(application.getAttribute("counter").toString()).intValue()+1));
%>
<% =application.getAttribute("counter") %>
3.5 out -javax.servlet.jsp.JspWriter
out对象向客户端输出流进行写操作的对象,用于各种数据输出。out对象发送的内容是文本一级,生存期是当前页面。out也有许多方法。
3.6 pagContext -javax.servlet.jsp.PageContext
pageContext是页面上下文对象,是一个接口。主要是存储与当前页面相关的信息,如属性,内置对象,并通过对象方法获取当前页面的信息。使用pageContext对象提供的方法可以访问本页面的其他对象。它也有许多常用的方法。
3.7 page -javax.servlet.jsp.HttpJspPage
page对象是指当前JSP程序本身的对象。page对象很少在JSP页面中使用。可以使用Object对象的许多方法。
3.8 config -javax.servlet.ServletConfig
config对象保存页面初始化配置信息,主要有getServletContext()方法,用来获得servlet与服务器交互信息;getInitParameter(String name)方法,返回由name指定名字的初始化参数值,如果参数不存在则返回空值;getInitParameterNames(String name)方法,返回所有初始化参数名的集合,若参数不存在,则返回空值。
3.9 exception -java.lang.Throwable
exception对象用来发现捕获处理异常,若JSP页面在运行时有异常现象发生,则抛出一个异常,若页面中定义了异常处理页,则可由异常处理页来处理异常,异常处理页要包含<%@ page isErrorPage=“true” %>语句,若没有定义异常处理页,则有服务器处理异常,也可以在catch程序段中捕获异常。常用getMessage()方法获取异常信息,toSring()方法获取该异常对象的简短描述,若该对象包含异常消息字符串,则返回数据“对象的实际类名+’:’+getMessage方法的返回值”,若该对象不包含异常消息字符串,则返回实际的类名。
test.jsp
<%
int a=10,b=0,c;
try{
c=a/b;
out.print(c);
}catch(ArithmeticException ae){
throw new ArithmeticException("错误信息:"+ae.getMessage());
}
%>
testep.jsp
<% =exception.toString() %>
Tomcat
1.Tomcat运行机制
Tomcat 是一个 Web 容器,而 Web 容器更准确的说应该叫 Web 服务器,Web 服务器是来管理和部署 Web 应用的,其实还有一种服务器是应用服务器,它功能比 Web 服务器强大的多。Tomcat 是 Web 容器也是 Servlet 容器。
2.Tomcat安装配置
网上下载Tomcat文件,有exe的和zip的,都可以。成功下载安装后,在浏览器地址中输入:http://127.0.0.1:8080将会打开Tomcat默认主页,Tomcat默认监听的端口号为8080,有的人会改成80端口。
3.Tomcat目录结构
目录 | 用途 |
/bin | 存放启动和关闭Tomcat脚本文件 |
/conf | 存放Tomcat服务器各种配置文件 |
/lib | 存放Tomcat服务器和所有Web应用程序需要访问的JAR文件 |
/logs | 存放Tomcat日志文件 |
/temp | 存放Tomcat运行时产生的临时文件 |
/webapps | 存放Web应用程序的目录及文件 |
/work | 存放有Tomcat转化JSP生成的Servlet文件和字节码文件 |
4.Java Web应用程序的目录结构
目录 | 用途 |
/src | Java代码 |
/images | 图片资源 |
/common | web各应用模块中可能用到的一些共享文件,如版权信息 |
/WEB-INF | 此目录下的文件主要是供Tomcat使用 |
/WEB-INF/web.xml | 是每个web应用都有的,是配置文件 |
/WEB-INF/lib | 用于存放以压缩包.jar形式存放的java类 |
/WEB-INF/classes | 用于存放所有所有和网站相关的编译后的Java类文件 |
JavaBeans
1.JavaBeans简介
虽然JSP中允许嵌如Java代码段完成复杂数据处理,但维护不易,最好的办法就是将Java代码从JSP中分离放入JavaBeans中装,供JSP调用。JavaBeans封装了数据的业务逻辑,JavaBeans分为两种,一种是有用户界面的JavaBeans,比如Java工具集AWT,另一种是没有用户界面的更多被应用到JSP中,主要负责访问数据库执行查询操作的JavaBeans等。JavaBean实际上就是一个Java类。传统开发模式是JSP+JavaBeans,业务逻辑封装在JavaBeans中,而JSP负责页面显示和流程控制,在JSP中通过动作标签调用这个JavaBean类。新开发模式是JSP+Servlet+JavaBeans,加上了Servlet,servlet是作为控制器,进一步划分出JSP的功能,使得JSP更简洁更易维护。
2.JavaBeans使用
编写JavaBean要遵循的规范:
- JavaBean 是一个公共类。
- JavaBean 类具有一个公共无参的构造方法。
- JavaBean 所有的属性定义为私有的。
- JavaBean中要对每个属性提供两个公共方法,setXxx();用来设置属性xxx的值,getXxx();用来获取属性xxx的值,若属性类型是boolean则方法名为isXxx();
- 定义JavaBean时,通常放在一个命名的包下。
编写JavaBean可以先不必加入到JSP程序中调用,一般情况下附加一个main()方法来进行调试,调试好后JavaBean就可以被调用了。设计好的Java类经过编译后,必须部署到Web应用程序中才能被JSP或Servlet调用,将编译好的.class文件复制到WEB-INF/classes/xxxx中,若是压缩包则保存在WEB-INF/lib下。
Servlet
1.Servlet简介
是J2EE三大基础技术之一,是目前流行开发企业Web应用的轻量级框架的技术基础,Servlet使用Java语言编写的服务器端程序,担当客户请求与服务器相响应的中间层,属于J2EE中间层技术,由服务器调用和执行的,可处理客户端传来的HTTP请求,并返回一个响应。Servlet是按照Servlet自身规范编写的Java类,独立于平台,必须运行在支持Java技术的Web服务器中。所有Servlet容器必须支持HTTP协议,当用户发送HTTP请求访问Web服务器,由Servlet容器根据Servlet配置决定调用某个具体Servlet来处理,当容器调用Servlet时,将代表请求与响应的两个对象传递给Servlet,Servlet利用请求对象来定位远程用户,获取HTTP POST参数以及相关数据,进行相应处理,然后借助响应对象发送给用户。一旦Servlet完成请求处理,容器会刷新响应,把控制交还给Web服务器。虽然Servlet使用起来很繁琐,但是可以使用Java平台大量的API,Servlet主要负责流程控制。
2.Servlet生命周期
Servlet容器的作用主要是管理Servlet生命周期。
- 加载: Servlet容器加载Servlet类并实例化一个Servlet实例对象。
- 初始化 init() :Servlet容器调用该实例对象的init()方法进行初始化。当Servlet对象创建后,紧接着就会执行该方法。
- 调用 service() :若Servlet容器收到对该对象Servlet的请求,则调用此时离对象service()方法处理请求并返回响应结果。Servlet处理请求时自动执行service()方法,该方法根据请求类型get | post来调用doGet()或doPost()方法,doGet()方法处理HTTP GET请求,doPost()方法处理HTTP POST请求,因此建立Servlet时,一般只需要重写doGet()或doPost()方法。
- 销毁 destroy() :Servlet容器卸载该Servlet前调它的destroy()方法。对象销毁时自动执行。
package bag;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TestServlet extends HttpServlet{
//初始化
public void init(ServletConfig config)throws ServletException{
}
//处理post请求
public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
......;
}
//处理get请求
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
doPost(request,response);
}
//销毁
public void destroy(){
}
}
3.Servlet运行机制
当浏览器发送给服务器一个 Servlet 请求,若这个 Servlet 第一次被调用,那么服务器将会自动创建一个 Sevlet 实例并运行它,若这个 Servlet 已经实例化了,那么服务器会新启动一个线程来运行它。多个线程有可能访问共享全局变量,在使用这些全局变量时要格外小心,
4.Servlet编写
继承自HttpServlet的Servlet的整个大体框架代码在Servlet生命周期中有写。部署Servlet需要在web.xml配置文件中添加配置信息,就是主要添加两个配置元素< servlet >元素和< servlet-mapping >元素,配置内容包括Servlet访问地址,加载方式,初始化参数等。下面的xml文件TestServlet被定义为testServlet,映射地址为/test,视图文件的表单提交至test,即提交给testServlet处理。
<? xml version="1.0" encoding="UTF-8" >
< web-app id="WebApp_ID" version="2.5" >
<display-name>TestServlet</display-name>
<servlet>
<servlet-name>testServlet</servlet-name>
<servlet-class>common.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
< /web-app >
5.Servlet过滤器
- 过滤器 Filter 介绍:Servlet过滤器是在服务器上运行的,是一个Java组件,工作原理是在Servlet作为过滤器试用时,可以对客户请求进行处理,知道请求发送到目标为止,过滤器Filter能通过某种拦截机制队请求进行预处理或对相应进行处理,常用来完成注入人证处理,日志,图像格式转换或者加密等功能。一个Filter可拦截多个请求或响应,一个请求或相应也可以被多个Filter拦截,多个Filter还可以组成过滤器链。
- 过滤器 Filter 创建:过滤器Filter的创建必须实现javax.servlet.Filter接口并提供一个无参的构造函数,由javax.servlet.Filter接口定义了3个方法,有init(),doFilter(),destroy()方法。下述代码实现实现将请求的编码方式设置为支持中文的形式。
package common;
import java.io.IOException;
import javax.servlet.*;
public class MyFilter implements Filter{
//无参的构造方法
public MyFilter(){
}
//初始化
public void init(FilterConfig Config)throws ServletException{
}
//过滤功能
public void doFilter(ServletRequest request,ServletResponse,FilterChain chain)throws IOException,ServletException{
request.setCharacterEncoding("UTF-8");
chain.doFilter(request,response);
}
//销毁
public void destroy(){
}
}
- 过滤器 Filter 的配置:与继承自 HttpServlet 的 Servlet 一样,Filter 也是放置在 Web 应用的 classes 包中,Filter 处理类创建后也必须在 web.xml 文件中配置 FIlter ,代码如下:
<filter>
<filter-name>myfilter</filter-name>
<filter-class>common.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>myfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
6.MVC模式
MVC(Model-View-Controller,模型-视图-控制器模式),是软件工程一种软件架构模式,其目的是实现一种动态的程序设计,是程序修改和扩展简化,并且使程序模块的重复利用成为可能。MVC模式提供了将应用系统按模型,表示方式,以及行为等角色解耦的原则。MVC 中三部分相对独立,因此这种思想设计能构造良好的松耦合的组件。控制器可以用来连接不同的模型和视图去完成用户的需求。MVC 也是有缺点的,缺点是开发一个 MVC 架构的工程,将不得不考虑运用 MVC 到程序中,提高了应用的复杂性,因此 MVC 适合大中型的应用程序。
- **Model 模型 M:**体现应用程序的功能,内部封装的是应用程序的业务逻辑。Model 对数据有直接的访问权,不依赖于视图和控制器,Model 会提供一系列的功能接口支持 Model中功能的访问。
- **View 视图 V:**主要用于描述模型,实现模型有目的的显示。允许一个模型对应多个视图,视图一般不包含业务逻辑。
- **Controller 控制器 C:**用于控制应用程序的流程,控制器处理事件作出响应,事件有用户的行为和数据模型的改变等。
JDBC
1.JDBC简介
人们会将B/S计算模式称为三层计算结构,IE<——>Tomcat(JSP引擎)JDK<——>DBMS,目前较多使用的数据库管理系统DBMS有Oracle,Sybase,DB2,SQL Server,MySQL等,所以当开发数据库程序时,需要得到相应DBMS的JDBC驱动程序,然后学会使用标准JDBC API完成对数据库的基本操作。
JDBC是一种访问数据库的技术标准,JDBC API包括两个包:java.sql和javax.sql。JDBC提供两层和三层数据访问模型的支持,对于两层模型,应用与JDBC驱动交互,然后JDBC驱动再和数据源交互。对于三层模型,JDBC驱动发送命令到一个中间层,再由中间层与数据库进行交互。
JDBC-ODBC桥驱动程序:驱动程序包已经包含在JDK中,他提供了JDBC通过ODBC与数据库交互,不需要各种数据库的JDBC驱动程序,但是每个数据库必须要有ODBC驱动程序。这种模型也很简单,但是访问数据库的效率不高,不适合重用与维护。应用<——>JDBC API<——>JDBC-ODBC桥<——>ODBC驱动程序<——>数据库。
JDBC+DATABASE的连接方式:这种驱动一般由DBMS厂家提供,将JDBC API命令转换成数据库管理系统指定的本地调用,然后由本地直接调用操作数据库,这种两层模型比JDBC-ODBC桥驱动程序要快,而大多数数据库厂商在其产品中都提供了该驱动。应用<——>JDBC API<——>JDBC驱动<——>数据库。
2.JDBC驱动安装
JDBC API定义了许多接口和类,常用有下列这些,基本都存放在核心API java.sql包和拓展API javax.sql包中。
- java.sql.DriverManager: 用来加载和注册不同的JDBC驱动程序,为创建数据库提供支持。
- java.sql.Connection: 完成对某一数据库的连接功能。
- java.sql.Statement: 在已创立的连接中作为执行SQL语句的容器,它有两个重要的子类。
- java.sql.PreparedStatement: 用于执行预编译的SQL语句。
- java.sqlCallableStatement: 用于执行数据中已经创立好的存储过程。
- java.sql.ResultSet: 代表执行SQL语句后产生的数据库结果集。
- … 网上可以下载mysql驱动,mysql-connector-java-版本号.zip解压后得到mysql-connector-java-版本号-bin.jar驱动,再将这个文件copy到Web应用程序的WEB-INF\lib目录下,Web应用程序就可以通过JDBC接口访问MySQL数据库了。
其他的数据库驱动安装导入也大同小异,下面列出一些常见数据库驱动程序名字: - com.mysql.jdbc.Driver 这是MySQL驱动名
- com.microsoft.jdbc.sqlserver.SQLServerDriver 这是SQL Server驱动名
若使用ODBC则加载驱动程序是 sun.jdbc.odbc.JdbcOdbcDriver 。
3.JDBC语句
JDBC连接数据过程有:建立数据源,导入用到的包,加载驱动程序,创建与数据库的连接,创建语句对象,编写SQL语句,执行SQL语句,处理得到的结果集,关闭相关对象,处理异常。
3.1导入用到的包
import java.sql.*;
import.javax.sql.*;
3.2加载驱动程序
Class.forName("com.musql.jdbc.Driver").newInstance();
3.3创建与数据库连接
String url="jdbc:mysql://localhost:3306/mydb";
String user="root";
String password="12345";
Connection con=DriverManager.getConnection(url,user,password);
3.4创建执行SQL语句的容器
Statement stmt=con.createStatement();
3.5增删改查
String sql="select * from usertable";
ResultSet rst=stmt.excute(sql);
3.6关闭处理
rst.close();
stmt.close();
con.close();
3.7处理异常 由于对数据库操作中可能发生各种各样的异常,程序必须对异常进行处理,从加载驱动程序开始需要try catch,最后的close()可以都放在finally代码块中,同样close()也需要try catch住。
框架
前端基础见下一篇blog