JSP学习笔记(六)JDBC连接

在这里插入图片描述

执行流程:

连接数据源,如:数据库。

为数据库传递查询和更新指令。

处理数据库响应并返回的结果。

JDBC 架构

分为双层架构和三层架构。
双层:

作用:此架构中,Java Applet 或应用直接访问数据源。

条件:要求 Driver 能与访问的数据库交互。

机制:用户命令传给数据库或其他数据源,随之结果被返回。

部署:数据源可以在另一台机器上,用户通过网络连接,称为 C/S配置(可以是内联网或互联网)。
三层:
模型:
在这里插入图片描述
侧架构特殊之处在于,引入中间层服务。

流程:命令和结构都会经过该层。

吸引:可以增加企业数据的访问控制,以及多种类型的更新;另外,也可简化应用的部署,并在多数情况下有性能优势。

历史趋势: 以往,因性能问题,中间层都用 C 或 C++ 编写,随着优化编译器(将 Java 字节码 转为 高效的 特定机器码)和技术的发展,如EJB,Java 开始用于中间层的开发这也让 Java 的优势突显出现出来,使用 Java 作为服务器代码语言,JDBC随之被重视。

JDBC 编程步骤

加载驱动程序:

Class.forName(driverClass)
//加载MySql驱动
Class.forName("com.mysql.jdbc.Driver")
//加载Oracle驱动
Class.forName("oracle.jdbc.driver.OracleDriver")

获得数据库连接:

DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/imooc", "root", "root");

创建Statement\PreparedStatement对象:

conn.createStatement();
conn.prepareStatement(sql);

案例

连接数据库登录界面的实现:
(1)数据库准备:
在这里插入图片描述
新建一个useer表
(2)界面部分:
(上一篇中的界面。这里就不放代码了)
(3)实现效果:
若输入的用户名密码在数据库中存在,则跳转至登录成功页面,若没有则跳转登录失败页面
(4)代码实现(检测部分):

<%
String a=request.getParameter("zhanghao");
String b;
b=request.getParameter("mima"); 
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/jee?useSSL=false";
String username="root";
String pwd="1234";
Connection conn=DriverManager.getConnection(url, username, pwd);
PreparedStatement stmt=conn.prepareStatement("select * from useer where usename=? and usepwd=?");
stmt.setString(1,a);
stmt.setString(2,b);
ResultSet rs=stmt.executeQuery();
%>
 
<% if(rs.next()){%>
	
	<% request.setCharacterEncoding("UTF-8") ;
		//创建cookie对象
		Cookie nameCookie=new Cookie("username",a);
		Cookie pwdCookie=new Cookie("userpwd",b);
		//设置有效期
		nameCookie.setMaxAge(60*60);
		pwdCookie.setMaxAge(60*60);
		//向客户端写cookie
		response.addCookie(nameCookie);
		response.addCookie(pwdCookie);
		
		//创建session对象
		session.setAttribute("username", a);
		//session.setAttribute("pwd", b);
		session.setAttribute("testData", "123456");
		session.setAttribute("shoppingList", "鞋子");
		session.setMaxInactiveInterval(60*3); 
		System.out.print("测试"+session.getAttribute("username"));%>
		
		<jsp:forward page="./loginSuccess.jsp"/>
	<% 
}else{
	%>
	<jsp:forward page="./loginDefeat.jsp">
		<jsp:param name="yyy" value="登录失败"/>
		</jsp:forward>
	<%
}



%>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值