jsp_connectsql

jsp&sql

今天要说的是数据库和web的连接问题,首先我先新建了一个目录来测试。

一、测试连接成功的代码:

当然的把mysql-connector-java-5.1.13-bin.jar放到项目中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@page import="com.mysql.jdbc.Driver"%> 
<%@page import="java.sql.*"%>
<%
// 注册jdbc驱动
Class.forName("com.mysql.jdbc.Driver").newInstance();
// 设置连接字符串(包括主机名,端口,数据库名,用户名,密码等)
String uri = "jdbc:mysql://localhost:3306/checkmysql?user=root&password=123123";
// 建立数据库连接
Connection connection = DriverManager.getConnection(uri);
// 创建语句
Statement statement = connection.createStatement();
// 执行查询语句,并将结果保存在resultSet对象中
ResultSet resultSet = statement.executeQuery("SELECT * FROM emp");
// 循环读取表
while(resultSet.next()){
out.print(resultSet.getString(1)+"&&"+resultSet.getString(2)+"<br>");
}
%>

二、1:打开myeclipse,点击window,鼠标移动到open Perspective,在旁边可以看到一个Myeclipse Database Explore,就会在myeclipse打开一个新的视图[^注意]如果打开后是空白的,没有看到DB Browser,就这样做:,选择菜单栏Window–>Show View–>Other,展开MyEclipse Database,选择DB Browser,打开数据库浏览视图。就可以看到了

2、空白处右键–>NEW,按图配置,Driver Name是自己随便取个名字,连接字符串这里以MySQL Connector/J为例,databaseName是数据库名字,数据库连接驱动jar包需要自己根据需要找,存到某个文件夹下,再点Add Jars导入,最后点Test Driver,看是否连接成功,最后finish。

3、返回Package Explorer中,打开导入Hinernate框架时创建的hibernate.cfg.xml文件,这是点击DB Driver下拉框就会出现新建的DB,选择就可以了

讲解:New Database Connection Driver对话框

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
对话框中包含了如下信息设置:
Driver template:选择数据库驱动模板。
Driver Name:定义数据库连接名称。
Connection URL:定义数据库的连接URL。
User name:定义登录数据库的用户名。
Password:输入登录的用户密码。
Driver JARs:定义连接数据库采用的JAR包。
Driver classname:选择数据库连接驱动的类名称。
Save password:选择是否保存登录用户的密码。

三、上面的一测试成功后,我新建了一个web目录,也可以不用新建了

1、用户登录index.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%>
<html>
<head>
<title>
用户登录
</title>
</head>
<body bgcolor="#e3e3e3">
<center>
<form action="check_login.jsp" method="post">
<table>
<caption>用户登录</caption>
<tr><td>用户名:</td><td><input type="text" name="username" size="20"/></td></tr>
<tr><td>密码:</td><td><input type="text" name="password" size="20"/></td></tr>
<tr><td><input type="submit" value="登录"/><td><input type="reset" value="重置"/>
</table>
</form>
</body>
</center>
</html>

2、验证登录,输入的用户名和密码是否与数据库的对接上check_login.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<%@ page language="java" import="java.sql.*" contentType="text/html;charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'check.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
String username=request.getParameter("username");
String password=request.getParameter("password");
try {
// 加载数据库驱动,注册到驱动管理器
Class.forName("com.mysql.jdbc.Driver");
// 数据库连接字符串
String url = "jdbc:mysql://localhost:3306/checkmysql";
// 数据库用户名
String usename = "root";
// 数据库密码
String psw = "123123";
// 创建Connection连接
Connection conn = DriverManager.getConnection(url,usename,psw);
// 判断 数据库连接是否为空
if(conn != null){
String sql="select * from emp where empno='"+username+"' and password='"+ password + "'";
Statement stmt = conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
if(rs.next()){
request.getRequestDispatcher("success.jsp").forward(request,response);
}else{
response.sendRedirect("wrong.jsp");
%>
<%
}
// 输出连接信息
//out.println("数据库连接成功!");
// 关闭数据库连接
conn.close();
}else{
// 输出连接信息
out.println("数据库连接失败!");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
%>
</body>
</html>

3、如果对接上,就直接进入登录成功页面success.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'success.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
登陆成功,欢迎您! <%=request.getParameter("username")%> <br>
</body>
</html>

4、失败的话,就跳转到失败页面wrong.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<%@ page language="java" import="java.sql.*" contentType="text/html;charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>登录失败</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<% out.println("登录失败");%>
<% response.setHeader("refresh","5;url=index.jsp");%>
<a href="javascript:history.back()">返回</a>
</body>
</html>